Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Βάσεις Δεδομένων Κανονικοποιήσεις. Σχεδιασμός Σχεσιακού Σχήματος Ένα σχεσιακό σχήμα για να είναι «καλά σχεδιασμένο» πρέπει να πληρούνται κάποιες προϋποθέσεις.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Βάσεις Δεδομένων Κανονικοποιήσεις. Σχεδιασμός Σχεσιακού Σχήματος Ένα σχεσιακό σχήμα για να είναι «καλά σχεδιασμένο» πρέπει να πληρούνται κάποιες προϋποθέσεις."— Μεταγράφημα παρουσίασης:

1 Βάσεις Δεδομένων Κανονικοποιήσεις

2 Σχεδιασμός Σχεσιακού Σχήματος Ένα σχεσιακό σχήμα για να είναι «καλά σχεδιασμένο» πρέπει να πληρούνται κάποιες προϋποθέσεις. Να μην επαναλαμβάνεται πληροφορία (όποτε είναι δυνατόν). Να αναπαρίστανται όλες οι πληροφορίες που χρειάζονται. Να διευκολύνονται οι έλεγχοι ακεραιότητας (κατά το δυνατόν)

3 Παράδειγμα Έστω το ακόλουθο σχήμα για τη σχέση Δανεισμός: Δανεισμός (Κωδ_Υποκ, Πόλη_Υποκ, Αξία_Υποκ, Πελάτης, Κωδ_Δανείου, Ποσό_Δανείου). Προβλήματα Σχήματος: Επανάληψη Πληροφορίας. Για κάθε πελάτη τα Πόλη_Υποκ, Αξία_Υποκ, επαναλαμβάνονται. Δεν μπορεί να αναπαρασταθεί ένα υποκατάστημα που δεν έχει δώσει δάνεια (πχ. καινούργιο). Μερικώς επιλήσιμο με χρήση NULL τιμών.

4 Παράδειγμα (Συν.) Δύσκολοι έλεγχοι ακεραιότητας πχ., για κάθε καινούργια καταχώρηση πελάτη, θα πρέπει να ελέγχεται αν η αξία του υποκαταστήματος συμφωνεί με τις προηγούμενες τιμές που έχουν καταχωρηθεί. Τρόπος Αποφυγής: Αποσύνθεση της σχέσης Δανεισμός σε: Υποκατάστημα (Κωδ_Υποκ, Πόλη_Υποκ, Αξία_Υποκ) Δάνειο (Πελάτης, Κωδ_Δανείου, Ποσό_Δανείου, Κωδ_Υποκ)

5 Αποσυνθέσεις Μία αποσύνθεση για να είναι «σωστή» θα πρέπει να ισχύουν τα ακόλουθα: - Όλα τα γνωρίσματα του αρχικού σχήματος R πρέπει να εμφανίζονται στην αποσύνθεση (R 1, R 2 ). - Όλοι οι περιορισμοί του αρχικού σχήματος να εμφανίζονται. - Συνένωση χωρίς απώλεια. Για κάθε σχέση r στο σχήμα R θα πρέπει να ισχύει: r =  R1 (r)  R2 (r)

6 Αποσυνθέσεις Η ιδιότητα της συνένωσης χωρίς απώλεια μας λέει ότι μπορούμε να συνθέσουμε τις αρχικές πλειάδες ενός πίνακα (και μόνο αυτές) συνδυάζοντας τους υποπίνακες στους οποίους τον αποσυνθέσαμε. Αν μία αποσύνθεση δεν έχει αυτή την ιδιότητα χάνεται πληροφορία.

7 Αποσυνθέσεις Παράδειγμα αποσύνθεσης που έχει την ιδιότητα της συνένωσης χωρίς απώλεια είναι η αρχική αποσύνθεση της σχέσης Δανεισμός σε (Υποκατάστημα, Δάνειο). Αν παραλείπαμε τον Κωδ_Υποκ στη σχέση Δάνειο: Υποκατάστημα (Κωδ_Υποκ, Πόλη_Υποκ, Αξία_Υποκ) Δάνειο (Πελάτης, Κωδ_Δανείου, Ποσό_Δανείου) Η αποσύνθεση δε θα πληρούσε την ιδιότητα της συνένωσης χωρίς απώλεια. Ακολουθεί παράδειγμα.

8 Αποσυνθέσεις Δανεισμός Υποκατάστημα Δάνειο Κωδ_ΥποκΠόλη_ΥποκΑξία_ΥποκΠελάτηςΚωδ_ΔανείουΠοσό_Δανείου Α15Λαμία1,000,000Χ. Χατζής100-34-567-Β20,000 Α34Αθήνα25,000,000Δ. Φωτίου234-43-199-Α10,000 Κωδ_ΥποκΠόλη_ΥποκΑξία_Υποκ Α15Λαμία1,000,000 Α34Αθήνα25,000,000 ΠελάτηςΚωδ_ΔανείουΠοσό_Δανείου Χ. Χατζής100-34-567-Β20,000 Δ. Φωτίου234-43-199-Α10,000

9 Αποσυνθέσεις Υποκατάστημα Δάνειο Κωδ_ΥποκΠόλη_ΥποκΑξία_ΥποκΠελάτηςΚωδ_ΔανείουΠοσό_Δανείου Α15Λαμία1,000,000Χ. Χατζής100-34-567-Β20,000 Α15Λαμία1,000,000Δ. Φωτίου234-43-199-Α10,000 Α34Αθήνα25,000,000Χ. Χατζής100-34-567-Β20,000 Α34Αθήνα25,000,000Δ. Φωτίου234-43-199-Α10,000

10 Σκοπός Να βρούμε έναν τρόπο να αποφασίζουμε πότε ένας πίνακας είναι «καλώς ορισμένος» και πότε όχι. Σε περίπτωση που κάποιος πίνακας R δεν είναι καλώς ορισμένος να έχουμε μέθοδο που τον διασπά σε υποπίνακες (R 1, R 2,…, R n ) έτσι ώστε: - Κάθε υποπίνακας να είναι καλώς ορισμένος. - Να πληρείται η ιδιότητα της συνένωσης χωρίς απώλεια.

11 Συναρτησειακές Εξαρτήσεις Έστω R ένα σχεσιακό σχήμα τέτοιο ώστε:   R και   R Η συναρτησιακή εξάρτηση    ισχύει στο R αν και μόνο αν για κάθε επιτρεπόμενη σχέση r(R) όποτε δύο πλειάδες του r συμφωνούν στο  τότε θα συμφωνούν και στο . Παράδειγμα. Έστω r(A,B). Για την ακόλουθη περίσταση του r : ισχύει Β  Α αλλά όχι Α  Β. 14 1 5 37

12 Κλειδιά Κ είναι υπερκλειδί του σχεσιακού σχήματος R αν και μόνο αν Κ  R. K είναι υποψήφιο κλειδί του R αν και μόνο αν: Κ  R και δεν υπάρχει  K, τέτοιο ώστε   R. Οι συναρτησιακές εξαρτήσεις μασ επιτρέπουν να εκφράσουμε περιορισμούς που δεν μπορούν να εκφραστούν από τα υπερκλειδιά.

13 Κλειδιά Παράδειγμα: Έστω το ακόλουθο σχήμα Υπάλληλος (Κωδ_Υπαλ, Όνομα, Επμο, Κλίμακα, Μισθός) Οι ακόλουθες εξαρτήσεις ισχύουν : Κωδ_Υπαλ  Όνομα, Κωδ_Υπαλ  Επμο, Κωδ_Υπαλ  Κλίμακα, Κωδ_Υπαλ  Μισθός Ισχύει όμως και Κλίμακα  Μισθός (αφού υπάλληλοι που ανήκουν στην ίδια μισθολογική κλίμακα θα έχουν και τον ίδιο μισθό.

14 Χρησιμότητα Εξαρτήσεων Θα χρησιμοποιήσουμε τις συναρτησιακές εξαρτήσεις για να: Διαπιστώνουμε αν η μία σχέση r είναι επιτρεπόμενη δοθέντως ενός συνόλου εξαρτήσεων F. Σε αυτή την περίπτωση θα λέμε πως η r ικανοποιεί την F. Να θέτουμε περιορισμούς. Να μπορούμε να βρίσκουμε υπερκλειδιά.

15 Χρησιμότητα Εξαρτήσεων Προσοχή: - Αν και μπορεί μία εξάρτηση να ισχύει για κάποια περίσταση ενός σχήματος, αυτό δε σημαίνει ότι ισχύει για όλες τις επιτρεπόμενες περιστάσεις. Στο σχήμα Υπάλληλος μπορεί για κάποιες περιστάσεις να ισχύει Επμο  Μισθός, όχι όμως και στη γενική περίπτωση όπου μπορεί να υπάρχουν υπάλληλοι με ίδιο Επμο.

16 Τετριμμένες Εξαρτήσεις Η συναρτησιακή εξάρτηση    είναι τετριμμένη αν   . Παραδείγματα: Όνομα, Επμο  Επμο Μισθός  Μισθός

17 Σύνολα Εξαρτήσεων Έστω F ένα σύνολο συναρτησιακών εξαρτήσεων. Πέραν των εξαρτήσεων του F υπάρχουν και λογικά παραγόμενες εξαρτήσεις από το F. Παράδειγμα: Έστω F={A  B, B  C}, τότε προκύπτει και η A  C Θα συμβολίζουμε με F + (closure του F) το σύνολο όλων των λογικά παραγόμενων από το F εξαρτήσεων.

18 Ιδιότητες Εξαρτήσεων 3 ιδιότητες (αξιώματα του Armstrong) Ανακλαστική: Αν   , τότε    Αυξήσεως: Αν   , τότε      Προσεταιριστική: Αν    και   , τότε    Με τις παραπάνω ιδιότητες μπορεί να βρεθούν ΟΛΕΣ οι παραγόμενες εξαρτήσεις κάποιου συνόλου F και ΜΟΝΟ αυτές.

19 Παράδειγμα Δίνεται R = (A, B, C, G, H, I) F = { A  B A  C CG  H CG  I B  H} Μερικά μέλη του F +. Α  H : Προκύπτει εφαρμόζοντας την προσεταιριστικότητα για A  B και B  H.

20 Παράδειγμα AG  I : Από A  C εφαρμόζοντας την ιδιότητα της αυξήσεως παίρνω AG  CG. Εφαρμόζωντας προσεταιριστικότητα με το CG  I προκύπτει η AG  I. CG  HI (Ιδιότητα Ένωσης): CG  H (αύξηση)   ( CG)CG  CGH δηλ. CG  CGH (1) Από CG  Ι (αύξηση)  CGΗ  HΙ (2) Από (1) και (2) εφαρμόζωντας προσεταιριστικότητα παίρνουμε το αποτέλεσμα.

21 Αλγόριθμος Εύρεσης F + F + = F repeat for κάθε εξάρτηση f του F + εφάρμοσε ανκλαστική και αυξητική ιδιότητα πρόσθεσε τις παραγόμενες εξαρτήσεις στο F + for κάθε ζευγάρι εξαρτήσεων f 1, f 2 που ανήκει στο F + if μπορεί να εφαρμοστεί προσεταιριστικότητα then πρόσθεσε την παραγόμενη εξάρτηση στο F + until F + δεν αλλάζει περαιτέρω

22 Συναρτησιακές Εξαρτήσεις Μπορούμε να κάνουμε πιο εύκολο τον υπολογισμό του F + χρησιμοποιώντας τους ακόλουθους κανόνες: Ένωση: Αν    και   , τότε     holds (union) Διάσπαση: Αν    , τότε    και    (decomposition) Ψευδοπροσεταιριστική: Αν    και    , τότε     (pseudotransitivity) Η ισχύ των κανόνων αυτών μπορεί να δειχτεί από τα αξιώματα του Armstrong

23 Συναρτησιακές Εξαρτήσεις Έστω  ένα σύνολο γνωρισμάτων. Ορίζουμε σαν  + το σύνολο των γνωρισμάτων που εξαρτώνται συναρτησιακά από το . Αλγόριθμος υπολογισμού  + result :=  ; while (result αλλάζει) do for κάθε    που ανήκει στο F do if   result then result := result  

24 Παράδειγμα R = (A, B, C, G, H, I) F = {A  B A  C CG  H CG  I B  H} (AG) + 1.result = AG 2.result = ABCG(A  C και A  B)

25 Παράδειγμα 3.result = ABCGH(CG  H και CG  AGBC) 4.result = ABCGHI(CG  I και CG  AGBCH) Είναι το AG υποψήφιο κλειδί? 1. Είναι το AG υπερκλειδί? 1. Ισχύει AG  R? 2. Υπάρχει υποσύνολο του AG που να είναι υπερκλειδί? 1. Ισχύει A  R? 2. Ισχύει G  R?

26 Συναρτησιακές Εξαρτήσεις Ο αλγόριθμος υπολογισμού του  + χρησιμεύει στα ακόλουθα: - Για να επαληθεύσουμε αν το  είναι υπερκλειδί. Στην περίπτωση αυτή υπολογίζουμε το  + και κοιτάζουμε αν περιέχονται όλα τα γνωρίσματα. - Για να επαληθεύουμε αν μία συναρτησιακή εξάρτηση   ισχύει (ή αλλιώς αν ανήκει στο F + ). Υπολογίζουμε το  + και κοιτάμε αν    +.

27 Συναρτησιακές Εξαρτήσεις - Για να υπολογίζουμε το F +. Για κάθε   R, βρίσκουμε το  +, και για κάθε S   +, προσθέτουμε τη συναρτησιακή εξάρτηση   S στο αποτέλεσμα.

28 Κανονική Κάλυψη του F Κανονική κάλυψη συνόλου συναρτησιακών εξαρτήσεων F: Το μικρότερο σετ εξαρτήσεων του F από όπου μπορεί να προκύψει όλο το F. Παραδείγματα: -Στο F={A  B, B  C, A  C} η A  C πλεονάζει. -Στο F={A  B, B  C, A  CD} η A  CD μπορεί να απλοποιηθεί στην A  D. Στην περίπτωση αυτή θα λέμε ότι το γνώρισμα C είναι πλεονάζον στην A  CD.

29 Κανονική Κάλυψη του F -Στο F={A  B, B  C, AC  D} η AC  D μπορεί να απλοποιηθεί στην A  D. Ομοίως το γνώρισμα C είναι πλεονάζον στην AC  D. Κανονική κάλυψη του F είναι ένα σύνολο συναρτησιακών εξαρτήσεων F c τέτοιο ώστε: -To F μπορεί να παράγει το F c και αντίστροφα. -Δεν υπάρχει πλεονάζον γνώρισμα σε καμία συναρτησιακή εξάρτηση του F c. -Τα αριστερά μέρη (ορίζουσες) των εξαρτήσεων του F c διαφέρουν μεταξύ τους.

30 Κανονική Κάλυψη του F Αλγόριθμος Υπολογισμού F c repeat Αντικατέστησε συν. εξαρτήσεις του F της μορφής  1   1 και  1   2 με  1   1  2 (κανόνας ένωσης). Βρες μια συν. εξάρτηση    που έχει πλεονάζον γνώρισμα είται στο  είται στο . Σβήσε πλεονάζοντα γνωρίσματα από το   . until F does not change

31 Πλεονάζοντα Γνωρίσματα Έστω    συναρτησιακή εξάρτηση που ανήκει στο F. Το γνώρισμα Α είναι πλεονάζον στο  αν A   και το F παράγει το (F – {    })  {(  – A)   }. Παράδειγμα: Έστω F = {A  C, AB  C } και θέλουμε να δούμε αν το Β είναι πλεονάζον στην AB  C Σύμφωνα με τον ορισμό θα έπρεπε το F να παράγει το: (F – {AB  C})  {(ΑΒ – Β)  C}={A  C}  {A  C}= ={A  C} που προφανώς ισχύει.

32 Πλεονάζοντα Γνωρίσματα Το γνώρισμα Α είναι πλεονάζον στο  αν A   και το (F - {    })  {   (  - Α)} παράγει το F. Παράδειγμα: Έστω F = {A  C, AB  CD } και θέλουμε να δούμε αν το C είναι πλεονάζον στην AB  CD Θα πρέπει το {A  C, AB  D} να παράγει το F που ισχύει αφού A  C  AΒ  ΑΒC (1) AB  D  ABC  CD (2) (1,2 με προσεταιριστική δίνει ΑΒ  CD ) Γενικότερα αν    και γ  δ τότε  γ   δ

33 Πλεονάζοντα Γνωρίσματα Για να ελέγξουμε αν το A   είναι πλεονάζον στο  : Υπολογίζουμε (a – {A}) + και κοιτάμε αν περιέχει το Α. Αν ναι το Α είναι πλεονάζον. Για να ελέγξουμε αν το A   είναι πλεονάζον στο  : Υπολογίζουμε το a + χρησιμοποιώντας τις εξαρτήσεις του (F – {    })  {   (  – A)}, Κοιτάμε αν περιέχει το Α. Αν ναι το Α είναι πλεονάζον

34 Κανονική Κάλυψη του F Παράδειγμα R = (A, B, C) F = {A  BC B  C A  B AB  C} Αντικατέστησε A  BC και A  B με A  BC  Τo F c γίνεται {A  BC, B  C, AB  C}

35 Κανονική Κάλυψη του F Το A είναι πλεονάζον στο AB  C εξαιτίας της B  C.  Τo F c γίνεται {A  BC, B  C} Το C είναι πλεονάζον στο A  BC αφού μπορεί να παραχθεί από A  B και B  C. Το τελικό F c είναι: A  B B  C

36 Κανονική Κάλυψη του F Παράδειγμα 2 R = (A, B, C, D, E) F = {A  B AB  C D  AC} {A  B, AB  C, D  AC}  {A  B, A  C, D  AC}  {A  BC, D  A}

37 Κανονικοποιήσεις Από τον αρχικό σχεδιασμό του σχήματος της βάσης, βάζοντας κάποιους περιορισμούς και διασπώντας καταλληλα τους πίνακες ώστε οι περιορισμοί να ισχύουν φτάνουμε σε σχήμα που πληρεί τα ακόλουθα: Δεν επαναλαμβάνεται πληροφορία. Αναπαρίστανται όλες οι πληροφορίες που χρειάζονται. Διευκολύνονται οι έλεγχοι ακεραιότητας

38 Κανονικές Μορφές Για να χαρακτηρίσουμε τη μορφή που έχει μία σχέση εισάγεται η έννοια των κανονικών μορφών. Θα ασχοληθούμε με τις: 1 NF (Normal Form) 2 NF BCNF (Boyce-Codd NF) 3NF 4NF

39 1NF Μία σχέση είναι 1NF αν όλες οι τιμές των γνωρισμάτων της είναι ατομικές. Εναλλακτικά: αν τα πεδία ορισμού δεν είναι σύνολα συνόλων. Παράδειγμα: (AM, Όνομα, Επμο, Τηλνα) 10, Χρήστος, Δημητρόπουλος, {2231011111, 6947888888}

40 2NF Μία σχέση είναι 2NF αν δεν υπάρχει μερική εξάρτηση μεταξύ γνωρίσματος που δεν ανήκει σε υποψήφιο κλειδί από υποψήφιο κλειδί. Με άλλα λόγια έστω:  K,   R-K Έχω μερική εξάρτηση του β από το Κ αν υπάρχει η συν. εξ. α  β

41 2NF - Παράδειγμα Έστω R = (A, B, C, D, E, F, G) F = {AB  CD, A  CEF, AD  CEG C  DG D  G} Πρώτα βρίσκω την κανονική κάλυψη

42 2NF - Παράδειγμα F = {AB  CD, A  CEF, AD  CEG C  DG D  G} F = {AB  C, A  CEF, AD  CEG C  DG D  G} F = {A  CEF, AD  CEG C  DG D  G} F = {A  CEF, AD  G C  DG D  G} F = {A  CEF, D  G C  DG} Fc = {A  CEF, D  G C  D}

43 2NF - Παράδειγμα Στη συνέχεια βρίσκω το/τα υποψήφια κλειδιά Fc = {A  CEF, D  G C  D} Ελέγχω πρώτα το ΑΒ + ΑΒ + = R Άρα έχω ένα υποψήφιο κλειδί το ΑΒ. Η σχέση είναι σε 2NF καθώς τα CEF που δεν ανήκουν σε υποψήφιο κλειδί εξαρτώνται μερικώς από το ΑΒ.

44 BCNF Μία σχέση R είναι BCNF αν για κάθε σ. εξ. α  β του F + ισχύει ένα από τα ακόλουθα: α  β είναι τετριμμένη α είναι υπερκλειδί Για να ελέγξω αν μία σχέση R είναι σε BCNF μπορώ εναλλακτικά να υπολογίσω το Fc και να ελέγξω αν για όλες τις σ. εξ. α  β του Fc ισχύει ότι α είναι υποψήφιο κλειδί.

45 BCNF-Παράδειγμα Έστω R = (A, B, C) F = {A  Β, Β  C} Κ={Α} Η δεύτερη σ. εξ. δεν πληρεί τη BCNF. Διάσπαση: R1(A, B) R2(B,C) F1c={A  Β}, F2c={B  C} Lossless join: R1∩R2  R2 R1 και R2 είναι σε BCNF Διατηρούνται οι σ. εξ.

46 BCNF-Παράδειγμα Αν και αρκεί να ελέγξουμε το F ή το Fc για να αποφασίσουμε αν μία σχέση είναι σε BCNF δε συμβαίνει το ίδιο όταν ελέγχουμε για διάσπαση του R (πρέπει να ελέγχουμε το F+) Παράδειγμα Έστω R = (A, B, C, D) F = {A  Β, Β  C} Έστω η lossless join διάσπαση R1(A, B) και R2 (A, C, D) R1 σε BCNF R2 ???

47 Αλγόριθμος BCNF result := {R}; done := false; compute F + ; while (not done) do if (there is a schema R i in result that is not in BCNF) then begin let     be a nontrivial FD that violates BCNF result := (result – R i )  (R i –  )  ( ,  ); end else done := true;

48 Αλγόριθμος BCNF Παράδειγμα Έστω R = (A, B, C, D, E, F, G) F = {AB  CD, A  CEF, AD  CEG C  DG D  G} Βρίσκω Fc και υποψήφια κλειδιά Fc = {A  CEF, D  G C  D} Κ=ΑΒ

49 Αλγόριθμος BCNF R = (A, B, C, D, E, F, G) Κ=ΑΒ Fc = {A  CEF, D  G C  D} Ελέγχω μία προς μία τις σ. εξ. αν πληρούν την BCNF A  CEF δεν πληρεί, οπότε διασπώ R1(A, B, D, G) R2(A, C, E, F) F1c={Α  D, D  G} F2c={A  CEF} H R2 είναι BCNF η R1 όχι καθώς η σ. εξ. D  G δεν πληρεί την BCNF (K1=AB)

50 Αλγόριθμος BCNF Οπότε διασπούμε την R1 R3(A, B, D) R4(D, G) F1c={Α  D} F4c={D  G} H R4 είναι BCNF αλλά η R3 όχι. Η διάσπασή της δίνει: R5(A,B) R6(A,D) Που είναι BCNF. Επομένως η αρχική R διασπάται στους πίνακες R2, R4, R5, R6

51 Διατήρηση συν. εξ. Στο προηγούμενο παράδειγμα R = (A, B, C, D, E, F, G) Κ=ΑΒ Fc = {A  CEF, D  G C  D} Παρατηρήστε ότι μετά τη BCNF διάσπαση R2(A, C, E, F), R4(D, G), R5(A,B) R6(A,D) η συν. εξ. C  D δε διατηρείται σε καμία από τις σχέσεις που προέκυψαν.

52 Διατήρηση συν. εξ. Αυτό δημιουργεί πρόβλημα καθώς ο έλεγχός της δεν μπορεί να γίνει σε έναν πίνακα αλλά σε join πινάκων (R2 και R6 στο παράδειγμα). Ο αλγόριθμος της BCNF διάσπασης εγγυάται ότι ανεξάρτητα από την κανονική μορφή στην οποία βρίσκεται το αρχικό σχήμα θα καταλήξουμε σε σχήμα που πληρεί την BCNF. Δεν εγγυάται ότι οι συν. εξ. του αρχικού σχήματος θα διατηρηθούν και στο τελικό. Για αυτόν το λόγο εισάγουμε την 3ΝF.

53 3NF Μία σχέση R είναι 3NF αν για κάθε σ. εξ. α  β του F + ισχύει ένα από τα ακόλουθα: α  β είναι τετριμμένη α είναι υπερκλειδί Όλα τα πεδία του β-α ανήκουν σε κάποιο υποψήφιο κλειδί Ένα σχήμα που είναι BCNF είναι και 3NF. H 3NF εισάγει κάποιας μορφής πλεονασμό με στόχο τη διατήρηση των συν. εξ. Υπό μία έννοια, επιτρέπει να υπάρχει στο Fc πλέον των συν. εξ. που αφορούν το πρωτεύον κλειδί (BCNF) και οι συν. εξ. που ορίζουν εναλλακτικά κλειδιά.

54 Αλγόριθμος 3NF διάσπασης Let F c be a canonical cover for F; i := 0; for each    in F c do if none of R j, 1  j  i contains   then i := i + 1; R i :=   if none of R j, 1  j  i contains a candidate key for R then i := i + 1; R i := any candidate key for R; return (R 1, R 2,..., R i )

55 3NF- Παράδειγμα Έστω: R = (A, B, C, D, E, F, G) Κ=ΑΒ Fc = {A  CEF, D  G C  D} Το αρχικό R το διασπώ σε κάθε μία από τις συν. εξ. του Fc παίρνοντας τους εξής πίνακες: R1(A, C, E, F) R2(D, G) R3 (C, D) Εφόσον το μοναδικό υποψήφιο κλειδί δεν υπάρχει σε κάποιον από τους πίνακες που προέκυψαν το προσθέτω Τελική διάσπαση: R1(A, C, E, F) R2(D, G) R3 (C, D) R4(A, B)

56 Εξαρτήσεις πολλαπλών τιμών Έστω μία σχέση R και α, β σύνολα γνωρισμάτων του. Υπάρχει εξάρτηση πολλαπλών τιμών μεταξύ των α και β (α->->β) εάν για κάθε ζευγάρι πλειάδων που συμφωνεί στο α (έστω και ) ανταλλάσοντας τα αντίστοιχα κομμάτια του β οι πλειάδες που προκύπτουν ανήκουν κι αυτές στο R δηλ. και Η φυσική σημασία είναι ότι το για κάθε τιμή του α οι τιμές του β είναι ανεξάρτητες των γνωρισμάτων R-α-β. Αν α->->β τότε και α->β

57 4NF Μια σχέση R είναι σε 4NF αν για όλες τις εξ. πολλαπλών τιμών α->->β το α είναι υπερκλειδί. Παράδειγμα Έστω ότι έχω τη σχέση R (Μαγαζί, Pizza, Περιοχή) που λέει ότι το τάδε μαγαζί μπορεί να στείλει την τάδε pizza στην περιοχή τάδε. Υποθέτοντας ότι ένα μαγαζί στέλνει όλα τα είδη pizza που παράγει σε όλες τις περιοχές που στέλνει έχω: Μαγαζί->->Pizza Μαγαζί->->Περιοχή


Κατέβασμα ppt "Βάσεις Δεδομένων Κανονικοποιήσεις. Σχεδιασμός Σχεσιακού Σχήματος Ένα σχεσιακό σχήμα για να είναι «καλά σχεδιασμένο» πρέπει να πληρούνται κάποιες προϋποθέσεις."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google