Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων

Σχετικά έγγραφα
1. Ανασκόπηση των Βασικών Εννοιών των Βάσεων Δεδομένων

Σχεδίαση Β.Δ. (Database Design)

Θεωρία Κανονικοποίησης


Κανονικές Μορφές 8ο Φροντιστήριο. Βάρσος Κωνσταντίνος

καλών σχεσιακών σχημάτων

ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων:. Πλεξουσάκης

Λογικός Σχεδιασμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Λογικός Σχεδιασμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Λογικός Σχεδιασμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Λογικός Σχεδιασμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Κανονικές Μορφές. Βάσεις Δεδομένων : Κανονικές Μορφές. ηλαδή, i = 1,.., n R i R. Σύντομη επανάληψη αποσύνθεσης.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

ΗΥ360 Αρχεία και Βάσεις Δεδομένων

καλών σχεσιακών σχημάτων

2η ΔΙΑΛΕΞΗ Συναρτησιακές εξαρτήσεις

Συναρτησιακές Εξαρτήσεις. Βάσεις εδοµένων Ευαγγελία Πιτουρά 1

Κλείσιμο Συνόλου Γνωρισμάτων

Συναρτησιακές Εξαρτήσεις

Βάσεις Δεδομένων Συναρτησιακές Εξαρτήσεις (Functional Dependencies) Σχεδιασμός Βάσεων Δεδομένων και Κανονικοποίηση

Λογικός Σχεδιασμός Σχεσιακών Σχημάτων: Αποσύνθεση

Πανεπιστήμιο Κρήτης Τμήμα Επιστήμης Υπολογιστών Κανονικές Μορφές (Normal Forms)

Κανονικοποίηση. Σημασιολογία Γνωρισμάτων. Άτυπες Οδηγίες. Παράδειγμα. Αξιολόγηση Σχεσιακών Σχημάτων ΒΔ. Περιττές Τιμές και Ανωμαλίες Ενημέρωσης

Κανονικές Μορφές Σχεδιασµός Σχεσιακών Σχηµάτων

Βάσεις δεδομένων. (9 ο μάθημα) Ηρακλής Βαρλάμης

BΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΞΕΤΑΣΗ ΦΕΒΡΟΥΑΡΙΟΥ 2005

Συναρτησιακές Εξαρτήσεις και Κανονικοποίηση

Κανονικοποίηση. Παύλος Εφραιμίδης. Βάσεις Δεδομένων Κανονικοποίηση 1

Κανονικές Μορφές. Συνενώσεις Άνευ Απωλειών. Προσοχή με τις τιμές null στην αποσύνθεση

Βάσεις Δεδομένων : Λογικός Σχεδιασμός 1. καλών σχεσιακών σχημάτων. Λογικός Σχεδιασμός Σχεσιακών Σχημάτων. Γενικές Κατευθύνσεις.

Αρχεία και Βάσεις Δεδομένων


Συναρτησιακές Εξαρτήσεις

Αρχεία και Βάσεις Δεδομένων

Λογικός Σχεδιασµός Σχεσιακών Σχηµάτων: Αποσύνθεση. Βάσεις εδοµένων Ευαγγελία Πιτουρά 1

Συναρτησιακές Εξαρτήσεις

Σχεδιασµός Σχεσιακών Σχηµάτων

Κανονικοποίηση Σχήµατος. Βάσεις εδοµένων Ευαγγελία Πιτουρά 1

Συναρτησιακές Εξαρτήσεις Σχεδιασμός Βάσεων Δεδομένων

Λογικός Σχεδιασµός Σχεσιακών Σχηµάτων

Κανονικές Μορφές 8ο Φροντιστήριο. Βάρσος Κωνσταντίνος

Κανονικές Μορφές. Τι συμβαίνει με το (πρωτεύον) κλειδί και τις συναρτησιακές εξαρτήσεις; Παράδειγμα 1. Παράδειγμα 2

Συναρτησιακές Εξαρτήσεις

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

Συναρτησιακές Εξαρτήσεις 7ο Φροντιστήριο. Βάρσος Κωνσταντίνος

Λογικός Σχεδιασµός Σχεσιακών Σχηµάτων: Αποσύνθεση

Συναρτησιακές Εξαρτήσεις

Βάσεις εδοµένων. Συναρτησιακές Εξαρτήσεις (Functional Dependencies) Σχεδιασµός Βάσεων εδοµένων και. Κανονικοποίηση.

Συναρτησιακές Εξαρτήσεις 7ο Φροντιστήριο. Βάρσος Κωνσταντίνος

Copyright 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley, ΕλληνικήΈκδοση, ίαυλος

Συναρτησιακές Εξαρτήσεις

Συναρτησιακές Εξαρτήσεις

Λογικός Σχεδιασμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Συναρτησιακές και Πλειότιµες Εξαρτήσεις

Αρχεία και Βάσεις Δεδομένων

Εκπαιδευτικό Εργαλείο Κανονικοποίησης

Σχεδιασµός Σχεσιακών Σχηµάτων

Διδάσκων: Παναγιώτης Ανδρέου

Κανονικοποίηση. Άτυπες Οδηγίες. Παράδειγµα. Αξιολόγηση Σχεσιακών Σχηµάτων Β. Περιττές Τιµές και Ανωµαλίες Ενηµέρωσης

Κανονικές Μορφές. Αποσύνθεση (decomposition)

Συναρτησιακές Εξαρτήσεις

Κανονικοποίηση Σχεδιασμός Βάσεων Δεδομένων Μαρία Χαλκίδη

Κανονικοποίηση Σχήµατος

Lecture 23: Functional Dependencies and Normalization

Βάσεις Δεδομένων. Ενότητα 5: ΚΑΝΟΝΙΚΟΠΟΙΗΣΗ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ. Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών σπουδών

Διδάσκων: Παναγιώτης Ανδρέου

Lecture 21: Functional Dependencies and Normalization

Σχεδιασμός μιας εφαρμογής ΒΔ: Βήματα. 1. Συλλογή και Ανάλυση Απαιτήσεων(requirement analysis)

Πανεπιστήμιο Κρήτης Τμήμα Επιστήμης Υπολογιστών. Σχεσιακός Λογισμός


ΣΧΕΔΙΑΣΜΟΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΚΑΝΟΝΙΚΟΠΟΙΗΣΗ. Σχεδιασμός Σχεσιακών ΒΔ και Κανονικοποίηση 1

Διδάσκων: Παναγιώτης Ανδρέου

Κεφάλαιο 8. ΣΧΕ ΙΑΣΜΟΣ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΚΑΙ ΚΑΝΟΝΙΚΟΠΟΙΗΣΗ (Normalization) Ι.Β Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση Σελίδα 4.1

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 10: Εισαγωγικά περί κανονικοποίησης Συναρτησιακές εξαρτήσεις BCNF. Ευαγγελίδης Γεώργιος Τμήμα Εφαρμοσμένης Πληροφορικής

Σχεσιακό Μοντέλο. Εισαγωγή. Βάσεις εδοµένων : Σχεσιακό Μοντέλο 1

Διδάσκων: Παναγιώτης Ανδρέου

Θέματα ανακεφαλαίωσης

Lecture 22: Functional Dependencies and Normalization

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ασκήσεις και ερωτήσεις

Αρχεία και Βάσεις Δεδομένων

Το Σχεσιακό Μοντέλο. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Το Σχεσιακό Μοντέλο 2

Βάσεις Δεδομένων Ι Θεωρία Σχεδίασης ΣΒΔ. (Σχεσιακών Βάσεων Δεδομένων) Α' Μέρος. Φώτης Κόκκορας (MSc/PhD) Τμήμα Μηχανικών Πληροφορικής ΤΕ

Lecture 24: Functional Dependencies and Normalization IV

Σχεδιασµός µιας Β. Ένας απλός τρόπος αναπαράστασης δεδοµένων: ένας διδιάστατος πίνακας που λέγεται σχέση Γνωρίσµατα

Ένας απλός τρόπος αναπαράστασης δεδομένων: ένας διδιάστατος πίνακας που λέγεται σχέση Γνωρίσματα

Ένας απλός τρόπος αναπαράστασης δεδομένων: ένας διδιάστατος πίνακας που λέγεται σχέση Γνωρίσματα

Βάσεις Δεδομένων : Σχεσιακό Μοντέλο 1. Ένας απλός τρόπος αναπαράστασης δεδομένων: ένας διδιάστατος πίνακας που λέγεται σχέση.

Σχεσιακό Μοντέλο. Σχεδιασμός Βάσεων Δεδομένων Μάθημα 2 ο Μαρία Χαλκίδη

Σχεσιακές Βάσεις Δεδομένων

Εισαγωγή στις Βάσεις Δεδομένων (ΒΔ)

Διαχείριση Δεδομένων

Κεφάλαιο 4 Σχεδίαση Βάσεων Δεδομένων

2. Το Μοντέλο Οντοτήτων- Συσχετίσεων

Εργαστήριο 5o. Σχέσεις πινάκων Ακεραιότητα αναφορών. Ευάγγελος Γ. Καραπιδάκης

Σχεδιασμός μιας Β : Βήματα

Το Σχεσιακό Μοντέλο. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Βάσεις Δεδομένων Ενότητα 7

Lecture 21: Functional Dependencies and Normalization

Περιεχόμενα 1 Πρωτοβάθμια Λογική Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων ) / 60

Transcript:

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 8. Κανονικοποίηση Σχεδιασμός Βάσεων Δεδομένων Χρήστος Δουλκερίδης 2017-18

Θεµατολογία Διάλεξης Σχεδιασμός ιδεατής βάσης δεδομένων παράγει ένα σύνολο από σχεσιακά σχήματα, και ένα σύνολο περιορισμών ακεραιότητας Μετάβαση από ένα σχεσιακό σχήμα σε ένα βελτιωμένο σχεσιακό σχήμα Κανονικοποίηση (ormalizatio) με χρήση διάσπασης (decompositio) Σχεδίαση σχέσεων Πώς να σχεδιάζουμε «καλές» σχέσεις Το «καλές» αναφέρεται σε στην ορθότητα (correctess) και στην έλλειψη πλεονασμού (redudacy) Δουλκερίδης 2

Διάρθρωση Διάλεξης Εισαγωγή στην τελειοποίηση του σχεσιακού σχήματος Προβλήματα πλεονασμού στα δεδομένα Συναρτησιακές εξαρτήσεις Κανονικές μορφές Κανονικοποίηση Διασπάσεις Δουλκερίδης 3

Προβλήµατα που Προκαλεί ο Πλεονασµός Πλεονασμός στην αποθήκευση Η ίδια πληροφορία καταχωρείται πολλές φορές Προβληματική ενημέρωση Όταν ενημερώνεται ένα μόνο αντίγραφο (πολλαπλά καταχωρημένων) δεδομένων προκύπτει ασυνέπεια στο πληροφοριακό περιεχόμενο της ΒΔ Προβληματική εισαγωγή Το σχήμα δεν μπορεί να καταχωρήσει μια νέα πληροφορία σε σχέση με άλλη αντίστοιχη πληροφορία της οποίας η καταχώρηση έχει προηγηθεί Προβληματική διαγραφή Το σχήμα δεν μπορεί να διαγράψει κάποια πληροφορία, χωρίς να προκαλείται διαγραφή άλλης σχετικής πληροφορίας Δουλκερίδης 4

Παράδειγµα (1/2) Hourly_Emps(ss, ame, lot, ratig, hourly_wages, hours_worked) SNLRWH Έστω ότι ισχύει: R à W Δηλαδή για κάθε τιμή του ratig υπάρχει μία μόνο επιτρεπτή τιμή για το hourly_wages ss ame lot ratig hourly_wages hours_worked 1 Attishoo 48 8 10 40 2 Smiley 22 8 10 30 3 Smethurst 35 5 7 30 4 Guidu 35 5 7 32 5 Madaya 35 8 10 40 Δουλκερίδης 5

Παράδειγµα (2/2) Προβληματική ενημέρωση Δεν μπορούμε να αλλάξουμε το W μόνο στην πρώτη πλειάδα Προβληματική εισαγωγή Δεν μπορούμε να εισάγουμε νέο εργαζόμενο εάν δε γνωρίζουμε το hourly_wages για το συγκεκριμένο ratig Προβληματική διαγραφή Εάν διαγράψουμε όλους τους υπαλλήλους με ratig=8 χάνουμε την πληροφορία ότι συσχετίζεται με hourly_wages=10 ss ame lot ratig hourly_wages hours_worked 1 Attishoo 48 8 10 40 2 Smiley 22 8 10 30 3 Smethurst 35 5 7 30 4 Guidu 35 5 7 32 5 Madaya 35 8 10 40 Δουλκερίδης 6

Χρήση Διασπάσεων Εμπειρικά ο πλεονασμός προκύπτει σε ένα σχεσιακό σχήμα όταν επιβάλλονται μη φυσιολογικού τύπου διασυνδέσεις ανάμεσα στα γνωρίσματα Πολλά προβλήματα που σχετίζονται με πλεονασμό μπορούν να αντιμετωπιστούν με την αντικατάσταση ενός πίνακα από μια συλλογή «μικρότερων» πινάκων (διάσπαση μεγάλου πίνακα σε άλλους μικρότερους) Δουλκερίδης 7

Παράδειγµα (συνέχεια) Hourly_Emps2(ss, ame, lot, ratig, hours_worked) Wages(ratig, hourly_wages) ss ame lot ratig hours_worked 1 Attishoo 48 8 40 2 Smiley 22 8 30 3 Smethurst 35 5 30 4 Guidu 35 5 32 5 Madaya 35 8 40 ratig hourly_wages 8 10 5 7 Δουλκερίδης 8

Προβλήµατα που Σχετίζονται µε τη Διάσπαση Χρειάζεται να γίνει διάσπαση; Κανονικές μορφές πινάκων Ποια προβλήματα μπορεί να προκαλέσει η διάσπαση; Δύο ενδιαφέρουσες ιδιότητες Σύζευξη χωρίς απώλεια πληροφορίας Επαναδημιουργία κάθε στιγμιότυπου του αρχικού πίνακα από τα στιγμιότυπα των μικρότερων πινάκων Διατήρηση συναρτησιακών εξαρτήσεων Δυνατότητα επιβολής κάθε περιορισμού του αρχικού πίνακα, επιβάλλοντας κάποιους περιορισμούς στους μικρότερους πίνακες Μειονέκτημα των διασπάσεων Ανάγκη σύζευξης πινάκων (jois) για την απάντηση επερωτήσεων (ueries) Δουλκερίδης 9

Συναρτησιακές Εξαρτήσεις Η συναρτησιακή εξάρτηση (fuctioal depedecy FD) είναι ένα είδος περιορισμού ακεραιότητας (IC) που γενικεύει την έννοια του κλειδιού Έστω R(X,Y, ), τότε θα λέμε ότι ένα στιγμιότυπο r της R ικανοποιεί την FD:XàY, όταν για κάθε ζεύγος πλειάδων t 1 και t 2 του r ισχύουν Αν t 1.X=t 2.X => t 1.Y=t 2.Y Παράδειγμα: ABàC A B C D A1 B1 C1 A1 B1 C1 A1 B2 C2 A2 B1 C3 D1 D2 D1 D1 Δουλκερίδης 10

Εγκυρότητα και Περιορισµοί Κλειδιού Έγκυρο ονομάζεται το στιγμιότυπο ενός πίνακα που ικανοποιεί όλους τους περιορισμούς ακεραιότητας (ICs), καθώς και όλες τις συναρτησιακές εξαρτήσεις (FDs) Δεν είναι δυνατός ο έλεγχος ισχύος (=δεν παραβιάζεται καμιά FD) μιας συναρτησιακής εξάρτησης FD επί μιας σχέσης R Είναι δυνατός μόνο σε κάποιο στιγμιότυπο r της R Μια FD δεν αποτελεί περιορισμό κλειδιού (στο προηγούμενο παράδειγμα) παρά το ότι δεν παραβιάζεται η ABàC, το AB δε συνιστά κλειδί του πίνακα Ο περιορισμός κύριου κλειδιού αποτελεί μια ειδική περίπτωση FD Χ à Υ Τα γνωρίσματα που αποτελούν το κλειδί παίζουν το ρόλο του Χ, ενώ το σύνολο όλων των γνωρισμάτων παίζουν το ρόλο του Υ Δουλκερίδης 11

Ιδιότητες Συναρτησιακών Εξαρτήσεων (1/3) Μια FD f λέμε ότι συνεπάγεται από ένα σύνολο F από FD όταν η f ισχύει για το κάθε ένα στιγμιότυπο πίνακα όπου ισχύουν όλες οι συναρτησιακές εξαρτήσεις του F Εγκλεισμός F + του F (closure) είναι το σύνολο όλων των FD που συνεπάγονται από το F Αξιώματα του Armstrog Ανακλαστικότητα: Εάν X Ê Y, τότε X à Y Επάυξηση: Εάν Χ à Υ, τότε ΧΖ à ΥΖ για κάθε Ζ Επαγωγή: Εάν Χ à Υ και Υ à Ζ, τότε Χ à Ζ Αυτοί είναι ισχυροί και πλήρεις κανόνες λογισμού για FD Δουλκερίδης 12

Ιδιότητες Συναρτησιακών Εξαρτήσεων (2/3) Δύο επιπλέον κανόνες (που προκύπτουν από τα αξιώματα) Ένωση: Εάν Χ à Υ και Χ à Ζ, τότε Χ à ΥΖ Διάσπαση: Εάν Χ à ΥΖ, τότε Χ à Υ και Χ à Ζ Παράδειγμα: Cotracts(cotractid,supplierid,projectid,deptid,partid,uatity,value) C είναι το κλειδί: C à CSJDPQV Η αγορά ενός είδους (P) από ένα πρόγραμμα (J) γίνεται μέσω ενός μόνο συμβολαίου (C): JP à C Κάθε τμήμα (D) αγοράζει το πολύ ένα είδος (P) από έναν προμηθευτή (S): SD à P JPàC και C à CSJDPQV συνεπάγονται: JP à CSJDPQV SD à P συνεπάγεται: SDJ à JP SDJ à JP και JP à CSJDPQV συνεπάγονται: SDJ à CSJDPQV Δουλκερίδης 13

Ιδιότητες Συναρτησιακών Εξαρτήσεων (3/3) Ο υπολογισμός του εγκλεισμού ενός συνόλου FD είναι ακριβός (το μέγεθος του εγκλεισμού είναι εκθετικό ως προς το πλήθος των γνωρισμάτων) Αυτό που μας ενδιαφέρει είναι εάν μια δεδομένη FD Χ à Υ ανήκει στον εγκλεισμό ενός συνόλου F από FD Ένας αποδοτικός τρόπος ελέγχου Υπολογίζουμε τον εγκλεισμό των γνωρισμάτων Χ + του Χ ως προς το F Είναι ένα σύνολο γνωρισμάτων Α τέτοιο ώστε: Χ à Α Î F + Υπάρχει γραμμικός αλγόριθμος για τον υπολογισμό του Ελέγχουμε εάν το Υ ανήκει στο Χ + Παράδειγμα Το σύνολο F = {A à B, B à C, CD à E} συνεπάγεται το Α à Ε; Δηλαδή το Α à Ε ανήκει στο F + ή ισοδύναμα το Ε ανήκει στο Α + ; Δουλκερίδης 14

Εγκλεισµός Συνόλου Γνωρισµάτων Δίνονται: μια σχέση R, ένα σύνολο γνωρισμάτων {Α 1,Α 2,...,Α } της R, και ένα σύνολο F από FD Να βρεθούν: όλα τα υπόλοιπα γνωρίσματα Β της R έτσι ώστε: {Α 1,Α 2,...,Α } à Β Αλγόριθμος Ξεκινάμε με το σύνολο γνωρισμάτων Κ= {Α 1,Α 2,...,Α } repeat util o chage if (A à B Î F) ad (A Î K) ad (B Ï K) the πρόσθεσε το B στο Κ Δουλκερίδης 15

Παράδειγµα ΑΒ à C AD à E B à D AF à B Πώς θα χρησιμοποιήσουμε τον αλγόριθμο για να ελέγξουμε εάν ένα σύνολο γνωρισμάτων είναι κλειδί; Εγκλεισμός του Α,Β: {A,B} + = Εγκλεισμός του Α,F: {A,F} + = Το σύνολο F = {A à B, B à C, CD à E} συνεπάγεται το Α à Ε; Δουλκερίδης 16

Άλλο Παράδειγµα Δίνεται σχέση R(A,B,C,D,E,F,G) και οι ακόλουθες συναρτησιακές εξαρτήσεις: (1) AàBC (2) EàCF, (3) BàE, (4) CDàEF, (5) AàG α) Να βρεθεί ο εγκλεισμός του Α. β) Βρείτε ένα υποψήφιο κλειδί για την R. Δουλκερίδης 17

Χρήση των FD για Παραγωγή Καλών Σχηµάτων Ξεκινάμε με ένα σύνολο σχέσεων Ορίζουμε τις FD (και τα κλειδιά) για τις σχέσεις με βάση τη σημασιολογία της εφαρμογής Μετασχηματίζουμε τις σχέσεις σε κανονικές μορφές (κανονικοποίηση) Με χρήση διάσπασης Διαισθητικά «καλό» σχήμα σημαίνει ότι Δεν υπάρχουν ανώμαλες καταστάσεις Μπορούμε να ανακατασκευάσουμε όλη την αρχική πληροφορία Δουλκερίδης 18

Κανονικές Μορφές Όταν ένα σχεσιακό σχήμα βρίσκεται σε μία κανονική μορφή, γνωρίζουμε ότι συγκεκριμένου τύπου προβλήματα δεν υπάρχουν Πρωτη κανονική μορφή (1NF) Ένας πίνακας είναι σε 1NF όταν κάθε γνώρισμά του καταχωρεί ατομικές τιμές Δεύτερη κανονική μορφή (2NF) Εάν κάθε γνώρισμα εξαρτάται από ολόκληρο το πρωτεύον κλειδί Εάν κάθε υποψήφιο κλειδί αποτελείται από ένα γνώρισμα, τότε ο πίνακας είναι σε 2NF Τρίτη κανονική μορφή (3NF) Boyce-Codd Normal Form (BCNF) 3NF BCNF 1NF 2NF Δουλκερίδης 19

Κανονική Μορφή Boyce-Codd (BCNF) Μια απλή συνθήκη για την αποφυγή ανωμαλιών από τις σχέσεις Μια σχέση R βρίσκεται σε BCNF, όσον αφορά στις FD της, αν και μόνο αν οποτεδήποτε ισχύει μια μη τετριμμένη εξάρτηση A à B στην R, το Α περιέχει κάποιο κλειδί της R Γιατί η παραβίαση αυτής της συνθήκης παράγει μη καλά σχήματα; Δουλκερίδης 20

Παράδειγµα BCNF Hourly_Emps(ss, ame, lot, ratig, hourly_wages, hours_worked) Ποιες είναι οι συναρτησιακές εξαρτήσεις; Ποια είναι τα κλειδιά; Βρίσκεται η σχέση σε BCNF; ss ame lot ratig hourly_wages hours_worked 1 Attishoo 48 8 10 40 2 Smiley 22 8 10 30 3 Smethurst 35 5 7 30 4 Guidu 35 5 7 32 5 Madaya 35 8 10 40 Δουλκερίδης 21

Τρίτη Κανονική Μορφή Η διάσπαση σε BCNF δε διατηρεί τις εξαρτήσεις Μια σχέση R βρίσκεται σε 3NF αν και μόνο αν Για οποιαδήποτε μη τετριμμένη εξάρτηση Χ à Α στην R, το Χ περιέχει κάποιο κλειδί της R ή Το Α αποτελεί τμήμα κάποιου κλειδιού της R Είναι συμβιβασμός αντί της BCNF Κάθε BCNF πίνακας είναι και 3NF Η 3NF επιτρέπει κάποιο πλεονασμό Δουλκερίδης 22

Άσκηση για το Σπίτι Δίνεται σχέση R(A,B,C,D,E) και οι συναρτησιακές εξαρτήσεις: A à B, BC à E, ED à A Βρείτε όλα τα κλειδιά της R. Βρίσκεται η R σε BCNF? Βρίσκεται η R σε 3NF? Δουλκερίδης 23

Μερική και Μεταβατική Εξάρτηση Έστω μια FD X à A που παραβιάζει τη συνθήκη 3NF. Διακρίνονται δύο περιπτώσεις: Το Χ είναι γνήσιο υποσύνολο κάποιου κλειδιού Κ (Μερική Εξάρτηση) ΚΛΕΙΔΙ Γνωρίσματα Χ Γνώρισμα Α Το Χ δεν αποτελεί γνήσιο υποσύνολο κανενός κλειδιού (Μεταβατική Εξάρτηση) ΚΛΕΙΔΙ Γνωρίσματα Χ Γνώρισμα Α ΚΛΕΙΔΙ Γνώρισμα Α Γνωρίσματα Χ Δουλκερίδης 24

Παραδείγµατα Σχετικά µε 3NF Μερική εξάρτηση Reserves(sid,bid,day,creditcard) (SBDC) Αν ισχύει S à C, τα ζεύγη (S,C) καταχωρούνται με πλεονασμό Μεταβατική εξάρτηση Hourly_Emps(SNLRWH) Αν ισχύει R à W, τότε ισχύει και: S à R à W, άρα προβλήματα στην εισαγωγή, ενημέρωση και διαγραφή Πλεονασμός ακόμη κι όταν ο πίνακας είναι 3NF Reserves (SBDC) και ισχύει S à C Δεν είναι 3NF Εάν ισχύει επιπλέον C à S Είναι 3NF, διότι το CBD είναι κλειδί Πάλι όμως υπάρχει πλεονασμός στα ζεύγη (S,C) Δουλκερίδης 25

Διασπάσεις Έστω R μια σχέση με γνωρίσματα {Α 1,Α 2,...,Α } Δημιουργήστε δύο σχέσεις R 1 και R 2 με γνωρίσματα {Β 1,Β 2,...,Β m } και {C 1,C 2,...,C l } αντίστοιχα, έτσι ώστε {Β 1,Β 2,...,Β m } È {C 1,C 2,...,C l } = {Α 1,Α 2,...,Α } και 1. η R 1 είναι ο περιορισμός της R πάνω στο {Β 1,Β 2,...,Β m } 2. η R 2 είναι ο περιορισμός της R πάνω στο {C 1,C 2,...,C l } 3. η επανένωση (joi) των R 1 και R 2 παράγει την R Δουλκερίδης 26

Ορολογία των Διασπάσεων Ο περιορισμός (1,2) ονομάζεται προβολή και τα διπλότυπα απαλείφονται Η επανένωση στο (3) ονομάζεται σύζευξη Μια διάσπαση που ικανοποιεί το (3) ονομάζεται διάσπαση με σύζευξη χωρίς απώλεια πληροφορίας (lossless-joi decompositio) Μόνο τέτοιου είδους διασπάσεις μας ενδιαφέρουν Δουλκερίδης 27

Διάσπαση µε Σύζευξη Χωρίς Απώλεια Πληροφορίας Η διάσπαση της R στα X και Y είναι με σύζευξη χωρίς απώλεια πληροφορίας ως προς το F αν και μόνο αν ο εγκλεισμός του F περιλαμβάνει την εξάρτηση X Y à X ή την X Y à Y Συγκεκριμένα η διάσπαση της R στα ΧΥ και R-Υ είναι με σύζευξη χωρίς απώλεια πληροφορίας, αν το Χ à Υ ισχύει πάνω στην R και το Χ Υ είναι κενό S P D s1 p1 d1 s2 p2 d2 s3 p1 d3 Διάσπαση S s1 s2 s3 P p1 p2 p1 P p1 p2 p1 D d1 d2 d3 Ανασύσταση S P D s1 p1 d1 s2 p2 d2 s3 p1 d3 s1 p1 d3 s3 p1 d1 Δουλκερίδης 28

Παράδειγµα Hourly_Emps(SNLRWH) και ισχύει R à W Παραβιάζεται η 3NF Διάσπαση σε δύο πίνακες SNLRH RW Χωρίς απώλεια πληροφορίας! Διότι (με βάση την προηγούμενη παρατήρηση) ισχύει R à W και το R W είναι κενό, οπότε γίνεται διάσπαση σε RW και (Hourly_Emps W) Δουλκερίδης 29

Διασπάσεις που Διατηρούν τις Εξαρτήσεις (1/2) Έστω CSJDPQV, C είναι το κλειδί, JP à C και SD à P To JP είναι επίσης κλειδί Το SD à P παραβιάζει τη BCNF Διάσπαση σε BCNF: CSJDQV και SDP Πρόβλημα: ο έλεγχος JP à C απαιτεί σύζευξη Διάσπαση που διατηρεί τις εξαρτήσεις (διαισθητικά) Αν η R διασπαστεί στα Χ, Y και Ζ και επιβάλλουμε τις FD που ισχύουν στα X, στο Υ και στο Ζ, τότε όλες οι FD που ίσχυαν αρχικά στην R πρέπει να εξακολουθούν να ισχύουν Προβολή ενός συνόλου FD F: Αν η R διασπαστεί στα Χ,..., η προβολή F X του F στο X είναι το σύνολο των FD U à V του F + (εγκλεισμός του F) για τις οποίες τα U, V ανήκουν στο X Δουλκερίδης 30

Διασπάσεις που Διατηρούν τις Εξαρτήσεις (2/2) Η διάσπαση της R στα X και Y διατηρεί τις εξαρτήσεις αν: (F X È F Υ ) + = F + δηλαδή αν θεωρήσουμε μόνο τις εξαρτήσεις του F + που μπορούν να ελεγχθούν στο Χ χωρίς να εξετάσουμε το Υ, και (αντίστοιχα) στο Υ χωρίς να εξετάσουμε το Χ, αυτές συνεπάγονται όλες τις εξαρτήσεις του F + Είναι σημαντικό να θεωρήσουμε το F + κι όχι το F, στον παραπάνω ορισμό Έστω ABC με Α à Β, Β à C, C à A και διασπάμε σε AB και BC Η διάσπαση διατηρεί τις εξαρτήσεις; H C à A διατηρείται; Η διατήρηση των εξαρτήσεων δε συνεπάγεται τη σύζευξη χωρίς απώλεια πληροφορίας Έστω ABC με Α à Β και διασπάμε σε AB και BC Δουλκερίδης 31

Γιατί να Χρησιµοποιήσουµε Διάσπαση; Η πρώτη ερώτηση που πρέπει να αναλογιστούμε Είναι απαραίτητο να γίνει κάποια διάσπαση; Αν μια σχέση βρίσκεται σε μια κανονική μορφή, τότε συγκεκριμένοι τύποι προβλημάτων ελαχιστοποιούνται/αποφεύγονται Αυτό μπορεί να μας βοηθήσει να αποφασίσουμε εάν είναι καλό να διασπάσουμε μια σχέση Ο ρόλος των FD στον εντοπισμό πλεονασμού Έστω σχέση R με γνωρίσματα τα A, B και C Αν δεν ισχύουν FD: Δεν υπάρχει πλεονασμός Αν ισχύει (π.χ. Α à Β): Διάφορες πλειάδες μπορεί να έχουν την ίδια τιμή για το Α κι αν συμβεί αυτό, τότε όλες θα έχουν την ίδια τιμή και για το Β Δουλκερίδης 32

Διάσπαση σε BCNF Αλγόριθμος διάσπασης σχέσης R σε μια συλλογή BCNF σχέσεων Έστω ότι η FD X à A παραβιάζει την BCNF Όπου Χ Ì R και Α ένα απλό γνώρισμα της R Τότε ο πίνακας R διασπάται σε R-A και XA Εάν κάποιο από τα R-A και XA δεν είναι BCNF, εφαρμόζεται αναδρομικά ο αλγόριθμος Δουλκερίδης 33

Παράδειγµα Διάσπασης σε BCNF CSJDPQV SD à P JP à C SD à P J à S SDP CSJDQV J à S JS 1. Όμως δε διατηρείται η JP à C 2. Μπορούμε να προσθέσουμε μία σχέση CJP 3. Πλεονασμός! CJDQV Δουλκερίδης 34

Σχετικά µε τη Διάσπαση σε BCNF Η διάσπαση σε BCNF είναι συνεπής-σωστή Χωρίς απώλεια πληροφορίας Το τελικό σύνολο των διασπασμένων σχέσεων μπορεί να διαφέρει, ανάλογα με Ποιο σύνολο FD ξεκινήσαμε Τη σειρά που επιλέξαμε τις FD που παραβίαζαν τη BCNF Τελικά όλα τα αποτελέσματα θα βρίσκονται σε BCNF Δουλκερίδης 35

Διάσπαση σε 3NF Υπάρχει πάντα διάσπαση σε 3NF που διατηρεί τις εξαρτήσεις και είναι χωρίς απώλεια σύζευξης και μπορεί να υπολογιστεί σε πολυωνυμικό χρόνο Μπορεί να χρησιμοποιηθεί ο αλγόριθμος για BCNF Για να εξασφαλιστεί η διατήρηση των εξαρτήσεων Αν το Χ à Υ δε διατηρείται, προσθέτουμε τη σχέση ΧΥ Το πρόβλημα είναι ότι μπορεί η ΧΥ να παραβιάζει την 3NF π.χ. θεωρήστε την προσθήκη του CJP για να διατηρήσουμε τη JP à C. Τι θα συνέβαινε αν είχαμε επιπλέον και τη J à C; Αντί για το αρχικό σύνολο εξαρτήσεων F, χρησιμοποίησε την ελάχιστη κάλυψη του F Δουλκερίδης 36

Ελάχιστη Κάλυψη για το Σύνολο των FD Ελάχιστη κάλυψη G για το σύνολο συναρτησιακών εξαρτήσεων F F + = G + Δεξί μέρος εξαρτήσεων στο G είναι ένα χαρακτηριστικό Το G είναι το ελάχιστο σύνολο με την πρώτη ιδιότητα Παράδειγμα Οι A à B, ABCD à E, EF à GH, ACDF à EG έχουν την ελάχιστη κάλυψη: A à B, ACD à E, EF à G και EF à H Δουλκερίδης 37