Κανονικοποίηση, συναρτησιακές εξαρτήσεις Βάσεις Δεδομένων I Κανονικοποίηση, συναρτησιακές εξαρτήσεις ΥΠΕΥΘΥΝΟΣ: Θ. ΜΑΝΑΒΗΣ tmanavis@ist.edu.gr T Manavis
Υπερκλειδιά – Υποψήφια κλειδιά – Πρωτεύοντα κλειδιά 4/21/2017 Υπερκλειδιά – Υποψήφια κλειδιά – Πρωτεύοντα κλειδιά Ένα ΓΝΩΡΙΣΜΑ (ή σύνολο Γνωρισμάτων) ενός Τύπου Οντοτήτων / Συσχετίσεων για το οποίο κάθε οντότητα / συσχέτιση στο σύνολο πρέπει να έχει μοναδική τιμή (unique value(s) είναι ένα ΥΠΕΡΚΛΕΙΔΙ (superkey). Ενδεικτικά, ΑΦΜ του ΥΠΑΛΛΗΛΟΥ, ΟΝΟΜΑ και ΔΙΕΥΘΥΝΣΗ του ΥΠΑΛΛΗΛΟΥ, ΑΦΜ και ΟΝΟΜΑ, κλπ. Ένα ΥΠΟΨΗΦΙΟ ΚΛΕΙΔΙ (candidate key) είναι ένα ΕΛΑΧΙΣΤΟ (minimal) (δηλαδή με το μικρότερο αριθμό γνωρισμάτων) ΚΛΕΙΔΙ (δηλαδή, κανένα υποσύνολο των γνωρισμάτων του δεν μπορεί να είναι και αυτό κλειδί) Ενδεικτικά, ΑΦΜ είναι Υποψήφιο Κλειδί για τον ΥΠΑΛΛΗΛΟ, αλλά ο συνδυασμός {ΑΦΜ, ΟΝΟΜΑ} δεν είναι.
Υποψήφια Κλειδιά, χαρακτηριστικά Τα γνωρίσματα που συνιστούν ένα υποψήφιο κλειδί προσδιορίζουν με μοναδικό τρόπο κάθε πλειάδα (tuple) στη σχέση (πίνακα) Μία σχέση μπορεί να περιέχει ένα, δύο ή περισσότερα υποψήφια κλειδιά (π.χ. ΑΦΜ, Αριθμός Δελτίου Ταυτότητας) Συχνά, ένα υποψήφιο κλειδί αποτελείται από ένα μόνο γνώρισμα, γιά παράδειγμα αριθμός διαβατηρίου Παρόλα αυτά είναι σύνηθες για ένα υποψήφιο κλειδί να αποτελείται από δύο ή περισσότερα γνωρίσματα, για παράδειγμα, ο αριθμός μητρώου φοιτητή και ο κωδικός μαθήματος σε ένα πίνακα με τους βαθμούς των φοιτητών.
Επιλογή πρωτεύοντος κλειδιού Οποιοδήποτε από τα υποψήφια κλειδιά μπορεί να γίνει πρωτεύον κλειδί. Επιλέγουμε λοιπόν ως πρωτεύον κλειδί εκείνο το υποψήφιο κλειδί το οποίο είναι πιο λογικό από πρακτικής απόψεως.
ΣΥΝΑΡΤΗΣΙΑΚΕΣ ΕΞΑΡΤΗΣΕΙΣ (FD) 4/21/2017 ΣΥΝΑΡΤΗΣΙΑΚΕΣ ΕΞΑΡΤΗΣΕΙΣ (FD) Οι Συναρτησιακές Εξαρτήσεις (Functional Dependencies – FD) είναι το πιο κοινό τυπικό μέτρο του “καλού” για Σχεσιακούς Σχεδιασμούς Χρησιμοποιούνται για τον ορισμό των Κανονικών Μορφών για Σχέσεις Μια FD αποτελεί έναν περιορισμό για όλα τα στιγμιότυπα της Σχέσης r(R), αλλά είναι μια ιδιότητα των γνωρισμάτων στο Σχήμα R ΤΥΠΙΚΟΣ ΟΡΙΣΜΟΣ: Έστω X, Y σύνολα Γνωρισμάτων στο Σχήμα Σχέσης (relational schema) R. Λέμε ότι η Συναρτησιακή Εξάρτηση (FD): X ® Y ισχύει αν η X-τιμή καθορίζει μοναδικά την Y-τιμή.
ΣΥΝΑΡΤΗΣΙΑΚΕΣ ΕΞΑΡΤΗΣΕΙΣ, ορισμοί 4/21/2017 ΣΥΝΑΡΤΗΣΙΑΚΕΣ ΕΞΑΡΤΗΣΕΙΣ, ορισμοί ΕΝΑΛΛΑΚΤΙΚΟΣ ΟΡΙΣΜΟΣ: Έστω X, Y σύνολα Γνωρισμάτων στο Σχήμα Σχέσης R. Λέμε ότι η Συναρτησιακή Εξάρτηση (FD): X ® Y ισχύει αν, όποτε δύο πλειάδες σε ένα στιγμιότυπο r(R) έχουν την ίδια τιμή για το X, τότε πρέπει να έχουν την ίδια τιμή για το Y Δηλαδή: για οποιεσδήποτε δύο πλειάδες t1 , t2 σε κάθε σχέση r(R): Αν t1 [X] = t2 [X] τότε t1 [Y] = t2 [Y] Αν το Κ είναι Κλειδί στην R, τότε το K εξαρτά συναρτησιακά ΟΛΑ τα Γνωρίσματα στην R (μια και δεν μπορούμε ποτέ να έχουμε διακριτές πλειάδες t1, t2 με t1 [K] = t2 [K] )
Κριτήρια Σχεδιασμού (1) 4/21/2017 Κριτήρια Σχεδιασμού (1) Προσπάθεια για Εννοιολογική Καθαρότητα Ανεπίσημα (και στην ιδανική περίπτωση), κάθε πλειάδα πρέπει να παριστά ακριβώς μια οντότητα ή ένα στιγμιότυπο συσχέτισης (π.χ. μια πλειάδα/γραμμή στον πίνακα «ΦΟΙΤΗΤΗΣ» αφορά έναν συγκεκριμένο φοιτητή και μόνο Με άλλα λόγια, οι πλειάδες δεν πρέπει να είναι υπερφορτωμένες με εννοιολογική πληροφορία (δηλαδή, δεν πρέπει να παριστούν περισσότερα του ενός γεγονότα) Διακριτές οντότητες δεν πρέπει να αναμιγνύονται – ο μόνος τρόπος για ένδο-αναφορές μεταξύ Σχέσεων πρέπει να είναι το “εξωτερικό κλειδί” Προσπάθεια για αποδοτικότητα χώρου (αποφυγή πλεονασμού) Πλεόνασμα χώρου (redundancy) σημαίνει Χάσιμο χώρου Το Πλεόνασμα επιφέρει ανωμαλίες (ονομάζονται, ανωμαλίες ενημέρωσης - update anomalies)
Κριτήρια Σχεδιασμού (2) 4/21/2017 Κριτήρια Σχεδιασμού (2) Προσπάθεια για ακεραιότητα (αποφυγή ανωμαλιών ενημέρωσης) Η ακεραιότητα της Βάσης φθείρεται όταν συμβαίνουν ανωμαλίες εισαγωγής, διαγραφής και τροποποίησης Έχουμε ανωμαλία όταν μια ενημέρωση σε ένα σημείο επιφέρει έναν μη-προσδιορίσιμο αριθμό ενημερώσεων σε άλλα σημεία της Βάσης. Προσπάθεια για πληρότητα (αποφυγή NULL τιμών σε πλειάδες) Οι τιμές Null σημαίνουν “έλλειψη γνώσης” ή “μη-εφαρμοσιμότητα” και συχνά προκαλούν λάθη σε ερωτήσεις
Ιδιότητες των συναρτησιακών εξαρτήσεων (1) 4/21/2017 Ιδιότητες των συναρτησιακών εξαρτήσεων (1) Τετριμμένη Συναρτησιακή Εξάρτηση: Όποτε Y Í X, τότε X ® Y Παράδειγμα: SSN, Salary ® Salary Πλήρης Συναρτησιακή Εξάρτηση: Λέμε ότι ένα σύνολο γνωρισμάτων Y είναι πλήρως εξαρτώμενο συναρτησιακά από ένα σύνολο X, αν είναι συναρτησιακά εξαρτώμενο από το X και δεν είναι συναρτησιακά εξαρτώμενο από κάποιο υποσύνολο του X, Δηλαδή, το Y είναι πλήρως εξαρτώμενο συναρτησιακά από το X, αν X ® Y και δεν υπάρχει W έτσι ώστε W Ì X and W ® Y Παράδειγμα: SSN, PNumber ® HoursPW
Ιδιότητες των συναρτησιακών εξαρτήσεων (2) 4/21/2017 Ιδιότητες των συναρτησιακών εξαρτήσεων (2) Μερική Εξάρτηση: Σαν συνέπεια του παραπάνω ορισμού, λέμε ότι το Y είναι μερικώς εξαρτώμενο από το X, αν X ® Y και δεν υπάρχει κάποιο W έτσι ώστε W Ì X και W ® Y Παράδειγμα: SSN,Salary ® Address (αλλά και, SSN ® Address) Μεταβατική Εξάρτηση: Μια συναρτησιακή εξάρτηση X ® Z είναι μεταβατική αν μπορεί να προέλθει / απορρέει από δύο άλλες FD με μεταβατικότητα (X ® Y και Y ® Z ) Παράδειγμα: SSN ® DNumber και DNumber ® MgrSSN, συνεπάγονται: SSN ® MgrSSN Πρωτεύον Γνώρισμα: Ένα Γνώρισμα που είναι μέλος κάποιου υποψήφιου κλειδιού
4/21/2017 ΚΑΝΟΝΙΚΟΠΟΙΗΣΗ Η διαδικασία της Κανονικοποίησης ενσωματώνει την εννοιολογική έννοια της FD στα Σχήματα Σχέσεων. Υπάρχουν Κανονικές Μορφές Σχημάτων, όπου τα παρακάτω αποδεικνύονται: ΟΛΕΣ οι ΣΧΕΣΕΙΣ 1NF 2NF 3NF BCNF 4NF 5NF
Πρώτη κανονική μορφή (1NF) 4/21/2017 Πρώτη κανονική μορφή (1NF) Η 1ΚΝ θεωρείται τμήμα του τυπικού ορισμού μίας σχέσης και ορίζει ότι τα χαρακτηριστικά περιλαμβάνουν μόνο ατομικές (απλές, αδιαίρετες) τιμές. Κάθε εγγραφή πρέπει να είναι μοναδική. Αυτό το διασφαλίζει το πρωτεύον κλειδί. Δεν υπάρχουν σύνθετα χαρακτηριστικά Δεν υπάρχουν χαρακτηριστικά πολλαπλών τιμών.
Πρώτη κανονική μορφή (1NF), παράδειγμα 4/21/2017 Πρώτη κανονική μορφή (1NF), παράδειγμα Οι παρακάτω δύο σχέσεις ΔΕΝ είναι σε 1η κανονική μορφή:
Δεύτερη κανονική μορφή (2NF) 4/21/2017 Δεύτερη κανονική μορφή (2NF) Ένας πίνακας που είναι σε 1NF είναι και σε 2NF όταν ισχύει οποιοδήποτε από τα εξής: το πρωτεύον κλειδί αποτελείται από ένα και μόνο χαρακτηριστικό, ο πίνακας δεν έχει χαρακτηριστικά που δεν ανήκουν στο κλειδί (all-key relation), ή κάθε χαρακτηριστικό που δεν είναι κλειδί, είναι πλήρως συναρτησιακά εξαρτώμενο από το πρωτεύον κλειδί.
Δεύτερη κανονική μορφή (2NF), παράδειγμα 4/21/2017 Δεύτερη κανονική μορφή (2NF), παράδειγμα Εστω το επόμενο σχήμα σε 1NF: Η μετατροπή του παραπάνω σχήματος, δίνει τελικά το ακόλουθο σχήμα, το οποίο ΕΙΝΑΙ ΣΕ 2NF:
Τρίτη κανονική μορφή (3NF) 4/21/2017 Τρίτη κανονική μορφή (3NF) Ορισμός: Η σχέση R είναι σε 3NF αν είναι σε 2NF και κανένα μη-πρωτεύον γνώρισμα δεν είναι μεταβατικά εξαρτώμενο από ένα υποψήφιο κλειδί Παράδειγμα: Η Σχέση: ED(SSN, EName, Salary, DNumber, DName, Location, MgrSSN) είναι σε 2NF ΑΛΛΑ ΔΕΝ ΕΙΝΑΙ σε 3NF, διότι Το SSN είναι (το μόνο) υποψήφιο κλειδί και έχουμε: SSN ® Dnumber και DNumber ® MgrSSN (δηλαδή, το MgrSSN είναι μεταβατικά εξαρτώμενο από το SSN) (σημείωση: SSN είναι το social security number, κάτι σαν το ΑΦΜ, ενός εργαζόμενου, Dnumber είναι ο αριθμός του τμήματος που εργάζεται ο εργαζόμενος και MgrSSN είναι το SSN του manager που διοικεί ένα τμήμα)
Παραδείγματα Κανονικοποίησης 4/21/2017 Παραδείγματα Κανονικοποίησης Για περισσότερα παραδείγματα, δέστε το συνοδευτικό αρχείο: [Παραδείγματα Κανονικοποίησης.pdf]
4/21/2017 Αναφορές Για τη δημιουργία των παραπάνω σημειώσεων χρησιμοποίηθηκε και υλικό από: DeLAB, Aristotle University Department of Informatics TEI Κεντρικής Μακεδονίας, Τμήμα Μηχανικών Πληροφορικής Πανεπιστήμιο Ιωαννίνων, Τμήμα Μηχανικών Η/Υ και Πληροφορικής 18