Διαφορά μεταξύ 3NF και BCNF

Anonim

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, αν και μόνο αν, για κάθε μία από τις εξαρτήσεις της φόρμας Α → Β που είναι μη τετριμμένες, το Α είναι ένα σούπερ κλειδί. Η αποσύνθεση ενός πίνακα που δεν ανήκει στην κανονική μορφή του BCNF δεν εγγυάται την παραγωγή πινάκων στη φόρμα BCNF (διατηρώντας παράλληλα τις εξαρτήσεις που υπήρχαν στον αρχικό πίνακα).

Ποια είναι η διαφορά μεταξύ 3NF και BCNF;

Τόσο το 3NF όσο και το BCNF είναι κανονικές μορφές που χρησιμοποιούνται σε σχεσιακές βάσεις δεδομένων για την ελαχιστοποίηση των πλεονασμάτων σε πίνακες. Σε έναν πίνακα που είναι στην κανονική μορφή του BCNF, για κάθε μη τετριμμένη λειτουργική εξάρτηση της μορφής Α → Β, το Α είναι ένα σούπερ κλειδί ενώ ένας πίνακας που συμμορφώνεται με το 3NF θα πρέπει να βρίσκεται στο 2NF και κάθε μη πρωταρχικός το χαρακτηριστικό πρέπει να εξαρτάται άμεσα από κάθε υποψήφιο κλειδί αυτού του πίνακα. Το BCNF θεωρείται ισχυρότερη κανονική μορφή από το 3NF και αναπτύχθηκε για να συλλάβει μερικές από τις ανωμαλίες που δεν μπορούσαν να συλληφθούν από το 3NF. Η απόκτηση ενός πίνακα που συμμορφώνεται με τη φόρμα BCNF θα απαιτήσει την αποσύνθεση ενός πίνακα που βρίσκεται στο 3NF. Αυτή η αποσύνθεση θα έχει ως αποτέλεσμα επιπλέον λειτουργίες σύνδεσης (ή καρτεσιανά προϊόντα) κατά την εκτέλεση ερωτημάτων. Αυτό θα αυξήσει τον υπολογιστικό χρόνο. Από την άλλη πλευρά, οι πίνακες που συμμορφώνονται με το BCNF θα έχουν λιγότερες απολύσεις από τους πίνακες που συμμορφώνονται με το 3NF.Επιπλέον, τις περισσότερες φορές, είναι δυνατόν να αποκτήσετε έναν πίνακα που να συμμορφώνεται με το 3NF χωρίς να εμποδίζεται η διατήρηση εξάρτησης και η ατέλειωτη σύνδεση. Αλλά αυτό δεν είναι πάντα εφικτό με την BCNF.