Professional Documents
Culture Documents
Kanonikopoiisi
Kanonikopoiisi
ΑΝΩΜΑΛΙΕΣ
Αν βγει ένα νέο μοντέλο ipod η επιχείρηση θα πρέπει να βρει και ένα προμηθευτή
διαφορετικά δεν μπορεί να κάνει νέα εγγραφή στον πίνακα. Αν δεν υπάρχει
προμηθευτής, το πρωτεύον κλειδί θα είναι null, όπερ άτοπον. (ανωμαλία
εισαγωγής)
Αν η Δυο ΟΕ κλείσει και δεν υπάρχει πια και σβηστεί η σχετική εγγραφή, τότε
σβήνεται και το αντίστοιχο εμπόρευμα αφού μόνο από αυτούς το αγοράζουμε.
(ανωμαλία διαγραφής)
ΒΗΜΑΤΑ ΚΑΝΟΝΙΚΟΠΟΙΗΣΗΣ
Απαλοιφή επαναλαμβανόμενων ομάδων (1st Normal Form)
Επομένως ένας πίνακας είναι σε πρώτη κανονική μορφή όταν δεν περιλαμβάνει
επαναλαμβανόμενες ομάδες, δηλαδή πεδία που για κάθε εγγραφή έχουν πολλές
τιμές, αντί μίας και μόνης. Κάτι τέτοιο δεν επιτρέπεται στις σχεσιακές βάσεις
δεδομένων.
Εδώ υπάρχει όμως το πρόβλημα της μερικής εξάρτησης. Μερική εξάρτηση υπάρχει
όταν ένα πεδίο που δεν είναι κλειδί εξαρτάται όχι από το σύνολο αλλά από μέρος
του πρωτεύοντος κλειδιού. Τέτοια είναι τα πεδία ΟνομαΠρομηθευτή,
ΔιεύθυνσηΠρομηθευτή, ΟνομαΕπαφής, ΤηλΠρομηθευτή. Επομένως ο πίνακας
πρέπει να αποσυντεθεί σε δύο άλλους πίνακες: Προμηθευτές 2 ( ΑΑΠρομηθευτή,
ΟνομαΠρομηθευτή, ΔιεύθυνσηΠρομηθευτή, ΟνομαΕπαφής, ΤηλΠρομηθευτή), και
Προμηθευτές_Χ_Απόθεμα ( ΑΑΠρομηθευτήΑΑΕμπορευματος,
ΤιμηΜοναδοςΕμπορευματος)
Επομένως ένας πίνακας είναι σε δεύτερη κανονική μορφή όταν είναι σε 1NF και
κάθε πεδίο που δεν ανήκει στο πρωτεύον κλειδί εξαρτάται από όλα τα μέρη του
πρωτεύοντος κλειδιού του πίνακα.
Επομένως ένας πίνακας είναι σε τρίτη κανονική μορφή όταν είναι σε 2NF και κάθε
πεδίο που δεν ανήκει στο πρωτεύον κλειδί δεν εξαρτάται έμμεσα απ' αυτό. Αυτό
σημαίνει, ότι δεν έχει ούτε ένα πεδίο εκτός πρωτεύοντος κλειδιού, το οποίο να
εξαρτάται από άλλο πεδίο εκτός πρωτεύοντος κλειδιού.
Η μορφή 3NF (ή η μορφή BCNF ακόμη καλύτερα) είναι ο στόχος της διαδικασίας
κανονικοποίησης και οι προηγούμενες μορφές μόνο σαν ενδιάμεσοι στόχοι πρέπει
να εννοηθούν (αν και όπως προαναφέρθηκε απόλυτα απαραίτητη είναι μόνο η
1NF).
Ένας πίνακας είναι σε μορφή Boyce - Codd όταν κάθε πεδίο του από το οποίο εξαρτάται
κάποιο άλλο πεδίο του ίδιου πίνακα ανήκει στο πρωτεύον κλειδί αυτού του πίνακα (ή
ανήκει σε ένα συνδυασμό κλειδιών που θα μπορούσε να είχε χρησιμοποιηθεί σαν
πρωτεύον κλειδί, αφού μερικές φορές συμβαίνει να υπάρχουν δυο και τρεις συνδυασμοί
που ορίζουν μονοσήμαντα κάθε εγγραφή). Έχει αποδειχτεί το εξής θεώρημα:
Ένας πίνακας σε BCNF είναι και σε 3NF, αλλά δεν ισχύει πάντα και το αντίστροφο.
ΣΥΝΟΠΤΙΚΑ
Επομένως ένας πίνακας είναι σε πρώτη κανονική μορφή (1NF, first normal form) όταν δεν
περιέχει επαναλαμβανόμενες ομάδες (πεδία με πολλαπλές τιμές). Είναι σε δεύτερη
κανονική μορφή (2NF) όταν είναι ήδη δε πρώτη κανονική μορφή και επιπλέον κάθε πεδίο
που δεν είναι κλειδί, εξαρτάται πλήρως από το πρωτεύον κλειδί. Είναι σε τρίτη κανονική
μορφή (3NF ) όταν είναι ήδη σε δεύτερη κανονική μορφή και όλα τα πεδία που δεν
αποτελούν κλειδιά είναι ανεξάρτητα μεταξύ τους (δεν υπάρχει μεταβατική εξάρτηση). Ένας
πίνακας στην Τρίτη κανονική μορφή δεν θα παρουσιάζει ανωμαλίες στην εγγραφή,
ενημέρωση και διαγραφή.