1NF vs 2NF vs 3NF
Η κανονικοποίηση είναι μια διαδικασία που εκτελείται για την ελαχιστοποίηση των απολύσεων που υπάρχουν σε δεδομένα σε σχεσιακές βάσεις δεδομένων. Αυτή η διαδικασία θα χωρίσει κυρίως τους μεγάλους πίνακες σε μικρότερους πίνακες με λιγότερες απολύσεις. Αυτοί οι μικρότεροι πίνακες θα σχετίζονται μεταξύ τους μέσω καλά καθορισμένων σχέσεων. Σε μια καλά κανονικοποιημένη βάση δεδομένων, οποιαδήποτε αλλαγή ή τροποποίηση δεδομένων θα απαιτεί την τροποποίηση μόνο ενός πίνακα. Η πρώτη κανονική μορφή (1NF), η δεύτερη κανονική μορφή (2NF) και η τρίτη κανονική μορφή (3NF) εισήχθησαν από τον Edgar F. Codd, ο οποίος είναι επίσης ο εφευρέτης του σχεσιακού μοντέλου και της έννοιας της κανονικοποίησης.
Τι είναι το 1NF;
Το 1NF είναι η Πρώτη κανονική φόρμα, η οποία παρέχει το ελάχιστο σύνολο απαιτήσεων για την κανονικοποίηση μιας σχεσιακής βάσης δεδομένων. Ένας πίνακας που συμμορφώνεται με το 1NF διασφαλίζει ότι αντιπροσωπεύει πραγματικά μια σχέση (δηλαδή δεν περιέχει εγγραφές που επαναλαμβάνονται), αλλά δεν υπάρχει καθολικά αποδεκτός ορισμός για το 1NF. Μια σημαντική ιδιότητα είναι ότι ένας πίνακας που συμμορφώνεται με το 1NF δεν θα μπορούσε να περιέχει χαρακτηριστικά που έχουν σχεσιακή τιμή (δηλαδή όλα τα χαρακτηριστικά πρέπει να έχουν ατομικές τιμές).
Τι είναι το 2NF;
Το 2NF είναι η δεύτερη κανονική μορφή που χρησιμοποιείται σε σχεσιακές βάσεις δεδομένων. Για να συμμορφώνεται ένας πίνακας με το 2NF, θα πρέπει να συμμορφώνεται με το 1NF και κάθε χαρακτηριστικό που δεν αποτελεί μέρος οποιουδήποτε υποψήφιου κλειδιού (δηλαδή μη πρωταρχικά χαρακτηριστικά) θα πρέπει να εξαρτάται πλήρως από οποιοδήποτε από τα υποψήφια κλειδιά στον πίνακα.
Τι είναι το 3NF;
Το 3NF είναι η Τρίτη κανονική μορφή που χρησιμοποιείται στην κανονικοποίηση της σχεσιακής βάσης δεδομένων. Σύμφωνα με τον ορισμό του Codd, ένας πίνακας λέγεται ότι είναι σε 3NF, εάν και μόνο εάν, αυτός ο πίνακας είναι στη δεύτερη κανονική μορφή (2NF), και κάθε χαρακτηριστικό στον πίνακα που δεν ανήκει σε ένα υποψήφιο κλειδί, θα πρέπει να εξαρτάται άμεσα σε κάθε υποψήφιο κλειδί αυτού του πίνακα. Το 1982 ο Carlo Zaniolo παρήγαγε έναν διαφορετικά εκφρασμένο ορισμό για το 3NF. Οι πίνακες που συμμορφώνονται με το 3NF γενικά δεν περιέχουν ανωμαλίες που εμφανίζονται κατά την εισαγωγή, διαγραφή ή ενημέρωση εγγραφών στον πίνακα.
Ποια είναι η διαφορά μεταξύ 1NF και 2NF και 3NF;
1NF, 2NF και 3NF είναι κανονικές μορφές που χρησιμοποιούνται σε σχεσιακές βάσεις δεδομένων για την ελαχιστοποίηση των πλεονασμάτων σε πίνακες. Το 3NF θεωρείται ως ισχυρότερη κανονική μορφή από το 2NF και θεωρείται ως ισχυρότερη κανονική μορφή από το 1NF. Επομένως, γενικά, η απόκτηση ενός πίνακα που συμμορφώνεται με τη φόρμα 3NF θα απαιτήσει την αποσύνθεση ενός πίνακα που βρίσκεται στο 2NF. Ομοίως, η απόκτηση ενός πίνακα που συμμορφώνεται με το 2NF θα απαιτήσει την αποσύνθεση ενός πίνακα που βρίσκεται στο 1NF. Ωστόσο, εάν ένας πίνακας που συμμορφώνεται με το 1NF περιέχει υποψήφια κλειδιά που αποτελούνται μόνο από ένα μόνο χαρακτηριστικό (δηλαδή μη σύνθετα υποψήφια κλειδιά), ένας τέτοιος πίνακας θα συμμορφώνεται αυτόματα με το 2NF. Η αποσύνθεση πινάκων θα έχει ως αποτέλεσμα πρόσθετες λειτουργίες ένωσης (ή καρτεσιανά προϊόντα) κατά την εκτέλεση ερωτημάτων. Αυτό θα αυξήσει τον υπολογιστικό χρόνο. Από την άλλη πλευρά, οι πίνακες που συμμορφώνονται με ισχυρότερες κανονικές φόρμες θα έχουν λιγότερες απολύσεις από τους πίνακες που συμμορφώνονται μόνο με πιο αδύναμες κανονικές φόρμες.