Βάσεις Δεδομένων Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Βάσεις Δεδομένων», 2015-2016
Κεφάλαιο 5: Κανονικοποίηση
Πλεονασμός Δεδομένων Πλεονασμός Δεδομένων: Η άσκοπη επανάληψη των ίδιων Δεδομένων. Μπορεί να προκαλέσει προβλήματα κατά την εισαγωγή, τη διαγραφή και την τροποποίηση των δεδομένων (ανωμαλίες ενημέρωσης). Προσέγγιση 1: Υπάλληλοι και Καταστήματα στον ίδιο Πίνακα Προσέγγιση 2: Υπάλληλοι και Καταστήματα σε διαφορετικούς Πίνακες Ποια προβλήματα δημιουργούνται κατά την εισαγωγή, την ενημέρωση και τη διαγραφή εγγραφών στην 1 η Προσέγγιση; Υπάρχουν τα ίδια προβλήματα και στη 2η Προσέγγιση;
Κανονικοποίηση Η Κανονικοποίηση (Normalisation) είναι μια μέθοδος που εφαρμόζεται στο Λογικό Σχεδιασμό μιας Σχεσιακής Βάσεις Δεδομένων, συμπληρωματικά του διαγράμματος Ο.Σ. και οδηγεί σε καλοσχεδιασμένες Σχέσεις (Πίνακες) χωρίς προβλήματα πλεονασμού, συνέπειας και εγκυρότητας δεδομένων. Τρείς Κανονικές Μορφές 1 η Κανονική Μορφή 1 NF 2 η Κανονική Μορφή 2 NF 3 η Κανονική Μορφή 3 NF
Παράδειγμα Κανονικοποίησης: Τα αρχικά Δεδομένα Ο Πίνακας θέλουμε να περιέχει για κάθε σχολική χρονιά, πληροφορίες σχετικά με τον αριθμό μαθητών κάθε τμήματος του κάθε ΤΕΕ. Στον αρχικό πίνακα τα πεδία «Κωδ. Τμήματος» και «Μαθητές Τμήματος» δέχονται πολλές τιμές (ΑΠ1, ΑΠ2, ΒΠ1, ΒΠ2) και (30,25,28,16) αντίστοιχα.
1 η Κανονική Μορφή (1NF) Ένας Πίνακας βρίσκεται στην 1 η Κανονική Μορφή όταν έχει σταθερό και όχι μεταβλητό αριθμό πεδίων και κάθε πεδίο περιέχει μια μόνο τιμή. Η Μετατροπή ωστόσο του Πίνακα στην 1NF είχε σαν αποτέλεσμα τη δημιουργία πλεονάζουσας πληροφορίας. Οι εγγραφές του προηγούμενου Πίνακα διαιρέθηκαν σε περισσότερες εγγραφές ώστε ο «Κωδικός Τμήματος» και οι «Μαθητές Τμήματος» να έχουν μια τιμή σε κάθε εγγραφή.
1 η Κανονική Μορφή (1NF) Πριν προχωρήσουμε στη 2 η NF πρέπει να ορίσουμε το Πρωτεύον Κλειδί του Πίνακα. Εδώ από μόνο του κανένα πεδίο δε μπορεί να είναι πρωτεύον κλειδί. Πρέπει λοιπόν να προσδιορίσουμε ένα συνδυασμό Πεδίων (Σύνθετο Κλειδί). Σκεφτόμαστε τι είδους πληροφορία περιέχει ο Πίνακας και τι θέλουμε να προσδιορίζουμε με το Πρωτεύον Κλειδί. Θέλουμε να ξέρουμε για κάθε ΤΕΕ και τμήμα τον αριθμό των Μαθητών κάθε χρονιά. Έτσι ο συνδυασμός των Πεδίων που μπορεί να προσδιορίσει μοναδικά κάθε εγγραφή είναι: «Κωδ_ΤΕΕ» + «Κωδ. Τμήματος» + «Σχολ. Έτος»
2 η Κανονική Μορφή (2NF) Αν το Πρωτεύον κλειδί που προέκυψε ΔΕΝ είναι σύνθετο προχωράμε κατευθείαν στην 3 η NF. Αν είναι σύνθετο προχωράμε στη 2 η NF. Στον Πίνακα που βρίσκεται σε 1NF βλέπουμε ποια από τα πεδία που ΔΕΝ ανήκουν στο κλειδί, σχετίζονται (εξαρτώνται) από ΟΛΟΚΛΗΡΟ το Πρωτεύον Κλειδί. Στο παράδειγμά μας μόνο ο «Αριθμός Μαθητών» σχετίζεται με το Σύνολο των Πεδίων του Κλειδιού. Στη 2 η NF παίρνουμε τα πεδία του Σύνθετου Κλειδιού και όσα Πεδία συνδέονται με αυτό και τα μετακινούμε σε ξεχωριστό Πίνακα.
2 η Κανονική Μορφή (2NF) Στη συνέχεια, στον αρχικό Πίνακα, εξετάζουμε ένα ένα τα επιμέρους πεδία του σύνθετου κλειδιού, και το καθένα από αυτά μαζί με όσα από τα εναπομείναντα πεδία εξαρτώνται από αυτό τα βάζουμε σε ξεχωριστούς πίνακες. Από το πεδίο «Κωδ_ΤΕΕ» εξαρτώνται τα «Ονομ_ΤΕΕ», «Δνση_ΤΕΕ», «τηλ_τεε», «Κωδ_Ββθμιας» και «Ονομ_Βθμιας» Από το πεδίο «Κωδ_Τμήματος» εξαρτάται το πεδίο «Τομέας» Στη συνέχεια, στον αρχικό πάλι Πίνακα, εξετάζουμε συνδυασμούς των Πεδίων του Σύνθετου Κλειδιού και εφόσον υπάρχουν Πεδία που εξαρτώνται από κάποιον συνδυασμό φτιάχνουμε ένα νέο πίνακα με τα πεδία αυτά και κλειδί το συνδυασμό των πεδίων στον οποίο αναφέρονται. Στο παράδειγμά μας δεν έχουμε τέτοια περίπτωση.
2 η Κανονική Μορφή (2NF) Μια Σχέση (Πίνακας) βρίσκεται στη 2 η NF όταν έχει προέλθει από Σχέση 1 ης NF και τα Πεδία που δεν ανήκουν στο κλειδί της αφορούν πλήρως και μόνο το κλειδί. Οι 3 πίνακες που προέκυψαν βρίσκονται σε 2NF λοιπόν
3 η Κανονική Μορφή (2NF) Στον Πίνακα 2 ης NF με τα ΤΕΕ, το «Ονομ_Βθμιας» δεν αφορά άμεσα το κλειδί αλλά περιγράφει το Πεδίο «Κωδ_Βθμιας». Έτσι μαζί με αυτό τα διαχωρίζουμε σε νέο Πίνακα και αφήνουμε μόνο το «Κωδ_Βθμιας» στον αρχικό πίνακα. Μια Σχέση βρίσκεται στην 3 η NF όταν κανένα Πεδίο δεν εξαρτάται από κάποιο άλλο παρά μόνο από το Κλειδί του Πίνακα.
Άσκηση: Στον παρακάτω Πίνακα εμφανίζονται δεδομένα που αφορούν μια εταιρία εμπορίας Ηλεκτρικών Ειδών που δραστηριοποιείται σε διάφορες Πόλεις. Να Κανονικοποιήσετε μέχρι 3 η NF τα δεδομένα.
Μετατροπή σε 1 η NF
1 η NF Πρωτεύον Κλειδί Το Πρωτεύον Κλειδί μαζί με το «Ποσότητα Αποθήκης» που σχετίζεται με το σύνολο του κλειδιού πάνε σε νέο Πίνακα
1 η NF Με το Πεδίο «Κωδ. Είδους» του κλειδιού σχετίζεται το «Ονομ_Είδους». Πάνε σε νέο Πίνακα. Με το Πεδίο «Κωδ. Αποθήκης» του κλειδιού σχετίζεται το «Δνση_Αποθήκης». Πάνε σε νέο Πίνακα.
Πηγές: Database Systems: A Practical Approach to Design, Implementation, and Management Thomas Connolly Carolyn Begg Βάσεις Δεδομένων, ΤΕΕ Β Τάξη, 1 ος Κύκλος, Ινστιτούτο Τεχνολογίας Υπολογιστών και Εκδόσεων «Διόφαντος»