Συναρτησιακές Εξαρτήσεις Σχεδιασμός Βάσεων Δεδομένων Μαρία Χαλκίδη 1
Εισαγωγή Θεωρία για το πότε ένας σχεδιασμός είναι «καλός» Η θεωρία βασίζεται στις Λειτουργικές (Συναρτησιακές) Εξαρτήσεις (Functional Dependencies) Ορισμός Συμβολισμός Εξαρτήσεις ανάμεσα σε σύνολα από χαρακτηριστικά S1 S2 (όπου S1, S2 σύνολα χαρακτηριστικών) 2
Λειτουργικές Εξαρτήσεις (1) Έστω X R και Y R, μια λειτουργική εξάρτηση Χ Υ ισχύει στο σχήμα R αν για κάθε σχέση r(r), για κάθε ζεύγος πλειάδων t 1 και t 2 της r, t 1 [X] = t 2 [X] t 1 [Y] = t 2 [Y] Με απλά λόγια, μια λειτουργική εξάρτηση X Y μας λέει ότι αν δυο πλειάδες μιας σχέσης της R συμφωνούν (έχουν την ίδια τιμή) σε κάποια χαρακτηριστικά Χ R τότε συμφωνούν (έχουν την ίδια τιμή) και σε κάποια χαρακτηριστικά Y R. 3
Λειτουργικές εξαρτήσεις vs Κλειδί Οι λειτουργικές εξαρτήσεις αποτελούν στην ουσία μια γενίκευση της έννοιας του κλειδιού Οι τιμές του κλειδιού προσδιορίζουν μοναδικά ολόκληρες τις πλειάδες μιας σχέσης, Η ύπαρξη μιας λειτουργικής εξάρτησης μεταξύ δύο υποσυνόλων χαρακτηριστικών ενός τύπου σχέσης σημαίνει οι τιμές του ενός υποσυνόλου χαρακτηριστικών προσδιορίζουν μοναδικά τις τιμές του άλλου υποσυνόλου χαρακτηριστικών στις πλειάδες μιας σχέσης. 4
Παράδειγμα FLEET CREW ROUTE RDATE RBTIME C401 C401 C402 C402 C402 C403 C403 C404 C404 C404 283 116 281 301 283 283 116 281 281 312 09/09/2004 10/09/2004 08/09/2004 12/09/2004 11/09/2004 13/09/2004 12/09/2004 09/09/2004 13/09/2004 15/09/2004 10:15 13:25 17:50 06:35 10:15 10:15 13:25 17:50 17:50 13:25 Σε κάθε δρομολόγιο αντιστοιχεί μία ακριβώς ώρα έναρξης δρομολογίου. Σε κάθε πλήρωμα, ημερομηνία δρομολογίου και ώρα έναρξης δρομολογίου αντιστοιχεί ένα ακριβώς δρομολόγιο. Σε κάθε δρομολόγιο και ημερομηνία δρομολογίου αντιστοιχεί ακριβώς ένα πλήρωμα. ROUTE RBTIME {CREW, RDATE, RBTIME} ROUTE {ROUTE, RDATE} CREW 5
Παράδειγμα φυσικής σημασίας εξαρτήσεων Έστω το παρακάτω σχεσιακό σχήμα: (συντομογραφία) Ε(Μ, Φ, Ω, Α, Β) Εγγραφή(Μάθημα, Φοιτητής, Ώρα, Αίθουσα, Βαθμός) 1. Τα μαθήματα προσφέρονται μόνο μια φορά (σε μια συγκεκριμένη ώρα και αίθουσα). 2. Οι φοιτητές δεν μπορούν να είναι σε δυο διαφορετικά μέρη ταυτόχρονα 3. Δε γίνεται να έχουμε δυο μαθήματα ταυτόχρονα στην ίδια αίθουσα 4. Ένας φοιτητής παίρνει μόνο ένα βαθμό σε κάθε μάθημα Ποιες συναρτησιακές εξαρτήσεις εκφράζουν αυτές τις συνθήκες. 6
Τετριμμένες λειτουργικές εξαρτήσεις Τετριμμένες εξαρτήσεις (ισχύουν για όλα τα σχήματα) Παράδειγμα: Α Α ή ΑΒ Β Γενικά, Χ Υ τετριμμένη, όταν Y X 7
Λειτουργικές Εξαρτήσεις Οι λειτουργικές εξαρτήσεις ορίζονται στο σχήμα μιας σχέσης Έστω ένας τύπος σχέσης R και F ένα σύνολο λειτουργικών εξαρτήσεων. Η X Y είναι λειτουργική εξάρτηση επί του τύπου σχέσης R αν τα X και Y είναι υποσύνολα του R. Το F είναι ένα σύνολο λειτουργικών εξαρτήσεων επί του R αν κάθε λειτουργική εξάρτηση του F είναι λειτουργική εξάρτηση επί του R. 8
Κανόνες Συμπερασμού F+ : κλειστότητα του F: σύνολο όλων των λειτουργικών εξαρτήσεων που συνάγονται από το F Κανόνες Συμπερασμού- για το συμπερασμό εξαρτήσεων 9
Κανόνες Συμπερασμού (Inference Rules) 1. Ανακλαστικός Κανόνας Αν Χ Υ, τότε X Y 2. Επαυξητικός Κανόνας {X Y} = ΧΖ YZ 3. Μεταβατικός Κανόνας {X Y, Υ Z } = Χ Z Κανόνες του Amstrong: βάσιμοι (sound) δε δίνουν λανθασμένες εξαρτήσεις και πλήρεις (complete) μας δίνουν όλο το F + 10
Επιπρόσθετοι κανόνες Συμπερασμού 4. Ενωτικός Κανόνας {X Y, Χ Z } = Χ YZ 5. Διασπαστικός Κανόνας {X YZ } = Χ Y, Χ Ζ 6. Ψευδομεταβατικός Κανόνας {X Y, ΥΖ W } = ΧZ W 11
Κανόνες Συμπερασμού 1. Ανακλαστικός Κανόνας Αν Χ Υ, τότε X Y 2. Απαυξητικός Κανόνας {X Y} συνάγει ΧΖ YZ 3. Μεταβατικός Κανόνας {X Y, Υ Z } συνάγει Χ Z 4. Ενωτικός Κανόνας {X Y, Χ Z } συνάγει Χ YZ 5. Διασπαστικός Κανόνας {X YZ } συνάγει Χ Y, Χ Ζ 6. Ψευδομεταβατικός Κανόνας {X Y, ΥΖ W } συνάγει ΧZ W 12
Παράδειγμα R={A, B, C, G, H, I} F={A B, A C, CG H, CG I, B H} F + A H CG HI AG I AG H (A C, CG I) 13
Κλειστότητα Χ + : κλειστότητα (closure) ενός συνόλου X από γνωρίσματα υπό το F σύνολο όλων των γνωρισμάτων που εξαρτώνται λειτουργικά από το X μέσω του F Υπολογισμός του Χ + Result := Χ while (αλλαγή στο Result) Για κάθε λειτουργική εξάρτηση: Υ Ζ F Αν Υ Result, Result := Result Z 14
Κλειστότητα Παράδειγμα Έστω R = {A, B, C, G, H, I} και F = {A B, A C, CG H, CG I, B H} Υπολογισμός του {A, G} + A, G, B, C, H, I, 15
Κάλυψη Έστω δυο σύνολα λειτουργικών εξαρτήσεων E και F Λέμε ότι το F καλύπτει το E (ή το Ε καλύπτεται από το F), αν κάθε λειτουργική εξάρτηση στο Ε, ανήκει στο F + (δηλαδή, συνάγεται από το F) (αλλιώς, Ε F + ) Δυο σύνολα συναρτησιακών εξαρτήσεων E και F είναι ισοδύναμα ανν E + = F +. (δηλαδή, αν το Ε καλύπτει το F και το F καλύπτει το Ε) 16
Πλεονάζον σύνολο ΛΕ Έστω ένας τύπος σχέσης R και F ένα σύνολο λειτουργικών εξαρτήσεων επί του R Το σύνολο λειτουργικών εξαρτήσεων F ονομάζεται μη πλεονάζον (non-redundant) αν δεν υπάρχει γνήσιο υποσύνολο F του F τέτοιο ώστε (F ) + = F +. Αν υπάρχει τέτοιο σύνολο F τότε το F ονομάζεται πλεονάζον (redundant). 17
Παράδειγμα Έστω ένα σύνολο F = { A B, B C, A C, A {B, C}, {A, B} C} λειτουργικών εξαρτήσεων επί ενός τύπου σχέσης R. Το σύνολο F είναι πλεονάζον διότι μπορούν να αφαιρεθούν από το F οι λειτουργικές εξαρτήσεις A C, A {B, C} και {A, B} C και το παραγόμενο σύνολο F = {A B, B C} που είναι γνήσιο υποσύνολο του F είναι και ισοδύναμο με το F. A B, B C Α C A B, A C A {B,C} A C, B C {A, B} C Προφανώς, το σύνολο F είναι μη πλεονάζον. 18
Πλεονάζον χαρακτηριστικό Έστω ένας τύπος σχέσης R και F ένα σύνολο λειτουργικών εξαρτήσεων επί του R. Έστω, επίσης, μια λειτουργική εξάρτηση X Y του συνόλου λειτουργικών εξαρτήσεων F και A ένα χαρακτηριστικό του υποσυνόλου χαρακτηριστικών X ή/και του υποσυνόλου χαρακτηριστικών Y. Το A είναι πλεονάζον (extraneous ή superfluous) χαρακτηριστικό στη λειτουργική εξάρτηση X Y αν μπορεί να αφαιρεθεί από το X ή/και από το Y, αντίστοιχα, χωρίς να αλλάξει η κλειστότητα F+ του F. Έστω ο τύπος σχέσης R = {A, B, C, D} και ένα σύνολο G = {B C, A {B, C}, {A, B} D} λειτουργικών εξαρτήσεων επί του R. Από την εφαρμογή των συμπερασματικών αξιωμάτων προκύπτει ότι το χαρακτηριστικό C είναι πλεονάζον στο δεξιό μέρος της λειτουργικής εξάρτησης A {B, C}. 19
Ελάχιστη Κάλυψη Ελάχιστο κάλυμμα F min της F: ελάχιστο σύνολο από λειτουργικές εξαρτήσεις που είναι ισοδύναμο με την F Ένα σύνολο F λειτουργικών εξαρτήσεων(λε) είναι ελάχιστο αν: 1. κάθε ΛΕ στο F έχει ένα μόνο γνώρισμα στο δεξιό της μέρος 2. δε μπορούμε να αντικαταστήσουμε μια ΛΕ Χ Ζ από το F με μια ΛΕ Υ Z τέτοια ώστε Y X και να πάρουμε ένα σύνολο ισοδύναμο του F (δεν υπάρχει περιττό γνώρισμα στο αριστερό μέλος της συναρτησιακής εξάρτησης) 3. δε μπορούμε να αφαιρέσουμε μια ΛΕ από το F και να πάρουμε ένα σύνολο ισοδύναμο του F (η ΛΕ δεν είναι πλεονάζουσα) 20
Αλγόριθμος υπολογισμού ελάχιστου καλύμματος 1. Αντικατέστησε τις συναρτησιακές εξαρτήσεις 2.Για κάθε ΣΕ Χ 1 Υ 1 Υ 2 με Χ 1 Υ 1 και Χ 1 Υ 2. (i) Βρες τα πλεονάζοντα γνωρίσματα στο αριστερό μέρος αφαίρεσε τα (ii) Έλεγξε αν είναι η λειτουργική εξάρτηση είναι πλεονάζουσα, αν ναι αφαίρεσέ τη 21
Ελάχιστο Κάλυμμα Παράδειγμα (1) Παράδειγμα Έστω R(A, B, C) και F = {A BC, B C, A B, AB C}. Βρείτε το F min. 22
Ελάχιστο Κάλυμμα Παράδειγμα (1) Παράδειγμα Έστω R(A, B, C) και F = {A BC, B C, A B, AB C}. Βρείτε το F min. Μετά το βήμα 1: {A B, A C, B C, Α Β, AB C} Βήμα 2: Εξέταση αν το Α είναι περιττό στο AB C, υπολογίζοντας το (Β) + είναι περιττό Νέο σύνολο: {A B, A C, B C, B C} Βήμα 3: Εξέταση αν η ΣΕ A B είναι περιττή όχι Εξέταση αν η ΣΕ A C είναι περιττή ναι Νέο σύνολο: {A B, B C} Εξέταση αν η ΣΕ Β C είναι περιττή όχι Αποτέλεσμα: {A B, B C} 23
Αναφορές Διαφάνειες μαθήματος. E. Πιτουρά. Παν. Ιωαννίνων Γ. Βασιλακόπουλος. «ΣΧΕΔΙΑΣΜΟΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ», 2009 24