Κανονικοποίηση για Σχεσιακές Βάσεις Δεδομένων Αντζουλάτος Γεράσιμος antzoulatos@upatras.gr Τμήμα Εφαρμογών Πληροφορικής στην Διοίκηση και Οικονομία ΤΕΙ Πατρών - Παράρτημα Αμαλιάδας 10 Ιανουαρίου 2013
Περιεχομενα Παρουσίασης 1 Κανονική Μορφή Boyce-Codd
Εισαγωγή Η κανονική μορφή Boyce-Codd προτάθηκε σαν απλούστερη μορφή της 3NF, αλλά είναι πιο περιοριστική από την 3NF με την έννοια: κάθε σχέση σε BCNF βρίσκεται επίσης και σε 3NF κάθε σχέση σε 3NF δεν βρίσκεται απαραίτητα σε BCNF Η μόνη διαφορά μεταξύ BCNF και 3NF είναι ότι η συνθήκη (β) της 3NF, που επιτρέπει στο Α να είναι πρωτεύον γνώρισμα δεν περιλαμβάνεται στην BCNF
Κανονική Μορφή Boyce-Codd Γενικός Ορισμός Boyce-Codd Ενα σχήμα σχέσης R βρίσκεται σε Κανονική Μορφή Boyce-Codd - BCNF αν για κάθε μη τετριμμένη συναρτησιακή εξάρτηση X A στην R, το X είναι υπερκλειδί της R Παρατηρήσεις: Κάθε ΚΜ είναι αυστηρά ισχυρότερη από την προηγούμενη: Σχέσεις σε 2NF είναι σε 1NF Σχέσεις σε 3NF είναι σε 2NF Σχέσεις σε BCNF είναι σε 3NF Στόχος: Κάθε σχέση να είναι σε BCNF (ή σε 3NF)
Κανονική Μορφή Boyce-Codd Γενικός Ορισμός Boyce-Codd Ενα σχήμα σχέσης R βρίσκεται σε Κανονική Μορφή Boyce-Codd - BCNF αν για κάθε μη τετριμμένη συναρτησιακή εξάρτηση X A στην R, το X είναι υπερκλειδί της R Παρατηρήσεις: Κάθε ΚΜ είναι αυστηρά ισχυρότερη από την προηγούμενη: Σχέσεις σε 2NF είναι σε 1NF Σχέσεις σε 3NF είναι σε 2NF Σχέσεις σε BCNF είναι σε 3NF Στόχος: Κάθε σχέση να είναι σε BCNF (ή σε 3NF)
Παράδειγμα 1 Σχήμα: Συναρτησιακές Εξαρτήσεις σχέσης Παρακ Η σχέση Παρακ βρίσκεται σε BCNF μορφή
Παράδειγμα 1 Σχήμα: Συναρτησιακές Εξαρτήσεις σχέσης Παρακ Η σχέση Παρακ βρίσκεται σε BCNF μορφή
Παράδειγμα 2 Σχήμα: Συναρτησιακές Εξαρτήσεις σχέσης Σπουδ Η σχέση Σπουδ δεν βρίσκεται σε BCNF μορφή. Γιατί;
Παράδειγμα 2 Σχήμα: Συναρτησιακές Εξαρτήσεις σχέσης Σπουδ Η σχέση Σπουδ δεν βρίσκεται σε BCNF μορφή. Γιατί;
Παράδειγμα 3 Σχήμα: Συναρτησιακές Εξαρτήσεις σχέσης Σπουδ Παρακ Η σχέση Σπουδ Παρακ δεν βρίσκεται σε BCNF μορφή. Γιατί;
Παράδειγμα 3 Σχήμα: Συναρτησιακές Εξαρτήσεις σχέσης Σπουδ Παρακ Η σχέση Σπουδ Παρακ δεν βρίσκεται σε BCNF μορφή. Γιατί;
Παράδειγμα 4 Ο κωδικός μαθήματος προσδιορίζει πλήρως ένα μάθημα Το ίδιο συμβαίνει και με τον τίτλο μαθήματος Εστω ότι ένας σπουδαστής έχει τη δυνατότητα να παρακολουθήσει ένα συγκεκριμένο μάθημα μόνο ένα εξάμηνο Υποψήφια κλειδιά: (Κωδικός, ΑΜ) και (Τίτλος, ΑΜ) Επιλέγεται ως πρωτεύον κλειδί ο συνδυασμός (Κωδικός, ΑΜ)
Παράδειγμα 4 (συνέχεια) Προκύπτουν οι ΣΕ: ΣΕ1: (Κωδικός, ΑΜ) Εξάμηνο Παρακολ ΣΕ2: Κωδικός Τίτλος ΣΕ3: Τίτλος Κωδικός Στην ΣΕ1 ο συνδυασμός (Κωδικός, ΑΜ) είναι υποψήφιο κλειδί Στην ΣΕ2 ο Κωδικός δεν είναι υποψήφιο κλειδί και επομένως η σχέση Μάθημα-Σπουδαστής δεν βρίσκεται σε BCNF μορφή
Παράδειγμα 4 (συνέχεια) Η σχέση Μάθημα-Σπουδαστής βρίσκεται στην 3η κανονική μορφή γιατί: Αποτελείται από ατομικά πεδία και επομένως βρίσκεται στην 1NF Το πεδίο Εξάμηνο Παρακολ που είναι το μοναδικό πεδίο που δε συμμετέχει σε υποψήφιο κλειδί είναι πλήρως συναρτησιακά εξαρτημένο από κάθε υποψήφιο κλειδί και επομένως βρίσκεται στην 2NF Το πεδίο Εξάμηνο Παρακολ που είναι το μοναδικό πεδίο που δε συμμετέχει σε υποψήφιο κλειδί είναι ευθεύως εξαρτημένο και όχι μεταβατικά από υποψήφιο κλειδί και επομένως βρίσκεται στην 3NF Ωστόσο υπάρχουν διαχειριστικά προβλήματα: πχ η αλλαγή του τίτλου ενός μαθήματος (π.χ. από Μαθηματικά Ι σε Γενικά Μαθηματικά) είναι δυνατόν να δημιουργήσει αποτελέσματα ασυνέπειας Λύση: η αποδόμηση χωρίς απώλειες της αρχικής σχέσης και η δημιουργία νέων σχέσεων που βρίσκονται στην BCNF Δημιουργία δύο σχέσεων: Μάθημα με πεδία (Κωδικός, Τίτλος) και Μάθημα Σπουδαστής με πεδία (Κωδικός, ΑΜ, Εξάμηνο Παρακολ)
Παράδειγμα 5 Το σχήμα ΙΔΙΟΚΤΗΣΙΑ περιγράφει αγροτεμάχια που πωλούνται σε διάφορες επαρχίες ενός νομού Δύο Υποψήφια Κλειδιά: ΚΩΔ ΙΔΙΟΚΤΗΣΙΑΣ και {Ο ΕΠΑΡΧΙΑΣ, ΚΩΔ ΤΕΜΑΧΙΟΥ} Ο ΚΩΔ ΤΕΜΑΧΙΟΥ είναι μοναδικός μόνο μέσα σε κάθε επαρχία, αλλά ο ΚΩΔ ΙΔΙΟΚΤΗΣΙΑΣ είναι μοναδικός μεταξύ όλων των επαρχιών του νομού Επιλέγουμε πρωτεύον κλειδί το ΚΩΔ ΙΔΙΟΚΤΗΣΙΑΣ Εστω δύο ακόμη ΣΕ στη σχέση ΙΔΙΟΚΤΗΣΙΑ: ΣΕ3: Ο ΕΠΑΡΧΙΑΣ Π ΦΟΡΟΥ ΣΕ4: ΕΚΤΑΣΗ ΤΙΜΗ
Παράδειγμα 5 (συνέχεια) Τότε όμως η σχέση ΙΔΙΟΚΤΗΣΙΑ παραβιάζει τον γενικό ορισμό της 2NF, διότι το Π ΦΟΡΟΥ εξαρτάται μερικώς από το υποψήφιο κλειδί {Ο ΕΠΑΡΧΙΑΣ, ΚΩΔ ΤΕΜΑΧΙΟΥ} λόγω της ΣΕ3 Λύση: για να κανονικοποιηθεί η σχέση ΙΔΙΟΚΤΗΣΙΑ σε 2NF, την αποσυνθέτουμε σε δύο σχέσεις:
Παράδειγμα 5 (συνέχεια) Η ΙΔΙΟΚΤΗΣΙΑ2 βρίσκεται σε 3NF Ομως η ΣΕ4 στην ΙΔΙΟΚΤΗΣΙΑ1 παραβιάζει την 3NF, διότι ούτε το γνώρισμα ΕΚΤΑΣΗ είναι υπερκλειδί της σχέσης ΙΔΙΟΚΤΗΣΙΑ1, ούτε το ΤΙΜΗ είναι πρωτεύον γνώρισμα Λύση: για να κανονικοποιηθεί η σχέση η ΙΔΙΟΚΤΗΣΙΑ1 σε 3NF, την αποσυνθέτουμε σε δύο σχέσεις:
Παράδειγμα 5 (συνέχεια) Υπόθεσεις: έστω ότι έχουμε χιλιάδες ιδιοκτησίες στη σχέση αλλά οι ιδιοκτησίες αυτές προέρχονται μόνο από τις δύο επαρχίες Ιστιαίας και Κύμης έστω ότι τα μεγέθη των ιδιοκτησιών (ΕΚΤΑΣΗ) στην επαρχία της Ιστιαίας είναι μόνο 0.5, 0.6,..., 1.0, ενώ αυτών της Κύμης περιορίζεται σε 1.1, 1.2..., 2.0 στρέμματα Νέα Συναρτησιακή Εξάρτηση προκύπτει η ΣΕ5: ΕΚΤΑΣΗ Ο ΕΠΑΡΧΙΑΣ
Παράδειγμα 5 (συνέχεια) Εάν προστεθεί η ΣΕ5, τότε η ΙΔΙΟΚΤΗΣΙΑ 1Α εξακολουθεί να βρίσκεται σε 3NF, διότι το Ο ΕΠΑΡΧΙΑΣ είναι πρωτεύον γνώρισμα ως μέρος ενός υποψήφιου κλειδιού όμως η ΣΕ5 παραβιάζει την BCNF διότι το γνώρισμα ΕΚΤΑΣΗ δεν είναι υπερκλειδί της σχέσης ΙΔΙΟΚΤΗΣΙΑ 1Α Λύση: για να κανονικοποιηθεί η σχέση η ΙΔΙΟΚΤΗΣΙΑ 1Α σε BCNF, την αποσυνθέτουμε σε δύο σχέσεις:
Παράδειγμα 6 Συναρτησιακές Εξαρτήσεις: ΣΕ1: {ΦΟΙΤΗΤΗΣ, ΜΑΘΗΜΑ} ΔΙΔΑΣΚΩΝ ΣΕ2: ΔΙΔΑΣΚΩΝ ΜΑΘΗΜΑ Υποψήφιο κλειδί: {ΦΟΙΤΗΤΗΣ, ΜΑΘΗΜΑ}. Είναι η σχέση αυτή σε BCNF μορφή;
Παράδειγμα 6 Συναρτησιακές Εξαρτήσεις: ΣΕ1: {ΦΟΙΤΗΤΗΣ, ΜΑΘΗΜΑ} ΔΙΔΑΣΚΩΝ ΣΕ2: ΔΙΔΑΣΚΩΝ ΜΑΘΗΜΑ Υποψήφιο κλειδί: {ΦΟΙΤΗΤΗΣ, ΜΑΘΗΜΑ}. Είναι η σχέση αυτή σε BCNF μορφή;
Παράδειγμα 6 Η σχέση ΔΙΔΑΣΚΩΝ δεν είναι σε BCNF μορφή διότι: η ΣΕ1: {ΦΟΙΤΗΤΗΣ, ΜΑΘΗΜΑ} ΔΙΔΑΣΚΩΝ, πληροί την προϋπόθεση το Χ={ΦΟΙΤΗΤΗΣ, ΜΑΘΗΜΑ} να είναι υποψήφιο κλειδί, αλλά η ΣΕ2: ΔΙΔΑΣΚΩΝ ΜΑΘΗΜΑ, δεν πληροί την προϋπόθεση του ορισμού καθώς ο ΔΙΔΑΣΚΩΝ δεν είναι υποψήφιο κλειδί όμως είναι σε 3NF μορφή... διότι στη ΣΕ1 το {ΦΟΙΤΗΤΗΣ, ΜΑΘΗΜΑ} είναι υποψήφιο κλειδί και επίσης στην ΣΕ2 το ΜΑΘΗΜΑ είναι πρωτεύον γνώρισμα
Παράδειγμα 6 (συνέχεια) Διάσπαση του σχήματος σχέσης για να έρθει σε BCNF Πιθανά ζεύγη διάσπασης: {ΦΟΙΤΗΤΗΣ,ΔΙΔΑΣΚΩΝ} και {ΦΟΙΤΗΤΗΣ,ΜΑΘΗΜΑ} {ΜΑΘΗΜΑ,ΔΙΔΑΣΚΩΝ} και {ΦΟΙΤΗΤΗΣ,ΜΑΘΗΜΑ} {ΔΙΔΑΣΚΩΝ, ΜΑΘΗΜΑ} και {ΔΙΔΑΣΚΩΝ,ΜΑΘΗΜΑ} όμως και οι τρεις χάνουν την ΣΕ1, αλλά πιο επιθυμητή είναι η 3η διάσπαση επειδή δεν θα δημιουργήσει πλασματικές πλειάδες μετά από μια πιθανή συνένωση
Γενικός κανόνας Σχέση R που βρίσκεται σε 3NF αλλά όχι σε BCNF Κανόνας Αν υπάρχει μια εξάρτηση X A σε κάποιο σχήμα σχέσης R τέτοια ώστε ούτε το X να είναι υπερκλειδί ούτε το A πρωτεύον γνώρισμα, τότε η R θα είναι σε 3NF αλλά όχι σε BCNF μορφή
Προτεινόμενη Βιβλιογραφία 1 R. Elmasri - S.B. Navathe, μετάφραση Μ. Χατζόπουλος, Θεμελιώδεις Αρχές Συστημάτων Βάσεων Δεδομένων - Τόμος Α, 3η έκδοση, Δίαυλος 2 Ταμπακάς Β. Βάσεις Δεδομένων, αυτοέκδοση