Σχεδίαση Βάσεων Δεδομένων Δεύτερη Κανονική Μορφή Second 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.
Παράδειγμα Δεύτερης Κανονικής Μορφής Εξετάστε την οντότητα ΠΡΟΜΗΘΕΥΤΗΣ ΠΡΟΪΟΝΤΩΝ (PRODUCT SUPPLIER). Το Μοναδικό Αναγνωριστικό (Unique Identifier, UID) είναι ένα σύνθετο Μοναδικό Αναγνωριστικό (UID) το οποίο αποτελείται από τον αριθμό προμηθευτή (supplier number) και τον αριθμό προϊόντος (product number). PRODUCT SUPPLIER # supplier number # product number * purchase price * supplier name Εάν ένας προμηθευτής προμηθεύσει 5 διαφορετικά προϊόντα, τότε δημιουργούνται 5 διαφορετικές εγγραφές. Τι συμβαίνει όταν το όνομα του προμηθευτή αλλάζει; Το όνομα του προμηθευτή θα έπρεπε να αλλάξει σε 5 διαφορετικές εγγραφές. Τι θα γινόταν εάν κάποια από αυτά άλλαζαν και κάποια όχι; Πως θα ήξεραν οι χρήστες ποιο όνομα είναι το σωστό όνομα; 4 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Περιγραφή Δεύτερης Κανονικής Μορφής Η Δεύτερη Κανονική Μορφή (Second Normal Form, 2NF) απαιτεί το κάθε πεδίο μη μοναδικού αναγνωριστικού (non-unique IDentifier) να εξαρτάται από (να αποτελεί ιδιότητα, ή ένα χαρακτηριστικό) ολόκληρο το Μοναδικού Αναγνωριστικό (UID). PRODUCT SUPPLIER # supplier number # product number * purchase price * supplier name Αποτελεί η τιμή αγοράς (purchase price) μία ιδιότητα του αριθμού προμηθευτή (supplier number), του αριθμού προϊόντος (product number), ή και των δύο; Αποτελεί το όνομα προμηθευτή (supplier name) μία ιδιότητα του αριθμού προμηθευτή (supplier number), του αριθμού προϊόντος (product number), ή και των δύο; Η Δεύτερη Κανονική Μορφή (Second Normal Form, 2NF) απαιτεί την απάντηση «και των δύο», στη κάθε ερώτηση. 5 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Σχέση Ασθενούς Οντότητας Δεύτερης Κανονικής Μορφής Το Μοναδικό Αναγνωριστικό (UID) για το ΛΟΓΑΡΙΑΣΜΟΣ (ACCOUNT) είναι ένα σύνθετο Μοναδικό Αναγνωριστικό (UID) από μια σχέση ασθενούς οντότητας, η οποία αποτελείται από το αριθμός ΛΟΓΑΡΙΑΣΜΟΥ (ACCOUNT number) και του αριθμού ΤΡΑΠΕΖΑΣ (BANK number). Αποτελεί το υπόλοιπο (balance) ιδιότητα του αριθμού ΛΟΓΑΡΙΑΣΜΟΥ (ACCOUNT number) του αριθμού ΤΡΑΠΕΖΑΣ (BANK number), ή και των δύο; Αποτελεί η ημερομηνία ανοίγματος (date opened) μία ιδιότητα του αριθμός ΛΟΓΑΡΙΑΣΜΟΥ (ACCOUNT number), του αριθμός ΤΡΑΠΕΖΑΣ (BANK number), ή και των δύο; ACCOUNT # number * balance BANK # number * name * date opened 6 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Παραβίαση Δεύτερης Κανονικής Μορφής Σε αυτό το Διάγραμμα Συσχετίσεων Οντοτήτων (Entity Relationship Diagram, ERD), έχει προστεθεί το πεδίο τοποθεσία τράπεζας (bank location). Αποτελεί η τοποθεσία τράπεζας (bank location) μία ιδιότητα του αριθμού ΛΟΓΑΡΙΑΣΜΟΥ (ACCOUNT number), του αριθμού ΤΡΑΠΕΖΑΣ (BANK number), ή και των δύο; Αποτελεί μία ιδιότητα του αριθμού ΤΡΑΠΕΖΑΣ (BANK number) και μόνο και ως εκ τούτου έχει τοποθετηθεί λάθος. Αυτό είναι μία παραβίαση της Δεύτερης Κανονικής Μορφής. Τι θα συνέβαινε εάν άλλαζε η τοποθεσία τράπεζας (bank location); Κάθε λογαριασμός (account) στη τράπεζα αυτή θα έπρεπε να ενημερωθεί. ACCOUNT # number * balance BANK # number * name * date opened * bank location 7 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Παράδειγμα Τραγουδιού Δεύτερης Κανονικής Μορφής Ο DJ είναι υπεύθυνος για την προετοιμασία της συλλογής των τραγουδιών που θα παιχτούν στη κάθε εκδήλωση (EVENT). Κάθε ΤΡΑΓΟΥΔΙ (SONG) μπορεί να παιχτεί σε παραπάνω από μία ΕΚΔΗΛΩΣΗ (EVENT), και κάθε ΕΚΔΗΛΩΣΗ (EVENT) θα «παίξει» παραπάνω από ένα ΤΡΑΓΟΥΔΙΑ (SONG). Ας δούμε πως ο DJ προετοιμάζει την play list. PLAY LIST ITEM o comments o duration * event date EVENT # id * cost * name o description SONG # id * title o artist 8 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Τροποποιημένο Διάγραμμα Συσχετίσεων Οντοτήτων (ERD) του DJ PLAY LIST ITEM o comments o duration * event date Τι λάθος υπάρχει με το διάγραμμα αυτό; Απάντηση: Η διάρκεια του πεδίου (attributes duration) και η ημερομηνία της εκδήλωσης (event date) έχουν τοποθετηθεί σε λάθος θέση. Η διάρκεια (duration) εξαρτάται αποκλειστικά από το ΤΡΑΓΟΥΔΙ (SONG), και η ημερομηνία της εκδήλωσης (event date) εξαρτάται αποκλειστικά από το ΕΚΔΗΛΩΣΗ (EVENT). Αυτό αποτελεί μία παραβίαση της Δεύτερης Κανονικής Μορφής. EVENT # id * cost * name o description SONG # id * title o artist 9 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Ορολογία Λέξεις κλειδιά που χρησιμοποιήθηκαν στο μάθημα αυτό;: Δεύτερη Κανονική Μορφή (Second Normal Form, 2NF) 10 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Περίληψη Στο μάθημα αυτό, θα πρέπει να έχετε μάθει πως να: Προσδιορίζετε τον κανόνα της Δεύτερης Κανονικής Μορφής κατά τη διαδικασία της Κανονικοποιήσης Εξετάζετε μία μη κανονικοποιημένη οντότητα και να καθορίζετε ποιος κανόνας, ή κανόνες της Κανονικοποιήσης παραβιάζονται Εφαρμόζετε τον κανόνα της Δεύτερης Κανονικής Μορφής για την επίλυση μιας παραβίασης στο μοντέλο 11 Copyright 2013, Oracle and/or its affiliates. All rights reserved.