Πίνακας περιεχομένων:
- Ορισμός - Τι σημαίνει η δεύτερη κανονική φόρμα (2NF);
- Η Techopedia εξηγεί τη δεύτερη κανονική φόρμα (2NF)
Ορισμός - Τι σημαίνει η δεύτερη κανονική φόρμα (2NF);
Η δεύτερη κανονική μορφή (2NF) είναι το δεύτερο βήμα στην ομαλοποίηση μιας βάσης δεδομένων. Το 2NF βασίζεται στην πρώτη κανονική μορφή (1NF).
Η κανονικοποίηση είναι η διαδικασία της οργάνωσης δεδομένων σε μια βάση δεδομένων, ώστε να πληροί δύο βασικές απαιτήσεις:
- Δεν υπάρχει πλεονασμός δεδομένων (όλα τα δεδομένα αποθηκεύονται σε μία μόνο θέση).
- Οι εξαρτήσεις δεδομένων είναι λογικές (όλα τα σχετικά στοιχεία δεδομένων αποθηκεύονται μαζί).
Ένας πίνακας 1NF είναι σε μορφή 2NF εάν και μόνο εάν όλα τα χαρακτηριστικά του μη-prime είναι λειτουργικά εξαρτώμενα από το σύνολο του κάθε υποψήφιου κλειδιού.
Η Techopedia εξηγεί τη δεύτερη κανονική φόρμα (2NF)
Αφού ικανοποιήσει τις απαιτήσεις του 1NF, το 2NF απαιτεί από τον σχεδιαστή της βάσης δεδομένων να κάνει τα εξής:
- Διαχωρίστε όλα τα δεδομένα με αποτέλεσμα πολλές σχέσεις και αποθηκεύστε τα δεδομένα ως χωριστούς πίνακες. Για παράδειγμα, σε μια βάση δεδομένων που χρησιμοποιείται από την εφαρμογή του σχολείου, δύο από τα τραπέζια είναι STUDENT και SUBJECT. Στην πραγματική ζωή, ένας φοιτητής παίρνει πολλά θέματα ταυτόχρονα, ενώ ένα θέμα μελετάται από διάφορους μαθητές. Αυτές είναι πολλές σχέσεις. Το 2NF δηλώνει ότι η σχέση αυτή πρέπει να χωριστεί σε περισσότερους από τους δύο παραπάνω πίνακες (STUDENT και SUBJECT). Ένας τρόπος για τη διάσπασή τους είναι η εισαγωγή ενός τρίτου πίνακα, ο οποίος περιέχει τις στήλες Student_ID, Subject_ID, Semester και Year. Με τον τρόπο αυτό, δεν υπάρχει άμεση σχέση μεταξύ STUDENT και SUBJECT επειδή όλες οι σχέσεις δημιουργούνται έμμεσα μέσω του τρίτου πίνακα.
- Δημιουργήστε σχέσεις μεταξύ τραπεζών χρησιμοποιώντας ξένα πλήκτρα. Για παράδειγμα, η βάση δεδομένων μιας τράπεζας περιέχει δύο πίνακες: CUSTOMER_MASTER (για την αποθήκευση των στοιχείων του πελάτη) και ACCOUNT_MASTER (για την αποθήκευση στοιχείων σχετικά με τους τραπεζικούς λογαριασμούς, συμπεριλαμβανομένου του πελάτη στον οποίο λογαριασμό ανήκει). Πρέπει να υπάρχει ένας τρόπος σύνδεσης των δύο πινάκων για να μάθετε ποιος είναι ο πελάτης για κάθε λογαριασμό. Ο τρόπος για να γίνει αυτό είναι μέσω ενός ξένου κλειδιού, το οποίο είναι μια στήλη στον πίνακα ACCOUNT_MASTER που δείχνει μια αντίστοιχη στήλη στον πίνακα CUSTOMER_MASTER.
Ένας πίνακας για τον οποίο δεν υπάρχουν μερικές λειτουργικές εξαρτήσεις στο πρωτεύον κλειδί μπορεί να είναι ή να μην είναι σε 2NF. Εκτός από το πρωτεύον κλειδί, ο πίνακας μπορεί να περιέχει και άλλα υποψήφια κλειδιά. είναι απαραίτητο να αποδειχθεί ότι κανένα μη πρωταρχικό χαρακτηριστικό δεν έχει εξαρτήσεις από κάποιο από αυτά τα υποψήφια κλειδιά.