Κανονικοποίηση Σχεδιασμός Βάσεων Δεδομένων Μαρία Χαλκίδη 1
Κανονικές Μορφές: Εισαγωγή Στόχος: Δεδομένου ενός σχήματος, ελέγχουμε εάν είναι «καλός» σχεδιασμός ή χρειάζεται περαιτέρω διάσπαση. Ξέρουμε ότι αν ένα σχήμα είναι σε κάποια Κανονική Μορφή δεν υπάρχουν συγκεκριμένα προβλήματα Με φθίνουσα σειρά (από την πιο περιοριστική στη λιγότερο περιοριστική) 4NF BCNF 3NF 2NF 1NF Βασίζεται σε λειτουργικές εξαρτήσεις (έχουν σχέση με την επανάληψη πληροφορίας) 2
1st Normal Form (1NF) Ένας τύπος σχέσης R βρίσκεται στην πρώτη κανονική μορφή (1NF) αν για κάθε χαρακτηριστικό A του R οι τιμές του πεδίου ορισμού του dom(a) είναι ατομικές (atomic). οι τιμές του πεδίου ορισμού κάθε χαρακτηριστικού του R δεν είναι σύνολα τιμών ή σύνθετες τιμές. Eνα σχήμα βάσης δεδομένων R βρίσκεται στην πρώτη κανονική μορφή αν κάθε τύπος σχέσης R του σχήματος R βρίσκεται στην πρώτη κανονική μορφή. 3
Παράδειγμα 1NF (1) CUSTOMER CCD 298 425 576 CNAMSURN Γεώργιος Βάσσης Νικόλαος Ζώης Ευαγγελία Παππά CADDRESS Ανδρούτσου 21, Πειραιάς, 18534 Βύρωνος 35, Αθήνα, 13412 Κολοκοτρώνη 145, Αθήνα, 18724 α) Ο πίνακας CUSTOMER που δεν βρίσκεται στην 1NF λόγω της ύπαρξης των χαρακτηριστικών CNAMSURN και CADDRESS που παίρνουν σύνθετες τιμές CUST_1NF CCD 298 425 576 CNAME CSURN CADDRESS CITY POST Γεώργιος Νικόλαος Ευαγγελία Βάσσης Ζώης Παππά Ανδρούτσου 21 Βύρωνος 35 Κολοκοτρώνη 145 Πειραιάς Αθήνα Αθήνα 18534 13412 18724 β) Ο πίνακας CUST_1NF που βρίσκεται στην 1NF και προέκυψε από κατάλληλη ανάλυση των χαρακτηριστικών CNAMSURN και CADDRESS του πίνακα CUSTOMER 4
Παράδειγμα 1NF (2) ORDERS ORD-NO ORD-DATE BOOK-NO 10870 10871 11800 20/7/2004 22/7/2004 30/9/2004 B5011, B4022 B4022, B3211, B6088 B0911 α) Ο πίνακας ORDERS που δεν βρίσκεται στην 1NF λόγω της ύπαρξης του χαρακτηριστικού ΒΟΟΚ-ΝΟ ORDERS_MOD1 ORD-NO DATE BOOK-NO 10870 10870 10871 10871 10871 11800 20/7/2004 20/7/2004 22/7/2004 22/7/2004 22/7/2004 30/9/2004 B5011 B4022 B4022 B3211 B6088 B0911 β) Ο πίνακας ORDERS_MOD1 βρίσκεται στην 1NF 5
Δεύτερος Κανόνας Κανονικοποίησης Ένας πίνακας πρώτης κανονικής μορφής ανάγεται σε σύνολο πινάκων δεύτερης κανονικής μορφής (2NF) αν αφαιρεθούν απ αυτόν όσα χαρακτηριστικά δεν εξαρτώνται πλήρως από όλα, και ολόκληρα, τα κλειδιά του πίνακα. 6
Παράδειγμα -2NF SUPPLY SCODE SCITY PCODE UNIT-PRICE S401 S401 S401 S402 S402 S403 S403 S404 Αθήνα Αθήνα Αθήνα Ηράκλειο Ηράκλειο Ηράκλειο Ηράκλειο Αθήνα P101 P102 P103 P104 P105 P102 P104 P105 100 500 250 950 150 350 900 120 SCODE SCITY {SCODE, PCODE} UNIT-PRICE α) Λειτουργικές εξαρτήσεις στους πίνακες SUPLOC και SPROD. Αναγωγή σε 2NF SPROD SUPLOC SCODE S401 S402 S403 S404 SCITY Αθήνα Ηράκλειο Ηράκλειο Αθήνα SCODE PCODE UNIT-PRICE S401 S401 S401 S402 S402 S403 S403 S404 P101 P102 P103 P104 P105 P102 P104 P105 100 500 250 950 150 350 900 120 7
3rd Normal Form (3NF) Η Σχέση R είναι σε 3NF εάν για όλες τις λειτουργικές (συναρτησιακές) εξαρτήσεις X Y, ισχύει ένα από τα εξής: είτε Υ Χ (τετριµµένη περίπτωση) ή X περιέχει το κλειδί της R ή Y είναι µέρος του κλειδιού της R 8
Τρίτος Κανόνας Κανονικοποίησης Ένας πίνακας δεύτερης κανονικής μορφής ανάγεται σε σύνολο πινάκων τρίτης κανονικής μορφής (3NF) αν αφαιρεθούν απ αυτόν όσα χαρακτηριστικά δεν αποτελούν συνιστώσες κλειδιών και εξαρτώνται μεταβατικά από κλειδιά. 9
Παράδειγμα 3NF ORDER ORDNO CCODE CCODE CCITY α) Λειτουργικές εξαρτήσεις των πινάκων ORDCUST και CUST ORDNO CCODE CCITY 124/2004 138/2004 221/2004 253/2004 391/2004 C108 C117 C123 C117 C108 Ηράκλειο Αθήνα Πάτρα Αθήνα Ηράκλειο Αναγωγή σε 3NF β) Μία πραγματοποίηση του πίνακα ORDER. ORDCUST CUST ORDNO CCODE CCODE CCITY 124/2004 138/2004 221/2004 253/2004 391/2004 C108 C117 C123 C117 C108 C108 C117 C123 C317 Ηράκλειο Αθήνα Πάτρα Σητεία 10
Boyce-Codd Normal Form (BCNF) Η Σχέση R είναι σε BCNF εάν για όλες τις λειτουργικές εξαρτήσεις X Y, ισχύει ένα από τα εξής: είτε Υ Χ (τετριµµένη περίπτωση) ή X περιέχει το κλειδί της R ηλαδή, δεν πρέπει ένα χαρακτηριστικό να έχει λειτουργική εξάρτηση από ένα άλλο χαρακτηριστικό που δεν είναι (ή περιέχει) το κλειδί Οι µόνες λειτουργικές εξαρτήσεις που επιτρέπονται είναι οι περιορισµοί κλειδιού 11
Κανόνας Κανονικοποίησης Boyce-Codd Ένας πίνακας τρίτης κανονικής μορφής ανάγεται σε σύνολο πινάκων της κανονικής μορφής Boyce/Codd (BCNF) αν αφαιρεθούν απ αυτόν όσα χαρακτηριστικά δεν εξαρτώνται πλήρως από κλειδιά. 12
Boyce-Codd Κανονική Μορφή Αλγόριθμος Διάσπασης σε BCNF Βρες μια μη τετριμμένη συναρτησιακή εξάρτηση που παραβιάζει τον BCNF ορισμό, έστω X Y και Χ Υ = Αποσύνθεση του αρχικού σχήματος R σε δύο σχήματα R 1 με γνωρίσματα Χ Y R 2 με γνωρίσματα R - Y 13
Παράδειγμα BCNF (1/3) PRCD (κωδικός έργου), CONCD (κωδικός συμβούλου έργου), SENCD (κωδικός μηχανικού λογισμικού), SUBJCD (κωδικός γνωστικού πεδίου έργου). {SENCD, CONCD} PRCD PRCD SUBJCD α) Λειτουργικές εξαρτήσεις στον πίνακα PROJECT. PROJECT PRCD SENCD CONCD SUBJCD P108 P108 P108 P238 P238 P245 SWE132 SWE178 SWE195 SWE192 SWE199 SWE188 CON212 CON212 CON278 CON295 CON295 CON237 S100 S100 S100 S122 S122 S117 Ο πίνακας PROJECT δεν βρίσκεται στην BCNF. μοναδικό κλειδί το σύνθετο χαρακτηριστικό {SENCD, CONCD} 14
Παράδειγμα BCNF (2/3) {SENCD, CONCD} PRCD PRCD SUBJCD α) Λειτουργικές εξαρτήσεις στον πίνακα PROJECT. PROJECT PRCD SENCD CONCD SUBJCD P108 P108 P108 P238 P238 P245 SWE132 SWE178 SWE195 SWE192 SWE199 SWE188 CON212 CON212 CON278 CON295 CON295 CON237 S100 S100 S100 S122 S122 S117 β) Μια πραγματοποίηση του πίνακα PROJECT. Μετατροπή σε BCNF SWENGIN CONS PRCD P108 P238 P245 SUBJCD S100 S122 S117 PRCD SENCD CONCD P108 P108 P108 P238 P238 P245 SWE132 SWE178 SWE195 SWE192 SWE199 SWE188 CON212 CON212 CON278 CON295 CON295 CON237 15
Παράδειγμα BCNF (3/3) R=(branch-name, branch-city, assets, customer-name, loan-number, amount) Συναρτησιακές εξαρτήσεις branch-name branch-city, assets loan-number branch-name, amount Αποσύνθεση R1 =(branch-name, branch-city, assets) R2=(loan-number, branch-name, amount) R3=(customer-name, loan-number) 16
Πολλαπλές εξαρτήσεις (1) AUTHOR (ACODE, ANAME) BOOK (BCODE, BNAME) SUBJ (SCODE, SNAME) ABS (ACODE, BCODE, SCODE) α) Πίνακες της βάσης δεδομένων LIBRARY. ACODE ANAME BCODE BTITLE SCODE SNAME β) Λειτουργικές εξαρτήσεις μεταξύ των χαρακτηριστικών των πινάκων του (α). γ) Μια πραγματοποίηση του πίνακα ABS. ABS ACODE BCODE SCODE A2002 A2002 A5342 A5342 A2002 285-107-035 1001 1340 1001 1340 1340 18
Πολλαπλές εξαρτήσεις Οι εξαρτήσεις πολλαπλών τιμών αναφέρονται σε γεγονότα πολλαπλών τιμών (multivalued facts) που συμβαίνουν στον οργανισμό και αναπαριστώνται στη βάση δεδομένων. Τέτοια γεγονότα αντιστοιχούν σε συσχετίσεις πολλά-προςπολλά μεταξύ οποιονδήποτε δύο υποσυνόλων χαρακτηριστικών ενός πίνακα. 19
Παράδειγμα: πολλαπλές εξαρτήσεις BCODE ΑCODE BCODE SCODE α) Εξαρτήσεις πολλαπλών τιμών στον πίνακα ABS β) Μια πραγματοποίηση του πίνακα ABS ABS ACODE BCODE SCODE A2002 A2002 A2342 A2342 A2002 285-107-035 1001 1340 1001 1340 1340 20
4NF Ένας τύπος σχέσης R U βρίσκεται στην τέταρτη κανονική μορφή (fourth normal form-4nf) αναφορικά με το σύνολο F αν κάθε εξάρτηση πολλαπλών τιμών X Y η οποία συνάγεται από το σύνολο F και η οποία εφαρμόζεται στο R είναι τετριμμένη ή αν το υποσύνολο χαρακτηριστικών X είναι υπερκλειδί του R. 21
Παράδειγμα : 4NF ΑΒ (ACODE, BCODE) BS (BCODE, SCODE) α) Πίνακες ΑΒ και BS που βρίσκονται στην 4NF. β) Πραγματοποιήσεις των πινάκων ΑΒ και BS. AB ACODE A2002 A2002 A2342 BCODE 285-107-035 BS BCODE 285-107-035 SCODE 1001 1340 1340 22
Πλεονεκτήματα κανονικοποίησης Ελαχιστοποίηση του χώρου που απαιτείται για την αποθήκευση των δεδομένων. Με την κανονικοποίηση αποφεύγεται η πολλαπλή αποθήκευση των ίδιων δεδομένων (εκτός των εξωτερικών κλειδιών). Ελαχιστοποίηση του κινδύνου εμφάνισης ασυνέπειας μεταξύ των δεδομένων της βάσης δεδομένων επειδή τα δεδομένα καταχωρούνται μόνο μία φορά. Ελαχιστοποίηση πιθανών προβλημάτων κατά την ενημέρωση της βάσης δεδομένων. Η καταχώρηση πολλαπλών αντιγράφων των ίδιων δεδομένων δημιουργεί προβλήματα στη διαδικασία ενημέρωσης της βάσης δεδομένων. Επίσης, η εσφαλμένη κατανομή ενός χαρακτηριστικού σε κάποιον πίνακα μπορεί να προκαλέσει απώλεια πληροφοριών από πιθανά λάθη κατά την ενημέρωση δεδομένων. Η κανονικοποίηση βοηθά στο να αποφευχθούν αυτά τα προβλήματα. Μεγιστοποίηση της σταθερότητας της βάσης δεδομένων. Η κανονικοποίηση βοηθά στη κατανομή χαρακτηριστικών σε αντικείμενα στηριζόμενοι περισσότερο στις ιδιότητες των δεδομένων και λιγότερο στις απαιτήσεις συγκεκριμένων εφαρμογών. 23