3NF vs BCNF
Η κανονικοποίηση είναι μια διαδικασία που εκτελείται για την ελαχιστοποίηση των απολύσεων που υπάρχουν σε δεδομένα σε σχεσιακές βάσεις δεδομένων. Αυτή η διαδικασία θα χωρίσει κυρίως τους μεγάλους πίνακες σε μικρότερους πίνακες με λιγότερες απολύσεις. Αυτοί οι μικρότεροι πίνακες θα σχετίζονται μεταξύ τους μέσω καλά καθορισμένων σχέσεων. Σε μια καλά κανονικοποιημένη βάση δεδομένων, οποιαδήποτε αλλαγή ή τροποποίηση δεδομένων θα απαιτήσει την τροποποίηση μόνο ενός πίνακα. Η Τρίτη Κανονική Μορφή (3NF) εισήχθη το 1971 από τον Edgar F. Codd, ο οποίος είναι επίσης ο εφευρέτης του σχεσιακού μοντέλου και της έννοιας της κανονικοποίησης. Ο Boyce-Codd Normal Form (BCNF) εισήχθη το 1974 από τους Codd και Raymond F. Boyce.
Τι είναι το 3NF;
Το 3NF είναι η Τρίτη κανονική μορφή που χρησιμοποιείται στην κανονικοποίηση της σχεσιακής βάσης δεδομένων. Σύμφωνα με τον ορισμό του Codd, ένας πίνακας λέγεται ότι είναι σε 3NF, εάν και μόνο εάν, αυτός ο πίνακας είναι στη δεύτερη κανονική μορφή (2NF), και κάθε χαρακτηριστικό στον πίνακα που δεν ανήκει σε ένα υποψήφιο κλειδί θα πρέπει να εξαρτάται άμεσα από κάθε υποψήφιο κλειδί αυτού του πίνακα. Το 1982 ο Carlo Zaniolo παρήγαγε έναν διαφορετικά εκφρασμένο ορισμό για το 3NF. Οι πίνακες που συμμορφώνονται με το 3NF γενικά δεν περιέχουν ανωμαλίες που εμφανίζονται κατά την εισαγωγή, διαγραφή ή ενημέρωση εγγραφών στον πίνακα.
Τι είναι το BCNF;
Το BCNF (επίσης γνωστό ως 3.5NF) είναι μια άλλη κανονική μορφή που χρησιμοποιείται στην κανονικοποίηση της σχεσιακής βάσης δεδομένων. Εισήχθη για να καταγράψει ορισμένες ανωμαλίες που δεν αντιμετωπίζονται από το 3NF. Ένας πίνακας λέγεται ότι είναι σε BCNF, εάν και μόνο εάν, για καθεμία από τις εξαρτήσεις της μορφής A → B που δεν είναι τετριμμένες, το A είναι ένα υπερ-κλειδί. Η αποσύνθεση ενός πίνακα που δεν είναι στην κανονική μορφή BCNF δεν εγγυάται την παραγωγή πινάκων στη μορφή BCNF (διατηρώντας παράλληλα τις εξαρτήσεις που υπήρχαν στον αρχικό πίνακα).
Ποια είναι η διαφορά μεταξύ 3NF και BCNF;
Τόσο το 3NF όσο και το BCNF είναι κανονικές μορφές που χρησιμοποιούνται σε σχεσιακές βάσεις δεδομένων για την ελαχιστοποίηση των πλεονασμάτων σε πίνακες. Σε έναν πίνακα που είναι στην κανονική μορφή BCNF, για κάθε μη τετριμμένη συναρτησιακή εξάρτηση της μορφής A → B, το A είναι ένα υπερ-κλειδί ενώ, ένας πίνακας που συμμορφώνεται με το 3NF θα πρέπει να είναι στο 2NF και κάθε μη-πρωταρχικός Το χαρακτηριστικό θα πρέπει να εξαρτάται άμεσα από κάθε υποψήφιο κλειδί αυτού του πίνακα. Το BCNF θεωρείται ως ισχυρότερη φυσιολογική μορφή από το 3NF και αναπτύχθηκε για να συλλάβει ορισμένες από τις ανωμαλίες που δεν μπορούσαν να συλληφθούν από το 3NF. Η απόκτηση ενός πίνακα που συμμορφώνεται με τη φόρμα BCNF θα απαιτήσει την αποσύνθεση ενός πίνακα που βρίσκεται στο 3NF. Αυτή η αποσύνθεση θα έχει ως αποτέλεσμα πρόσθετες λειτουργίες ένωσης (ή καρτεσιανά προϊόντα) κατά την εκτέλεση ερωτημάτων. Αυτό θα αυξήσει τον υπολογιστικό χρόνο. Από την άλλη πλευρά, οι πίνακες που συμμορφώνονται με το BCNF θα έχουν λιγότερες απολύσεις από τους πίνακες που συμμορφώνονται μόνο με το 3NF. Επιπλέον, τις περισσότερες φορές, είναι δυνατό να αποκτήσετε έναν πίνακα που συμμορφώνεται με το 3NF χωρίς να παρεμποδίζεται η διατήρηση της εξάρτησης και η σύνδεση χωρίς απώλειες. Αλλά αυτό δεν είναι πάντα δυνατό με το BCNF.