Σχεδίαση Βάσεων Δεδομένων Τρίτη Κανονική Μορφή Third Normal Form 1 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Στόχοι Το μάθημα αυτό καλύπτει τους ακόλουθους στόχους: Να προσδιορίσει τις μεταβατικές εξαρτήσεις σε ένα μοντέλο δεδομένων Να ορίσει τον κανόνα της Τρίτης Κανονικής Μορφής κατά τη διαδικασία της κανονικοποιήσης Να εξετάσει μία μη κανονικοποιημένη οντότητα και να καθορίσει ποιος κανόνας, ή κανόνες κανονικοποιήσης παραβιάζονται Να εφαρμόσει τον κανόνα της Τρίτης Κανονικής Μορφής για την επίλυση μίας παραβίασης στο μοντέλο 2 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Σκοπός Ο σκοπός σας ως σχεδιαστής βάσεων δεδομένων είναι να «αποθηκεύετε πληροφορίες σε ένα μόνο μέρος καθώς και στο καλύτερο δυνατό μέρος». Η εφαρμογή των κανόνων της κανονικοποιήσης σας βοηθά να πετύχετε το σκοπό αυτό. Μπορεί να χρειαστεί να εισάγετε διαφορετικά ήδη πληροφοριών για κάποιο φίλο στο προσωπικό σας βιβλίο διευθύνσεων: αριθμός τηλεφώνου, διεύθυνση, όνομα σχολείου ή χώρος εργασίας. Εάν έχετε πολλούς φίλους που πηγαίνουν στο ίδιο σχολείο, και εισάγετε τη διεύθυνση του σχολείου σε κάθε έναν από αυτούς, όχι μόνο θα διπλασιάζατε τα δεδομένα αλλά θα δημιουργούσατε και πιθανά προβλήματα για παράδειγμα, εάν το σχολείο μετακινούνταν και άλλαζε διεύθυνση, θα έπρεπε να πάτε πίσω και να το αλλάζατε παντού! Η κανονικοποιήση είναι μία διαδικασία η οποία εξαλείφει τέτοιου είδους προβλήματα. 3 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Κανόνας Τρίτης Κανονικής Μορφής Ο κανόνας της Τρίτης Κανονικής Μορφής (Third Normal Form, 3NF) δηλώνει πως κανένα μη Μοναδικού Αναγνωριστικού (non-unique Identifier, non-uid) πεδίο, δεν μπορεί να εξαρτάται από άλλο μη Μοναδικού Αναγνωριστικού πεδίο (non-unique Identifier, non-uid). Παραβίαση Τρίτης Κανονικής Μορφής CD * τίτλος * παραγωγός * χρονιά o όνομα καταστήμ. o διεύθυνση καταστ. Η Τρίτη Κανονική Μορφή απαγορεύει τις μεταβατικές εξαρτήσεις. Μία μεταβατική εξάρτηση υπάρχει όταν ένα οποιοδήποτε πεδίο σε μία οντότητα εξαρτάται από ένα οποιαδήποτε άλλο μη Μοναδικού Αναγνωριστικού πεδίο (non-unique Identifier, non-uid) στην οντότητα αυτή. Σκεφτείτε το είδος των πληροφοριών που θα θέλατε να αποθηκεύσετε για την συλλογή από CD σας. Ανήκουν οι πληροφορίες σχετικά με το κατάστημα από το οποίο αγοράσατε το CD στην ίδια οντότητα; Εάν άλλαζε η διεύθυνση τους καταστήματος, θα έπρεπε να αλλάξετε τις πληροφορίες σε όλα τα CD που αγοράστηκαν από το κατάστημα αυτό. 4 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Μεταβατική Εξάρτηση Τρίτης Κανονικής Μορφής Η διεύθυνση του καταστήματος εξαρτάται από τον αριθμό του CD, ο οποίος είναι και το Μοναδικό Αναγνωριστικό (Unique Identifier, UID) της οντότητας CD. Οπότε αυτή η οντότητα βρίσκεται στην Πρώτη Κανονική Μορφή (First Normal Form, 1NF) και στη Δεύτερη Κανονική Μορφή (Second Normal Form, 2NF). Αλλά η διεύθυνση του καταστήματος εξαρτάται επίσης από το όνομα του καταστήματος, το οποίο είναι ένα μη Μοναδικού Αναγνωριστικού (non-unique Identifier, CD non-uid) πεδίο. Αυτό είναι ένα παράδειγμα μιας μεταβατικής εξάρτησης και μιας παραβίασης της Τρίτης Κανονικής Μορφής. * τίτλος * παραγωγός * χρονιά Παραβίαση Τρίτης Κανονικής Μορφής Εμπεριέχεται σε CD * τίτλος * παραγωγός * χρονιά o όνομα καταστήμ. o διεύθυνση καταστήμ περιέχει ΚΑΤΑΣΤΗΗΜΑ # αριθμός * διεύθυνση Το σωστά κανονικοποιημένο μοντέλο παρουσιάζεται εδώ: έχετε δημιουργήσει μια δεύτερη οντότητα ΚΑΤΑΣΤΗΜΑ (STORE), με μία σχέση προς το CD. Τρίτη Κανονική Μορφή 5 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Third Normal Form Example Θεωρήστε ένα σύστημα το οποίο παρακολουθεί πληροφορίες σχετικά με τις πόλεις μέγεθος, πληθυσμός, δήμαρχος, κτλ.. Το πρώτο μοντέλο δείχνει μία οντότητα η οποία περιλαμβάνει πληροφορίες της πολιτείας. Αν και η πολιτεία είναι ένα πεδίο της πόλης, το λουλούδι της πολιτείας είναι στην πραγματικότητα ένα πεδίο της πολιτείας. Το δεύτερο μοντέλο, με μια νέα οντότητα την ΠΟΛΙΤΕΙΑ (STATE), είναι στην Τρίτη Κανονική Μορφή. Παραβίαση Τρίτης Κανονικής Μορφής Τρίτη Κανονική Μορφή ΠΟΛΗ * μέγεθος * πληθυσμός * δήμαρχος * πολιτεία * λουλούδι πολιτείας ΠΟΛΗ * μέγεθος * πληθυσμός * δήμαρχος in have ΠΟΛΙΤΕΙΑ * λουλούδι 6 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Δεύτερο Παράδειγμα Τρίτης Κανονικής Μορφής Στο παράδειγμα αυτό, ας υποθέσουμε τον εξής επιχειρησιακό κανόνα: κάθε εργαζόμενος μπορεί να έχει ένα συνεργάτη. Το μοντέλο αυτό παραβιάζει τη Τρίτη Κανονική Μορφή επειδή η ημερομηνία γέννησης του συνεργάτη είναι ένα πεδίο του συνεργάτη, όχι του ΕΡΓΑΖΟΜΕΝΟΣ (EMPLOYEE). Ένας άλλος τρόπος δήλωσης της Τρίτης Κανονικής Μορφής: μη Μοναδικού Αναγνωριστικού (non-uid, non-unique IDentifier) πεδία δεν μπορούν να έχουν δικά τους πεδία. ΕΡΓΑΖΟΜΕΝΟΣ * διεύθυνση * τόπος γέννησης o όνομα συνεργάτη o ημερομηνία γέννησης συνεργάτη ΤΜΗΜΑ # αριθμός Μέρος του * προϋπολογισμός Αποτελείται από Παραβίαση Τρίτης Κανονικής Μορφής 7 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Λύση Δεύτερου Παραδείγματος Τρίτης Κανονικής Μορφής (Third Normal Form, 3NF) Το μοντέλο αυτό υποστηρίζει τη Τρίτη Κανονική Μορφή επειδή η ημερομηνία γέννησης του συνεργάτη είναι ένα πεδίο του συνεργάτη, όχι του ΕΡΓΑΖΟΜΕΝΟΣ (EMPLOYEE). ΕΡΓΑΖΟΜΕΝΟΣ * διεύθυνση * τόπος γέννησης Μέρος του Αποτελείται από ΤΜΗΜΑ # αριθμός * προϋπολογισμός Η 1:1 (μία-προς-μία) σχέση είναι προαιρετική προς το μέρος του ΕΡΓΑΖΟΜΕΝΟΣ (EMPLOYEE) επειδή μερικοί εργαζόμενοι δεν θα έχουν συνεργάτες. Είναι υποχρεωτική προς το μέρος του ΣΥΝΕΡΓΑΤΗΣ (PARTNER) επειδή οι πληροφορίες για έναν συνεργάτη παρακολουθούνται μόνο εάν αυτό το άτομο είναι ένα ενός και μοναδικού ΕΡΓΑΖΟΜΕΝΟΥ (EMPLOYEE). έχει ΣΥΝΕΡΓΑΤΗΣ # όνομα Το εξαρτώμενο από * ημερομηνία γέννησης Τρίτη Κανονική Μορφή 8 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Ορολογία Λέξεις κλειδιά που χρησιμοποιήθηκαν στο μάθημα αυτό: Τρίτη Κανονική Μορφή (Third Normal Form, 3NF) Μεταβατική εξάρτηση (Transitive dependency) 9 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Περίληψη Στο μάθημα αυτό, θα πρέπει να έχετε μάθει πως να: Προσδιορίζετε τις μεταβατικές εξαρτήσεις σε ένα μοντέλο δεδομένων Καθορίζετε τον κανόνα της Τρίτης Κανονικής Μορφής κατά τη διαδικασία κανονικοποιήσης Εξετάζετε μία μη εξομαλυμένη (non-normalized) οντότητα και να καθορίζετε ποιος κανόνας, ή κανόνες κανονικοποιήσης παραβιάζονται Εφαρμόζετε τον κανόνα της Τρίτης Κανονικής Μορφής για την επίλυση μίας παραβίασης στο μοντέλο 10 Copyright 2013, Oracle and/or its affiliates. All rights reserved.