Department of Computer Science University of Cyprus EPL342 Databases Lecture 22: Functional Dependencies and Normalization Functional Dependencies (Chapter 10.2, Elmasri-Navathe 5ED) Demetris Zeinalipour http://www.cs.ucy.ac.cy/courses/epl342 22-1
Πεξηερόκελν Γηάιεμεο πλαξηεζηαθέο Δμαξηήζεηο (Functional Dependencies FD) Καλόλεο πκπεξαζκνύ γηα πλαξηεζηαθέο Δμαξηήζεηο(Inference Rules - IR) Τα αμηώκαηα Armstrong. Απνδείμεηο κε ρξήζε γλσζηώλ θαλόλσλ Οξηζκνί πλαξηεζηαθώλ Δμαξηήζεσλ (FD): Κιεηζηόηεηεο F + θαη X + (Closure) Ηζνδπλακία F + =G + (Δquivalence) Κάιπςε FD (Cover) Διάρηζηε Κάιπςε FD (Minimal Cover) 22-2
Σπλαξηεζηαθέο Δμαξηήζεηο ΣΔ (Functional Dependencies - FD) Σηελ πξνεγνύκελε δηάιεμε θαιύςακε κε άηππν ηξόπν θάπνηεο θαηεπζύλζεηο γηα ζρεδηαζκό ελόο θαινύ ζρεζηαθνύ ζρήκαηνο. Σε απηή ηελ δηάιεμε ζα κειεηήζνπκε ηελ έλλνηα ησλ πλαξηεζηαθώλ Δμαξηήζεσλ (Functional Dependencies, FD) Με ρξήζε ησλ FD ζα κπνξέζνπκε λα απνηηκήζνπκε, ζηελ εξρόκελε δηάιεμε, κε ηππηθό ηξόπν ηελ ρξεζηόηεηα (goodness) ελόο ζρεζηαθνύ ζρήκαηνο. Οη Σπλαξηεζηαθέο Δμαξηήζεηο απνηεινύλ ην βαζηθό ππόβαζξν ζην Relational Design Theory 22-3
Παξαδείγκαηα FDs Παξαδείγκαηα πλαξηεζηαθώλ Δμαξηήζεσλ: To SSN πξνζδηνξίδεη ην όλνκα ηνπ Employee. SSN ENAME To PNUMBER πξνζδηνξίδεη ην Project Name θαη Location PNUMBER {PNAME, PLOCATION} Τν SSN θαη ην PNumber πξνζδηνξίδεη ηνλ αξηζκό νξώλ πνπ εξγάδεηαη έλαο employee ζε έλα project. {SSN, PNUMBER} HOURS Φαηλνκεληθά, ηo αξηζηεξό κέινο ελόο FDs είλαη θάπνην πξσηεύσλ θιεηδί. Σηελ πξαγκαηηθόηεηα, κπνξεί λα είλαη νπνηνδήπνηε/α key ή nonkey γλώξηζκα/ηα, π.ρ., Credits Status ΝumberGrade LetterGrade CarModel Manfacturer {Author, Title} Publication Date Τα FDs νξίδνπλ εμαξηήζεηο νη νπνίεο ηζρύνπλ ζηηο πιείζηεο πεξηπηώζεηο (ίζσο όρη πάληα) θαη ζπλεπώο νδεγνύλ ζε επαλάιεςε (redundancy) δεδνκέλσλ. 22-4
Παξαδείγκαηα FDs H ζπλαξηεζηαθή εμάξηεζε TOWN ZIP ζην αθόινπζν ζρήκα πξνθαιεί ηελ επαλάιεςε πιεξνθνξίαο (redundancy) Π.ρ., νη δηεπζύλζεηο ζηελ ίδηα πεξηνρή έρνπλ ην ίδην ηαρπδξνκηθό θώδηθα (zip) SSN Name Town Zip 1234 Joe Stony Brook 11790 4321 Mary Stony Brook 11790 5454 Tom Stony Brook 11790. Καη επέθηαζε, ε πην πάλσ επαλάιεςε νδεγεί ζε αλσκαιίεο εηζαγσγώλ, δηαγξαθώλ θαη ελεκεξώζεσλ γηα απηό ε επαλάιεςε δεδνκέλσλ πξέπεη λα ειαρηζηνπνηεζεί! Redundancy 22-5
Σπλαξηεζηαθέο Δμαξηήζεηο FDs Μηα πλαξηεζηαθή Δμάξηεζε είλαη έλαο πεξηνξηζκόο κεηαμύ δπν νκάδσλ γλσξηζκάησλ κηαο βάζεο δεδνκέλσλ. Κάληε ηελ παξαδνρή όηη όια ηα γλσξίζκαηα κηαο βάζεο απνζεθεύνληαη ζε έλα θαζνιηθό πίλαθα R(A 1, A 2,, A n ) Έζησ όηη R=(A 1, A 2,, A n ) θαη όηη X R θαη Y R, ηόηε ε Σπλαξηεζηαθή Δμάξηεζε X Y, ππνδειώλεη όηη κηα αλάζεζε ηηκώλ ζην ζύλνιν X πξνζδηνξίδεη κνλαδηθά ην ζύλνιν Y. Γειαδή, εάλ t1[x]=t2[x], ηόηε t1[y]=t2[y] Δπνκέλσο είλαη κηα γελίθεπζε ηεο έλλνηαο ηνπ θιεηδηνύ. Θα αλαθεξόκαζηε ζηα FDs σο αθνινύζσο: Τν X πξνζδηνξίδεη ζπλαξηεζηαθά ην Y Τν Y είλαη ζπλαξηεζηαθά εμαξηώκελν από ην Χ 22-6
Παξαδείγκαηα FDs Tα FDs είλαη έλαο επηπιένλ κεραληζκόο ραξαθηεξηζκνύ ησλ πεξηνξηζκώλ αλαθνξηθήο αθεξαηόηεηαο (IC) κεηαμύ γλσξηζκάησλ κηαο ζρέζεο Ωζηόζν ηα FDs ΓΔΝ δειώλνληαη ξεηά ζε κηα βάζε, απιά ρξεζηκνπνηνύληαη σο εξγαιείν γηα Δθιέπηπλζε ηνπ Σρήκαηνο θαηά ηελ θάζε ηεο ζρεδίαζεο. Γηα ηα FDs ππάξρνπλ νη αθόινπζεο πεξηπηώζεηο: A) ΙΧΥΔΙ γηα KΑΘΔ ζηηγκηόηππν βάζεο. π.ρ., SSN Teacher (γεληθά όια ηα FDs κε αξηζηεξό κέινο KEY ηζρύνπλ ΠΑΝΤΑ.) Β) ΜΠΟΡΔΙ λα Ιζρύεη (ζε ΚΑΠΟΙΟ ζηηγκηόηππν βάζεο: π.ρ., ζην πην θάησ ζηηγκηόηππν ηπγράλεη λα ηζρύεη ην TEXT COURSE C) ΓΔΝ Ιζρύεη ζε ΚΑΠΟΙΟ ζηηγκηόηππν βάζεο: Αξθεί λα βξείηε έλα αληηπαξάδεηγκα π.ρ., πην θάησ ΤΔΑCHER -/ COURSE. 22-7
Παξαδείγκαηα FDs Βξείηε πνηα FDs ηζρύνπλ ζην αθόινπζν ζηηγκηόηππν βάζεο (ή πνηα ΜΠΟΡΔΙ λα ηζρύνπλ ζηελ αθόινπζε βάζε) 1) 2) 3) 4) 5) A B C D a1 b1 c1 d1 a1 b2 c1 d2 a2 b2 c2 d2 a2 b2 c2 d3 a3 b3 c2 d4 A C; C A; B C; D B; AB D; YES NO (line 5) NO (line 3) YES NO (line 4) 22-8
Καλόλεο Σπκπεξαζκνύ γηα FDs (Inference Rules, IR) Με βάζε έλα ζύλνιν FDs F θαη ηνπο θαλόλεο ηνπ Armstrong, κπνξνύκε λα ζπκπεξάλνπκε (infer) επηπιένλ FDs ηα νπνία ηζρύνπλ όπνηε ηζρύεη ην F. Π.ρ., Από ην FD={SSN Dno, Dno->Dname} κπνξνύκε λα ζπκπεξάλνπκε, κε ηνπο θαλόλεο Armstrong, όηη SSN Dname. Οη Καλόλεο πκπεξαζκνύ (IR) Armstrong : IR1 (Αλαθιαζηηθόο, Reflexive): Δάλ X Y ηόηε X Y π.ρ., Δάλ {ssn,name} name ηόηε {ssn,name} name Δίλαη ηεηξηκκέλνο θαλόλαο. IR2 (Δπαπμεηηθόο, Augmentation): Δάλ X Y ηόηε XZ YZ π.ρ., Δάλ ssn name ηόηε {ssn,age} {name,age} * Τν ΧΕ ζεκαίλεη X U Z, επίζεο Δάλ X Y ηόηε XZ Y IR3 (Μεηαβαηηθόο, Transitive) Δάλ X Y θαη Y Z ηόηε X Z π.ρ., Δάλ ssn Dno θαη Dno Dname ηόηε ssn dname 22-9
Καλόλεο Σπκπεξαζκνύ γηα FDs (Inference Rules, IR) Οη θαλόλεο Armstrong (IR1, IR2, IR3) είλαη βάζηκνη (sound) θαη πιήξεηο (complete). Βάζηκνη (Sound): Γειαδή είλαη νξζνί γηα θάζε ζηηγκηόηππν εηζόδνπ (δείηε απνδείμεηο νξζόηεηαο ζην βηβιίν) Πιήξεηο (Complete): Με βάζεη απηνύο κπνξνύκε λα ζπλάγνπκε ΟΛΟΥΣ ηνπο άιινπο θαλόλεο πνπ κπνξεί λα ζπλαρζνύλ. Σηελ επόκελε δηαθάλεηα δείρλνπκε κεξηθνύο άιινπο Καλόλεο IR, ηνπο νπνίνπο κπνξνύκε λα ζπλάγνπκε από ηα αμηώκαηα Armstrong 22-10
Καλόλεο Σπκπεξαζκνύ γηα FDs (Inference Rules, IR) Καλόλεο πνπ πλάγνληαη από ηα Αμηώκαηα Armstrong IR4 Γηάζπαζε (Decomposition): Δάλ X YZ ηόηε X Y θαη X Z π.σ., Εάν ssn {name, age} ηόηε ssn name και ssn age Πποζοσή: Μόνο ηο δεξί μέλορ διαζπάηαι όσι ηο απιζηεπό π.σ., Εάν {ssn,name} age ΔΕΝ ΣΗΜΑΙΝΕΙ όηι name age IR5 Έλσζε (Union), [Αληίζηξνθν ηεο δηάζπαζεο]: Δάλ X Y θαη X Z, ηόηε X YZ π.σ., Εάν ssn->name και ssn->age ηόηε ssn->{name,age} Πποζοσή: X A θαη Υ B ΓΔΝ ΣΖΜΑΗΝΔΗ όηη ΦΥ ΑΒ IR6 Ψεπδνκεηάβαζε (Pseudotransitivity): Δάλ X Y θαη WY Z, ηόηε WX Z π.σ., Εάν isbn title και {author, title} pubdate ηόηε {author, isbn} pubdate 22-11
Καλόλεο Σπκπεξαζκνύ (IR) γηα FDs (Απνδείμεηο ΗR4-IR6) Οη θαλόλεο ζπκπεξαζκνύ IR1-IR6 κπνξεί λα απνδεηρηνύλ κε άκεζεο ή έκκεζεο απνδείμεηο (δεο βηβιίν) ελώ νη θαλόλεο IR4-IR6 θαη άιιεο αζθήζεηο κε ηε ρξήζε ησλ IR1-IR3. Απόδεημε IR4 (Γηάζπαζε): Δάλ X YZ = X Y X Z 1) Χ ΥΕ (δεδνκέλν) 2) YZ Y (IR1:αλαθιαζηηθή, ην ΥΕ Υ), αληίζηνηρα θαη YZ Ε από ΥΕ Ε 3) Φ Υ (IR3:κεηάβαζε 1-2), αληίζηνηρα X Z Απόδεημε IR5 (Έλσζε): (X Y X Z) = X YZ 1) Χ Υ (δεδνκέλν) 2) Φ Ε (δεδνκέλν) 3) XX XY (IR2:επαύμεζε 1 κε X) 4) X XY (απινπνίεζε 3, XX = X) 5) ΧY YZ (IR2:επαύμεζε 2 κε Y) 6) X YZ (IR3: κεηάβαζε 4-5) Απόδεημε IR6 (Ψεπδνκεηάβαζε): X Y WY Z = WX Z 1) Φ Υ (δεδνκέλν) 2) WY Ε (δεδνκέλν) 3) WX WY (IR2:επαύμεζε 1 κε W) 4) WX Z (IR3: κεηάβαζε 2-3) 22-12
Οξηζκνί Σπλαξηεζηαθώλ Δμαξηήζεσλ (Κιεηζηόηεηεο F + θαη X + ) F + : Κιεηζηόηεηα πλόινπ FD F: To ζύλνιν όισλ ησλ ζπλαξηεζηαθώλ εμαξηήζεσλ πνπ πξνζδηνξίδεηαη από ην F (κε επαλαιεπηηθή εθαξκνγή ησλ θαλόλσλ IR1-IR6) π.ρ., Δάλ F={Α Β, Β C} ηόηε F + ={A B, B C, A C} X + : Κιεηζηόηεηα Γλσξίζκαηνο X: Τν ζύλνιν όισλ ησλ γλσξηζκάησλ πνπ εμαξηώληαη ζπλαξηεζηαθά από ην X π.ρ., Δάλ F={Α Β, Β C} ηόηε A + ={A,B,C}, B + ={B,C} θαη B + ={C} Αιγόξηζκνο Υπνινγηζκνύ ηνπ X + : 1) Χ + := X 2) repeat 3) old_x + := X + 4) for each FD Y Z in F do 5) if Y X + then X + :=X + Z 6) until (old_x + == X + ) Step-by-Step Execution: 1) A + :={A} 3) old_a + :={A} 4-5) A A +, so A + :={A,B} 4-5) Β A +, so A + :={A,B,C} 6) Now A + ==old_a + so quit X + είλαη ρξήζηκν εάλ ζέινπκε λα βξνύκε θαηά πόζν κηα FD Χ Υ αλήθεη ζε θάπνην F + (π.ρ., βξεο εάλ ην A C είλαη ζην F + A + ={A,B,C}, αξα είλαη! Δάλ ην Χ + πεξηέρεη όια ηα γλσξίζκαηα κηαο ζρέζεο ηόηε ην Χ είλαη Candidate 22-13 Key.
Οξηζκνί Σπλαξηεζηαθώλ Δμαξηήζεσλ (Κιεηζηόηεηεο F + θαη X + ) Παξάδεηγκα Υπνινγηζκνύ ηνπ X + F= { SSN Ename, Pnumber {Pname, Plocation} {Ssn, Pnumber} Hours } 1) {Ssn} + ={Ssn, Ename} 2) {Pnumber} + = {Pnumber, Pname, Plocation} 3) {Ssn, Pnumber} + = {Ssn, Pnumber, Ename, Pname, Plocation, Hours} To {Ssn, Pnumber} είλαη candidate key! 22-14
Οξηζκνί Σπλαξηεζηαθώλ Δμαξηήζεσλ (Ιζνδπλακία πλόινπ FDs F + =G + ) Κάιπςε FDs (Cover): Έλα ζύλνιν FD F, θαιύπηεη έλα άιιν ζύλνιν G εάλ G + F + Δλαιιαθηηθά, ην F θαιύπηεη ην G εάλ: Κάζε FD ηνπ G κπνξεί λα ζπκπεξαζεί από ην F. π.ρ., {SSN} + ={SSN, NumGrade, LetterGrade} To FD SSN LetterGrade θαιύπηεηαη από ην SSN all Ιζνδπλακία FDs (Equivalence): Γπν ζύλνια FDs F θαη G είλαη ηζνδύλακα εάλ ην F + =G + Δλαιιαθηηθά, ηα F θαη G είλαη ηζνδύλακα εάλ: ΚΆΘΔ FD ηνπ F κπνξεί λα ζπκπεξαζεί από ην G θαη ΚΆΘΔ FD ηνπ G κπνξεί λα ζπκπεξαζεί από ην F Σπλεπώο, ηα F θαη G είλαη ηζνδύλακα εάλ: Τν F θαιύπηεη ην G θαη ην G θαιύπηεη ην F. F + G + 22-15
Παξάδεηγκα Κάιπςεο αο δίλεηαη ην ζύλνιν πλαξηεζηαθώλ Δμαξηήζεσλ F. Βξείηε εάλ ηα AB E και D C καλύπηονηαι από ηο F X X + F: A D AB C D E AC B Καιύπηεηαη ην AB E από ην F; ΝΑΙ, επειδή ηο Ε {ΑΒ} +. Καιύπηεηαη ην D C από ην F; ΟΧΙ, επειδή ηο C D +. A {A, D, E} AB {A, B, C, D, E} B {B} D {D, E} (Δπνκέλσο AB είλαη θιεηδί) Σςμπέπαζμα: Τν X + καο επηηξέπεη λα βξίζθνπκε εάλ ε ζπλαξηεζηαθή εμάξηεζε ηεο κνξθήο X Y θαιύπηεηαη από ην ζύλνιν FDs F. 22-16
Οξηζκνί Σπλαξηεζηαθώλ Δμαξηήζεσλ (Απιό Παξάδεηγκα Ιζνδπλακίαο) Απνδείμηε όηη ηα ζύλνια FDs F θαη G είλαη ηζνδύλακα F= { SSN Ename, Pnumber {Pname, Plocation}, {Ssn, Pnumber} Hours } G= { SSN Ename, Pnumber {Pname, Plocation}, {Ssn, Pnumber} Ename,Pname, Plocation, Hours } Ππέπει να αποδείξοςμε ηιρ ακόλοςθερ δςο πεπιπηώζειρ: a) Κάθε FD ηος G καλύπηεηαι από ηο F: Τα πξώηα δπν FDs ησλ ζπλόισλ είλαη ηα ίδηα. Γηα ην ηξίην FD, ππνινγίδνπκε ην {Ssn, Pnumber}+ (ζηo F) ην νπνίν είλαη {Ssn, Pnumber, Ename, Pname, Plocation, Hours} Τν {Ssn, Pnumber}+ (ηνπ F) θαιύπηεη ηνλ ηξίην θαλόλα ηνπ G εθόζνλ πεξηέρεη όια ηα γλσξίζκαηα ζην δεμί ηνπ κέινο (δει., Ename, Pname, Plocation, Hours) β) Κάθε FD ηος F καλύπηεηαι από ηο G: Αληίζηνηρα κε ην (a) βξίζθνπκε όηη ν ηξίηνο θαλόλαο ηνπ F θαιύπηεηαη από ην {Ssn, Pnumber} + ηνπ G. 22-17 Δθόζνλ ην G EPL342: θαιύπηεη Databases ην F - Demetris θαη αληίζηξνθα, Zeinalipour (University ηα FDs of είλαη Cyprus) ηζνδύλακα.
Οξηζκνί Σπλαξηεζηαθώλ Δμαξηήζεσλ (Διάρηζηε Κάιπςε FDs F min ) Ζ Διάρηζηε Κάιπςε F min (Minimal Cover) ελόο ζπλόινπ εμαξηήζεσλ F, είλαη iii) έλαο Διάρηζηνο αξηζκόο FDs, i) ζε Καλνληθή Μνξθή, θαη ii) Απινπζηεπκέλε Μνξθή I. Καλνληθή Μνξθή : Κάζε εμάξηεζε X {A 1,A 2,,A n } κεηαηξέπεηαη κε IR4 (δηάζπαζε) ζε X A 1,X A 2,, X A n π.σ., SSN {Name, Age} ζε SSN Name και SSN Age. II. Απινπζηεπκέλε Μνξθή: Τν αξηζηεξό κέινο θάζε δπλαηήο εμάξηεζεο {Β 1,Β 2, Β n } X κεηαηξέπεηαη ζε απινύζηεξε κνξθή, π.ρ., {B 1,B 2,,B n-1 } Χ ηζνδύλακε κε ηελ αξρηθή π.σ., {SSN, Name} Age ζε SSN Age III. Διάρηζηνο Αξηζκόο: Οη πεξηηηέο εμαξηήζεηο εμαιείθνληαη. Γειαδή ε X A εμαιείθεηαη εάλ {F {X A}} + = F + O Αιγόξηζκνο 10.2 (Minimal Cover) ζην βηβιίν, εθαξκόδεη ηα πην πάλσ ηξία βήκαηα ζε έλα ζύλνιν F γηα πξνζδηνξηζκό ηνπ F min 22-18
Διάρηζηε Κάιπςε FDs (Παξάδεηγκα) Παξάδεηγκα: Βξείηε ηελ ειάρηζηε θάιπςε ηνπ ζπλόινπ Σπλαξηεζηαθώλ Δμαξηήζεσλ E : {B A, D A, AB D}; Λύζε Βήκα Ι (Καλνληθή Μνξθή): Όιεο νη FD είλαη ήδε ζε θαλνληθή κνξθή X A 1, X A 1,, X A n άξα δελ θάλνπκε θάηη επηπιένλ. Βήκα ΙΙ (Απινπζηεπκέλε Μνξθή): Ζ κόλε FD πνπ έρεη πάλσ από 1 γλώξηζκα ζην αξηζηεξό κέινο είλαη ε AB D. Δπνκέλσο πξέπεη λα δείμνπκε όηη ην E είλαη ηζνδύλακν είηε κε ην E : {B A, D A, B D} ή E : {B A, D A, A D}. Δκείο ζα ην δείμνπκε όηη E=E. 1. Μπνξεί από ην Β D λα πξνθύςεη ην AB D (ην θαιύπηεη); Απηό ηζρύεη ηεηξηκκέλα ιόγσ ηεο IR2 (επαπμεηηθήο) 2. Μπνξεί από ην ΑΒ D λα πξνθύςεη ην B D (ην θαιύπηεη); Mε βάζε ην E={B A, D A, AB D}, πξνθύπηεη όηη Β + ={B, A, D} ην νπνίν ζεκαίλεη όηη ην B D θαιύπηεηαη από ην Β + θαη θαη επέθηαζε από ην Δ. 22-19
Λύζε (ζπλέρεηα) Διάρηζηε Κάιπςε FDs (Παξάδεηγκα) Βήκα II: Δ : {B A, D A, B D} Βήκα ΙΙΙ (Διάρηζηνο Αξηζκόο): Τώξα ζα επηρεηξήζνπκε λα βξνύκε ηηο πεξηηηέο (redundant) FDs (απηέο πνπ κπνξνύλ λα θύγνπλ ρσξίο λα αιιάμεη ε θιεηζηόηεηα E + ) Α) Γιαγπαθή ηος B A από ηο Δ : To B A μποπεί να εξασθεί από ηα B D θαη D A (κέζσ κεηαβαηηθήο) ζςνεπώρ είναι πεπιηηό. Δλδηάκεζν Απνηέιεζκα: Δ : {D A, B D} B) Γιαγπαθή ηος D A από ηο Δ : To D A δεν μποπεί να εξασθεί από ηο B D, άπα δεν μποπεί να διαγπάθει Γ) Γιαγπαθή ηος Β D από ηο Δ : To B D δεν μποπεί να εξασθεί από ηο D A, άπα δεν μποπεί να διαγπάθει Δπομένυρ η ελάσιζηη κάλςτη ηος Δ είναι {D A, B D} 22-20
Οξηζκνί Σπλαξηεζηαθώλ Δμαξηήζεσλ (Διάρηζην ύλνιν FDs) Κάζε ζύλνιν από FDs έρεη έλα ή πεξηζζόηεξα ειάρηζηα ζύλνια (αλάινγα κε πνηα ζεηξά επηιέγνπκε λα θάλνπκε ηελ εθηέιεζε) Π.ρ., F MIN (E ): {D A, B D} θαη F MIN (E ): {B A, D A, A D} ζην πξνεγνύκελν παξάδεηγκα. Σεκεηώζηε, όηη ηα ζύλνια απηά έρνπλ δηαθνξεηηθό κέγεζνο ιόγσ ηεο δηαθνξεηηθήο ζεηξάο απινπνίεζεο πνπ ρξεζηκνπνηήζεθε. Δπνκέλσο, έλα ζύλνιν νλνκάδεηαη Διάρηζην ΟΦΗ επεηδή πεξηέρεη ηνλ κηθξόηεξν αξηζκό από FDs αιιά επεηδή ΓΔΝ κπνξεί λα απινπνηεζεί πεξαηηέξσ. 22-21