ΗΥ-360 Αρχεια και Βασεις εδοµενων, Τµηµα Επιστηµης Υπολογιστων, Πανεπιστηµιο Κρητης Συναρτησιακές Εξαρτήσεις Βάρσος Κωνσταντίνος 24 Νοεµβρίου 2017 Ορισµός 1. Μια συναρτησιακή εξάρτηση µεταξύ X και Y συµβολίζεται µε X Y και ορίζει έναν περιορισµό ως προς τις τιµές των χαρακτηριστικών. Σε αυτή την περίπτωση το σύνολο χαρακτηριστικών Y λέγεται συναρτησιακά εξαρτώµενο ( functional dependent) από το σύνολο X. Αν δύο πλειάδες έχουν τις ίδιες τιµές στα χαρακτηριστικά του συνόλου X, τότε ϑα έχουν ίδιες τιµές και στα χαρακτηριστικά του συνόλου Y. Σε οποιαδήποτε σχέση R, αν S 1 R και S 2 R, η συναρτησιακή εξάρτηση S 1 S 2 καθορίζει ότι για οποιεσδήποτε δύο πλειάδες t 1 και t 2 της R ισχύει Αν t 1 [S 1 ] = t 2 [S 1 ], τότε t 1 [S 2 ] = t 2 [S 2 ] Σε ένα σύνολο χαρακτηριστικών µπορεί να υπάρχουν τετριµµένες (trivial) συναρτησιακές εξαρτήσεις αλλά και άλλες που µπορούν να συναχθούν. 1) Εστω µια αλυσίδα καταστηµάτων. Κάθε τµήµα έχει έναν διευθυντή και κάθε διευθυντής δεν µπορεί να ανήκει σε παραπάνω από ένα τµήµα. Ενα τµήµα µπορεί σε πολλές πόλεις. Ισχύει η συναρτησιακή εξάρτηση, SupSS DeptNo εν ισχύουν SupSS City DeptNo City 2) Εστω ότι ένας διευθυντής διευθύνει µόνο ένα τµήµα σε κάθε πόλη. Ισχύει η συναρτησιακή εξάρτηση, {City, DeptNo} SupSS εν ισχύουν SupSS {City, DeptNo} {SupSS, DeptNo} City 1
Αξιώµατα Armstrong Είναι ϐάσιµα καθώς δεν δίνουν λανθασµένες εξαρτήσεις και πλήρη καθώς δίνουν όλες τις συναγόµενες συναρτησιακές εξαρτήσεις. Ανακλαστικότητα (Reflexivity): Προσαύξηση (Augmentation): Μεταβατικότητα (Transitivity): Αν B A, τότε A B Αν A B, τότε AC BC Αν A B και B C, τότε A C Συνέπειες αξιωµάτων Ενωση (Union): ιάσπαση (Decomposition): Αν A B και A C, τότε A BC Αν A CB, τότε A B και A C Ψευδοµεταβατικός κανόνας (Pseudo-transitivity): Αν A B και BC D, τότε AC D 1) Εστω R = (A, B, C, G, H, I) και οι συναρτησιακές εξαρτήσεις A B, A C, CG H, CG I, B H Μέσω των κανόνων Armstrong εξάγονται οι, A H, A BC, AG I, CG HI 2) ίνεται πίνακας R µε τα χαρακτηριστικά W, U, V, X, Y, Z και οι συναρτησιακές εξαρτήσεις : Ζητείται να αποδειξθεί ότι ισχύει W X Z. W UV, U Y, V X Y Z Λύση i) Με διάσπαση από την W UV προκύπτει W V. ii) Με επαύξηση προκύπτει W X V X. iii) Με µεταβατικότητα προκύπτει W X UZ. iv) Με διάσπαση προκύπτει W X Z. Ορισµός 2. Το σύνολο των συναρτησιακών εξαρτήσεων που µπορούν να παραχθούν από ένα σύνολο εξαρτήσεων F λέγεται κλειστότητα (closure) και συµβολίζεται µε F +. 2
Εστω R = {A, B, C, D} και ισχύει A B, A C B D Αν έχουµε µια συναρτησιακή εξάρτηση όπου A D όπου D είναι ένα υποσύνολο του A τότε η συγκεκρι- µένη συναρτησιακή εξάρτηση είναι τετριµµένη A D, A A(trivial) Αν έχουµε ένα σύνολο από συναρτησιακές εξαρτήσεις F, τότε το σύνολο F + όλων των συναρτησιακών εξαρτήσεων, που συνεπάγονται λογικά καλείται κλείσιµο του F. Ορισµός 3. Το K είναι υποψήφιο κλειδί της σχέσης R ανν K R για κανένα α K, α R. Συνεχίζοντας το προηγούµενο παράδειγµα, ϐρήκαµε ότι CD ABCDE, A ABCDE, E ABCDE. Άρα τα υποψήφια κλειδιά για την σχέση R είναι A, E, CD Ο προσδιορισµός του συνόλου κλειστότητας F + είναι δαπανηρός αλγοριθµικά ακόµη και για µικρό σύνολο εξαρτήσεων F. Ορισµός 4. Κλειστότητα του συνόλου χαρακτηριστικών X( attribute closure), ως προς το σύνολο των χαρακτηριστικών εξαρτήσεων F, είναι το σύνολο των χαρακτηριστικών που είναι συναρτησιακά εξαρτώµενα από το σύνολο των χαρακτηριστικών X και το συµβολίζουµε µε X +. Στη σχέση R = (ΑΦΜ, ΑΜ, ϐαθµός, όνοµα, διεύθυνση) και (ΣΕ) ΑΦΜ, ΑΜ ϐαθµός, ΑΦΜ όνοµα, διεύθυνση Παίρνουµε ότι {ΑΦΜ} + = ΑΦΜ, όνοµα, διεύθυνση. Σηµείωση 1. Αν το X + είναι το σύνολο όλων των γνωρισµάτων του πίνακα τότε το X είναι υποψήφιο κλειδί. Υπολογισµός κλειστότητας A + : Αλγόριθµος υπολογισµού A + της κλεισότητας του A κάτω από το σύνολο F αποτέλεσµα := A while (υπάρχουν αλλαγές στο αποτέλεσµα) do for each β γ στο F do begin if β αποτέλεσµα then αποτέλεσµα := αποτέλεσµα γ end 1) Εστω R = {A, B, C, G, H, I} και οι συναρτησιακές εξαρτήσεις του F : Να υπολογιστεί το {A, C} +. I B, A H, B G, C G, CG I 3
. α {A, C} + = AC 1.. ϐ {A, C} + = AC H, από A {A, C} + και A H.. γ {A, C} + = ACH G, από C G.. δ {A, C} + = ACHG I, από CG I.. ε {A, C} + = ACHGI B, από I B. Άρα {A, C} + = ACHGIB. 2) Εστω R = {A, B, C, G, H, I} και οι συναρτησιακές εξαρτήσεις του F : A B, A C, CG H, CG I, B H Ως AG + ορίζεται :. α AG + = {AG},. ϐ AG + = {ABG},από A B.. γ AG + = {ABCG}, από A C.. δ AG + = {ABCGH}, από CG H ή B H.. ε AG + = {ABCGHI}, από CG I. 3) Εστω R = {A, B, C, D, E} και οι συναρτησιακές εξαρτήσεις του F : A B, A C, BC D, D E, B H Ως X + = A + ορίζεται :. α A + = {A}.. ϐ A + = {A, B}, από A B.. γ A + = {A, B, C}, από A C.. δ A + = {A, B, C, D}, από BC D.. ε A + = {A, B, C, D, E}, από D E. Ως X + = BC + ορίζεται :. α BC + = {B, C}.. ϐ BC + = {B, C, D}, από DC D.. γ BC + = {B, C, D}, από DC D. 4) ίνεται ο πίνακας R = {V, Y, Z, W } και το Να ϐρεθεί η κλειστότητα του χαρακτηριστικού V. F + = {V Z, V Z W, W Y, V Y W } Λύση Βήµα 1ο : X = V. Βήµα 2ο : X = V Z, λόγω της V Z. Βήµα 3ο : X = V ZW, λόγω της V Z W. Βήµα 3ο : X = V ZW Y, λόγω της W Y. Βήµα 3ο : εν µπορούν να γίνουν άλλες αλλαγές. 1 Εναλλακτικά αντί για {A, C} + γράφουµε AC + ή (AC) + 4
5) ίνεται ο πίνακας R = {V, Y, Z, W } και το Να ϐρεθεί η κλειστότητα του χαρακτηριστικού V. Λύση F + = {V Y, W Y, V W } Βήµα 1ο : X = V. Βήµα 2ο : X = V Y, λόγω της V Y. Βήµα 3ο : X = V Y W, λόγω της V W. Βήµα 3ο : εν µπορούν να γίνουν άλλες αλλαγές. 6) Εστω R = (A, B, C, D, E) και οι συναρτησιακές εξαρτήσεις του F : A D, A C, BC D, D E Αποτελέσµατα του αλγορίθµου για µερικές περιπτώσεις του X. Για το (A) + : ACDE. Για το (B) + : B. Για το (C) + : C. Για το (D) + : DE. Για το (E) + : E. Για το (BC) + : BC. Για το (AB) + : ABCDE. 7) Θεωρείστε το σχήµα R = {A, B, C, D, E} και το ακόλουθο σύνολο συναρτησιακών εξαρτήσεων F : A BC, CD E, B D, E B Με ϐάση τα παραπάνω, µπορεί να ϑεωρηθεί ο συνδυασµός γνωρισµάτων CD, ως υποψήφιο κλειδί; ικαιολογήστε την απάντηση σας. Βρίσκω την CD + και εάν περιλαµβάνει όλα τα γνωρίσµατα του σχήµατος, τότε CD υποψήφιο κλειδί.. α {CD} + = CD.. ϐ {CD} + = CD E.. γ {CD} + = CDE B.. δ {CD} + = CDEB. Το {CD} + δεν περιλαµβάνει όλα τα γνωρίσµατα του σχήµατος. Άρα το CD δεν αποτελεί υποψήφιο κλειδί. Ορισµός 5. Εστω δύο σύνολα εξαρτήσεων E και F. Λέµε ότι το F καλύπτει το E αν κάθε εξάρτηση στο E ανήκει στο F +, εναλλακτικά γράφουµε E F +. Ορισµός 6. οθέντος ενός F από συναρτησιακές εξαρτήσεις (ΣΕ) ελάχιστη κάλυψη, F c, ονοµάζεται το ελάχιστο σύνολο ισοδύναµων συναρτησιακών εξαρτήσεων. Η διαφορά µεταξύ της κανονικής κάλυψης και της ελάχιστης κάλυψης είναι ότι στην πρώτη επιτρέπεται να έχουµε παραπάνω από ένα χαρακτηριστικά στο αριστερό µέλος ενώ στην δεύτερη επιτρέπεται αυστήρα ένα. Προσοχή στην ϐιβλιογραφία δεν χρησιµοποιείται πάντοτε αυτή η διάκριση. Οπου δεν διακρίνονται οι όροι χρησιµοποιούνται κατά το δοκούν. 5
Ορισµός 7. Λέµε ότι δύο σύνολα συναρτησιακών εξαρτήσεων E και F είναι ισοδύναµα ανν E + = F +. Ορισµός 8. Μια ιδιότητα, σύνολο γνωρισµάτων, µια συναρτησιακής εξάρτησης λέγεται εξωτερική ή (πλεονάζουσα) αν µπορούµε να την αφαιρέσουµε χωρίς να αλλάξουµε το κλείσιµο του σύνολου των εξαρτήσεων. Εστω F και εξάρτηση α β στο F. Η ιδιότητα A είναι εξωτερική στο α αν το A α και το F συνεπάγεται λογικά (F {α β}) {(α A) β}. Η ιδιότητα A είναι εξωτερική στο β αν το A beta και το σύνολο των εξαρτήσεων (F {α β}) {α (A β)} συνεπάγεται λογικά το F. Η κάλυψη F c για το F είναι ένα σύνολο από εξαρτήσεις έτσι ώστε το F να συνεπάγεται λογικά όλες τις εξαρτήσεις στο F c και το F c να συνεπάγεται λογικά όλες τις εξαρτήσεις στο F. Το F c πρέπει να έχει τις παρακάτω ιδιότητες, Καµία εξάρτηση του F c δεν περιέχει µια εξωτερική ιδιότητα, Κάθε αριστερή πλευρά µιας εξάρτησης στο F c είναι µοναδική. εν υπάρχουν δύο εξαρτήσεις α 1 β 1 και α 2 β 2 στο F c έτσι ώστε α 1 = α 2. Αλγόριθµος υπολογισµού της ελάχιστης κάλυψης ενός συνόλου ΣΕ ( ιάσπαση) ηµιουργούµε ένα νέο σύνολο G ισοδύνοµο του F όπου ϕροντίζουµε να έχουµε (ΣΕ), µε µόνο ένα γνώρισµα στο δεξιό µέλος της συνάρτησης. Αντικαθιστούµε τις (ΣΕ) µε άλλες, που έχουν άλλα γνωρίσµατα στο αριστερό µέλος εφόσον δεν επηρεάζουν την κλειστότητα του G. (Πλεονάζουσες) Αφαιρούµε από το G όλες τις (ΣΕ) που δεν επηρεάζουν στην κλειστότητα του G αν αφαι- ϱεθούν. Συγχωνεύουµε τις (ΣΕ) που έχουν το ίδιο αριστερό µέλος, ϕροντίζοντας έτσι όλα τα αριστερά µέλη να είναι µοναδικά. 1) Εστω A = (A, B, C, D) µε ΣΕ : F = {A BC, B C, A B, AB C}, Αποσυνθέτουµε συναρτησιακές εξαρτήσεις (Η AB C γίνεται A B, A C.), G = {A B, A C, B C, A B, AB C} Αφαιρούµε τις πλεονάζουσες ( εν επηρεάζει την κλειστότητα η αφαίρεση µιας A B), G = {A B, A C, B C, AB C} Αφαιρούµε την AB C αφού δεν επηρεάζει την κλειστότητα, G = {A B, A C, B C} Αφαιρούµε την A C αφού δεν επηρεάζει την κλειστότητα, G = {A B, B C} Συνεπώς η ελάχιστη κάλυψη είναι {A B, B C}. 2. Εστω A = {A, B, C, D, E, F } µε (ΣΕ): F = {AB D, B C, AE B, A D, D EF }. Εφαρ- µόζουµε τον αλγόριθµο για G = {AB D, B C, AE B, A D, D EF }. Βήµα 1. Αποσυνθέτουµε συναρτησιακές εξαρτήσεις G = {AB D, B C, AE B, A D, D E, D F } 6
Βήµα 2. Αφαιρούµε τις (ΣΕ) που δεν επηρεάζουν το G, Για την AB D, στο {B C, AE B, A D, D E, D F } ϐρίσκω AB + = ABCDEF που περιέχει το D και την αφαιρώ G = {B C, AE B, A D, D E, D F } Για την B C, G\{B C} ϐρίσκω B + = B, δεν περιέχει το C και το G µένει ως έχει. Για την AE B, G\{AE B} ϐρίσκω AE + = AEDF, δεν περιέχει το B και το G µένει ως έχει. Για την A D, G\{A D} ϐρίσκω A + = A, δεν περιέχει το D και το G µένει ως έχει. Για την D E, G\{D E} ϐρίσκω D + = DF, δεν περιέχει το E και το G µένει ως έχει. Για την D F, G\{D F } ϐρίσκω D + = DF, δεν περιέχει το F και το G µένει ως έχει. Βήµα 3. Αντικαθιστούµε τις (ΣΕ) µε άλλες που έχουν λιγότερα γνωρίσµατα στο αριστερό µέλος, G = {B C, AE B, A D, D E, D F } Για την AE B στο G που είναι η µόνη µε πολλαπλό αριστερό µέλος έχουµε Για το A AE Y := AE {A} = E J := ({B C, AE B, A D, D E, D F } {AE B}) {E B} = {B C, A D, D E, D F } {E B}. Υπολογίζω το Y + για το σύνολο J και το Y + για το G. E + = EBC στο σύνολο J, E + = E στο σύνολο G Για το E AE Y := AE {E} = A J := ({B C, AE B, A D, D E, D F } {AE B}) {A B} = {B C, A D, D E, D F } {A B}. Υπολογίζω το Y + για το σύνολο J και το U + για το G. A + = ABCDEF στο σύνολο J, A + = ABCDEF στο σύνολο G Το A + στο J είναι ίδιο µε το A + στο G, άρα διατηρώ την αντικατάσταση του AE B από το A B. Άρα το σύνολο που προκύπτει είναι το, G = {B C, A B, A D, D E, D F } Βήµα 4. Εφαρµόζουµε τον κανόνα της ένωσης στις (ΣΕ) µε κοινό αριστερό µέρος. Άρα η G γίνεται, G = {B C, A BD, D EF } Εύρεση υποψήφιων κλειδών δεδοµένου ενός πίνακα R και των εξαρτήσεων F + µεταξύ των πεδίων του. Βήµα 1ο : Βρες τα χαρακτηριστικά που δεν εµφανίζονται ούτε στην αριστερή αλλά ούτε και στην δεξιά πλευρά της συναρτησιακής εξάρτησης. Βήµα 2ο : Βρες τα χαρακτηριστικά που εµφανίζονται µόνο στη δεξιά πλευρά. Βήµα 3ο : Βρες τα χαρακτηριστικά που εµφανίζονται µόνο στην αριστερή πλευρά. 7
Βήµα 4ο : Συνδύασε τα χαρακτηριστικά του ϐήµατος 1 & 3. Βήµα 5ο : Βρες την κλειστότητα των χαρακτηριστικών του ϐήµατος 4. Αν σε αυτήν ανήκουν όλα τα υπόλοιπα χαρακτηριστικά τότε είναι υποψήφιο κλειδί. ιαφορετικά, επανέλαβε τα ϐήµατα 4 & 5 προσαρτώντας κάθε ϕορά ένα χαρακτηριστικό που δεν συµπεριλαµβάνεται στο ϐήµα 2 & 4. 1) Εστω R = {A, B, C, D, E, F, G} µια σχέση και F = {AB F, AD E, F G} ένα σύνολο εξαρτήσεων στη σχέση αυτή. Βρείτε ένα υποψήφιο κλειδί στην R. Λύση. Βήµα 1ο : C. Βήµα 2ο : EG. Βήµα 3ο : ABD. Βήµα 4ο : ABCD. Βήµα 5ο : Η κλειστότητα του συνόλου των χαρακτηριστικών του ϐήµατος 4 είναι ABCDEF G. Άρα το ABCD είναι υποψήφιο κλειδί. 2) Εστω R = {A, B, C, D} µια σχέση και F = {ABC D, D A} ένα σύνολο εξαρτήσεων στη σχέση αυτή. Βρείτε ένα υποψήφιο κλειδό στην R. Λύση. Βήµα 1ο :. Βήµα 2ο :. Βήµα 3ο : BC. Βήµα 4ο : BC. Βήµα 5ο : Η κλειστότητα του BC είναι το BC. Η κλειστότητα του ABC είναι το ABCD. Άρα το ABC είναι υποψήφιο κλειδί. 3) Εστω η σχέση R = (A, B, C, D, E) και το σύνολο (ΣΕ) F = {A B, BC E, ED A}. Στα δεξιά µέλη δεν έχω ούτε D ούτε C. Ξεκινάω µε CD. CD + = CD, δεν είναι το σύνολο των γνωρισµάτων της σχέσης άρα συνεχίζω µε, Προσθέτω το A: ACD + = ACDBE, το ACD είναι το κλειδί. Προσθέτω το B: BCD + = BCDEA, το BCD είναι το κλειδί. Προσθέτω το E: BCE + = ACDBE, το CDE είναι το κλειδί. Κλειδιά είναι τα ACD, BCD και CDE. Συχνά χρειάζεται να διασπάσουµε µια σχέση σχήµατος που έχει πολλές ιδιότητες σε διάφορα σχήµατα µε λιγότε- ϱες ιδιότητες. Μια τέτοια διάσπαση λέγεται αποσύνθεση. Η σχέση ABCD µπορεί να διασπαστεί σε ABC και CD. Ορισµός 9. Μια αποσύνθεση {R 1, R 2,..., R k } της σχέσης R µε συναρτησιακές εξαρτήσεις F λέγεται αποσύν- ϑεση χωρίς απώλεια πληροφορίας ( Lossless - join decomposition), αν ανεξάρτητα από το περιεχόµενο της R, οι συναρτησιακές εξαρτήσεις εξασφαλίζουν ότι R = R 1 R 2... R k 8
, δηλαδή αν ισχύει παραπάνω σχέση για όλες τις σχέσεις στο σχήµα R που ικανοποιούν όλους τους κανόνες ή περιορισµούς που έχουµε ϐάλει στην ϐάση δεδοµένων µας. Θεώρηµα 1. εδοµένης µιας σχέσης R και ενός συνόλου (ΣΕ) F οι οποίες πληρούνται στην R, µια αποσύνθεση της R στις σχέσεις R 1 και R 2 δεν πάσχει από απώλεια πληροφορίας αν τουλάχιστον µια από τις ακόλουθες (ΣΕ) είναι λογική συνέπεια των (ΣΕ) στο F. Head(R 1 ) Head(R 2 ) Head(R 1 ) Head(R 1 ) Head(R 2 ) Head(R 2 ), δηλαδή αν τα κοινά γνωρίσµατα των δύο σχέσεων R 1 R 2 σχηµατίζουν υπερκλειδί για τουλάχιστον ένα από τα σχήµατα R 1 ή R 2, τότε η αποσύνθεση του R είναι µια αποσύνθεση χωρίς απώλειες συνδέσµου. 1) Εστω ότι η (ΣΕ) B C ισχύει στη σχέση R(ABC). Η R αποσυντίθεται στις R 1 (AB) και R 2 (BC). Πάσχει από απώλεια πληροφορίας η αποσύνθεση αυτή; Λύση. Εχουµε Head(R 1 ) Head(R 2 ) = B. Πρέπει να δείξουµε ότι ισχύει µια εκ των (ΣΕ) 1) B AB 2) B BC Από την B C εξάγεται η B BC µε χρήση του κανόνα επαύξησης. Άρα η αποσύνθεση δεν πάσχει από απώλεια πληροφορίας. 2) Εστω R = {Τίτλος, Ετος, ιάρκεια, Είδος, Ονοµα Ηθοποιού, ιεύθυνση, Ετος Γέννησης}. Εχουµε τις (ΣΕ) Τίτλος Ετος ιάρκεια Τίτλος Ετος Είδος Ονοµα Ηθοποιού ιεύθυνση Ονοµα Ηθοποιού Ετος Γέννησης και τις σχέσεις R 1 = {Τίτλος, Ετος, ιάρκεια, Είδος } R 2 = {Τίτλος, Ετος, Ονοµα Ηθοποιού, ιεύθυνση, Ετος Γέννησης} Άρα R 1 R 2 = {Τίτλος, Ετος}. Γνωρίζουµε ότι ένα κλειδί K είναι υπερκλειδί µιας σχέσης R αν και µόνο αν ισχύει K R. Συνεπώς η R 1 R 2 είναι υπερκλειδί για την R 1, άρα και αποσύνθεση χωρίς απώλειες. 3) Υποθέτουµε ότι αποσυνθέτουµε το σχήµα R = {A, B, C, D, E} σε R 1 = {A, B, C} και R 2 = {A, E, D} και ισχύει το παρακάτω σύνολο από λειτουργικές εξαρτήσεις, F = {A BC, CD E, B D, E A} Βρίσκουµε ότι R 1 R 2 = A και λαµβάνοντας υπόψιν ότι ισχύει A BC, δηλαδή είναι κλειδί για το R 1, η αποσύνθεση γίνεται χωρίς απώλειες. 9