Κανονικές Μορφές 8ο Φροντιστήριο. Βάρσος Κωνσταντίνος

Σχετικά έγγραφα
Κανονικές Μορφές 8ο Φροντιστήριο. Βάρσος Κωνσταντίνος


Αρχεία και Βάσεις Δεδομένων Φροντιστήριο Κανονικές Μορφές

Κανονικές Μορφές Σχεδιασµός Σχεσιακών Σχηµάτων

Συναρτησιακές Εξαρτήσεις και Κανονικοποίηση

Copyright 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley, ΕλληνικήΈκδοση, ίαυλος

Κανονικοποίηση Σχήµατος. Βάσεις εδοµένων Ευαγγελία Πιτουρά 1

Κανονικές Μορφές. Αποσύνθεση (decomposition)

Συναρτησιακές Εξαρτήσεις 7ο Φροντιστήριο. Βάρσος Κωνσταντίνος

Lecture 23: Functional Dependencies and Normalization

Κανονικές Μορφές. Βάσεις Δεδομένων : Κανονικές Μορφές. ηλαδή, i = 1,.., n R i R. Σύντομη επανάληψη αποσύνθεσης.

Θεωρία Κανονικοποίησης

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

Διδάσκων: Παναγιώτης Ανδρέου

Βάσεις εδοµένων. Συναρτησιακές Εξαρτήσεις (Functional Dependencies) Σχεδιασµός Βάσεων εδοµένων και. Κανονικοποίηση.

Λογικός Σχεδιασµός Σχεσιακών Σχηµάτων

Συναρτησιακές Εξαρτήσεις 7ο Φροντιστήριο. Βάρσος Κωνσταντίνος

καλών σχεσιακών σχημάτων

Κανονικοποίηση. Άτυπες Οδηγίες. Παράδειγµα. Αξιολόγηση Σχεσιακών Σχηµάτων Β. Περιττές Τιµές και Ανωµαλίες Ενηµέρωσης


Σχεδιασµός Σχεσιακών Σχηµάτων

Σχεδιασµός Σχεσιακών Σχηµάτων

Σχεσιακό Μοντέλο Τα πρώτα συστήµατα Βάσεων δεδοµένων ήταν βασισµένα στο ιεραρχικό ή στο δικτυακό µοντέλο δεδοµένων. Το σχεσιακό µοντέλο πρωτοπαρουσιάσ

Κανονικές Μορφές. Συνενώσεις Άνευ Απωλειών. Προσοχή με τις τιμές null στην αποσύνθεση

Κανονικοποίηση Σχεδιασμός Βάσεων Δεδομένων Μαρία Χαλκίδη

Κανονικοποίηση. Σημασιολογία Γνωρισμάτων. Άτυπες Οδηγίες. Παράδειγμα. Αξιολόγηση Σχεσιακών Σχημάτων ΒΔ. Περιττές Τιμές και Ανωμαλίες Ενημέρωσης

Βάσεις δεδομένων. (9 ο μάθημα) Ηρακλής Βαρλάμης

ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων:. Πλεξουσάκης

Βάσεις Δεδομένων Συναρτησιακές Εξαρτήσεις (Functional Dependencies) Σχεδιασμός Βάσεων Δεδομένων και Κανονικοποίηση

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων

Σχεδίαση Β.Δ. (Database Design)

Κανονικοποίηση Σχήµατος

Σχεσιακό Μοντέλο Περιορισμοί Μετατροπή ER σε Σχεσιακό Παράδειγμα.. Εργαστήριο Βάσεων Δεδομένων. Relational Model

Βάσεις εδοµένων. Βασίλειος Βεσκούκης, Εµµ. Στεφανάκης. Το µοντέλο Οντοτήτων Συσχετίσεων Το Σχεσιακό Μοντέλο εδοµένων

Κανονικοποίηση. Παύλος Εφραιμίδης. Βάσεις Δεδομένων Κανονικοποίηση 1

Λογικός Σχεδιασμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Λογικός Σχεδιασμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Λογικός Σχεδιασμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Συναρτησιακές και Πλειότιµες Εξαρτήσεις

Κανονικές Μορφές. Τι συμβαίνει με το (πρωτεύον) κλειδί και τις συναρτησιακές εξαρτήσεις; Παράδειγμα 1. Παράδειγμα 2

Λογικός Σχεδιασμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Συναρτησιακές Εξαρτήσεις. Βάσεις εδοµένων Ευαγγελία Πιτουρά 1

Λογικός Σχεδιασµός Σχεσιακών Σχηµάτων: Αποσύνθεση. Βάσεις εδοµένων Ευαγγελία Πιτουρά 1

Πανεπιστήμιο Κρήτης Τμήμα Επιστήμης Υπολογιστών Κανονικές Μορφές (Normal Forms)

Εργαστήριο Βάσεων Δεδομένων. Relational Model Σχεσιακό Μοντέλο

καλών σχεσιακών σχημάτων

ΗΥ360 Αρχεία και Βάσεις Δεδομένων

Άσκηση 2 - Κεχρής, Κεφάλαιο 8: Κανονικοποίηση

Συναρτησιακές Εξαρτήσεις

Εισαγωγή στις Βάσεις Δεδομζνων II

Συναρτησιακές Εξαρτήσεις

Κλείσιμο Συνόλου Γνωρισμάτων

Μετατροπή Σχήµατος Ο/Σ σε Σχεσιακό

Αρχεία και Βάσεις Δεδομένων

Σχεσιακό Μοντέλο. Εισαγωγή. Βάσεις εδοµένων : Σχεσιακό Μοντέλο 1

Σχεδιασµός µιας Β. Ένας απλός τρόπος αναπαράστασης δεδοµένων: ένας διδιάστατος πίνακας που λέγεται σχέση Γνωρίσµατα

Βάσεις Δεδομένων. Ενότητα 5: ΚΑΝΟΝΙΚΟΠΟΙΗΣΗ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ. Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών σπουδών

Βάσεις εδοµένων Βασίλειος Βεσκούκης Κανονικοποίηση σχήµατος Β Σύνοψη

Βάσεις Δεδομένων Ενότητα 7

Σχεσιακές Βάσεις Δεδομένων

Πεδία (Attributes) Συσχετίσεις (Relationships) Κλειδιά (Identifiers) Οντότητες είναι υποψήφια αρχεία

Αρχεία και Βάσεις Δεδομένων

2η ΔΙΑΛΕΞΗ Συναρτησιακές εξαρτήσεις

Λογικός Σχεδιασμός Σχεσιακών Σχημάτων: Αποσύνθεση

Εκπαιδευτικό Εργαλείο Κανονικοποίησης


Κεφάλαιο 4 Λογικός Σχεδιασµός Κανονικοποίηση

Κεφάλαιο 8. ΣΧΕ ΙΑΣΜΟΣ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΚΑΙ ΚΑΝΟΝΙΚΟΠΟΙΗΣΗ (Normalization) Ι.Β Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση Σελίδα 4.1

Βάσεις Δεδομένων : Λογικός Σχεδιασμός 1. καλών σχεσιακών σχημάτων. Λογικός Σχεδιασμός Σχεσιακών Σχημάτων. Γενικές Κατευθύνσεις.

Διδάσκων: Παναγιώτης Ανδρέου

Lecture 24: Functional Dependencies and Normalization IV

Σχεδιασµός µιας Β. Εισαγωγή. Μετατροπή σε σχεσιακό -> είσοδο σε ένα Σ Β. Εισαγωγή. Ιδέες Ο/Σ Σχέσεις Σχεσιακό Σ Β

Εισαγωγή. Σχεδιασµός µιας Β

Σχεδιασμός μιας εφαρμογής ΒΔ: Βήματα. 1. Συλλογή και Ανάλυση Απαιτήσεων(requirement analysis)

Βάσεις Δεδομένων. Ενότητα 6: Κανονικοποίηση. Αθανάσιος Σπυριδάκος Τμήμα Διοίκησης Επιχειρήσεων

Σχεσιακό Μοντέλο. Σχεδιασμός Βάσεων Δεδομένων Μάθημα 2 ο Μαρία Χαλκίδη

Θέματα ανακεφαλαίωσης

Κεφάλαιο 4 Σχεδίαση Βάσεων Δεδομένων

Μοντέλο Οντοτήτων-Συσχετίσεων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

Συναρτησιακές Εξαρτήσεις Σχεδιασμός Βάσεων Δεδομένων

Πληροφοριακού Συστήματος Ενημέρωσης Καιρικών Συνθηκών

Λογικός Σχεδιασμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Σχεσιακή δοµή δεδοµένων


Βάσεις Δεδομένων Ι Θεωρία Σχεδίασης ΣΒΔ. (Σχεσιακών Βάσεων Δεδομένων) Α' Μέρος. Φώτης Κόκκορας (MSc/PhD) Τμήμα Μηχανικών Πληροφορικής ΤΕ

Μοντέλο Οντοτήτων-Συσχετίσεων

Το Σχεσιακό Μοντέλο 2

BΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΞΕΤΑΣΗ ΦΕΒΡΟΥΑΡΙΟΥ 2005

Σχεσιακό Μοντέλο Δεδομένων

Ένας απλός τρόπος αναπαράστασης δεδομένων: ένας διδιάστατος πίνακας που λέγεται σχέση Γνωρίσματα

ΠΕΛΑΤΗΣ ΠΑΡΑΓΓΕΛΙΑ ΠΡΟΪΟΝ

ΣΧΕΣΙΑΚΕΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ

Ένας απλός τρόπος αναπαράστασης δεδομένων: ένας διδιάστατος πίνακας που λέγεται σχέση Γνωρίσματα

Εισαγωγή στις Βάσεις Δεδομζνων II

Αρχεία και Βάσεις Δεδομένων

Συναρτησιακές Εξαρτήσεις

Βάσεις Δεδομένων : Σχεσιακό Μοντέλο 1. Ένας απλός τρόπος αναπαράστασης δεδομένων: ένας διδιάστατος πίνακας που λέγεται σχέση.

ΕΝ ΕΙΚΤΙΚΗ ΛΥΣΗ ΚΑΙ ΣΧΟΛΙΑ ΣΤΗΝ ΠΡΩΤΗ ΑΣΚΗΣΗ ΣΧΕ ΙΑΣΜΟΙ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ

1 Συνοπτική ϑεωρία. 1.1 Νόµοι του Προτασιακού Λογισµού. p p p. p p. ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Τµήµα Επιστήµης Υπολογιστών

Transcript:

ΗΥ-360 Αρχεια και Βασεις εδοµενων Τµηµα Επιστηµης Υπολογιστων Πανεπιστηµιο Κρητης Κανονικές Μορφές Βάρσος Κωνσταντίνος 23 Νοεµβρίου 2018 ιατήρηση Εξαρτήσεων Εστω F ένα σύνολο από συναρτησιακές εξαρτήσεις στο R και {R 1 R 2... R n } µια αποσύνθεση του R. Ορισµός 1. F i περιορισµός του F στο R i είναι το σύνολο των συναρτησιακών εξαρτήσεων του F + που περιέχουν µόνο γνωρίσµατα του R i. Εστω F = F 1 F 2... F n η αποσύνθεση είναι µια αποσύνθεση που διατηρεί τις εξαρτήσεις αν F + = F +. Παράδειγµα. Εστω το σχήµα σχέσης R = (A B C D) και το σύνολο συναρτησιακών εξαρτήσεων A C B C B A Εστω η αποσύνθεση F 1 (A C) και F 2 (A B D). Να αποδειχθεί ότι µια αποσύνθεση διατηρεί τις εξαρτήσεις. Λύση. Η αποσύνθεση ϑα πρέπει να διατηρεί την εξάρτηση δηλαδή (F 1 F 2... F n ) + = F +. Οπότε F + = {A C B C B A B AC} και (F 1 F 2 ) + = {A C B C B A B AC}. Εποµένως (F 1 F 2 ) + = F +. Κανονικοποίηση Ορισµός 2. Κανονικοποίηση είναι µια διαδικασία µετατροπής δεδοµένων που έχουν παραπάνω από µια πιθανές αναπαραστάσεις σε µια τυπική ή κανονική µορφή. Προσπαθούµε δηλαδή να µετασχηµατίσουµε ένα σχεσιακό σχήµα σε µια νέα µορφή η οποία είναι απαλλαγµένη από ανωµαλίες εισαγωγής διαγραφής και τροποποίησης εγγράφων. π.χ. Εχουµε τις παρακάτω καταγραφές Υ_ID Ε_ID Υ_Επώνυµο Ε_ Ονοµα Ε_Τόπος Ωρες ΑΗ 123456 123 Νικολάου Γέφυρα Πάτρα 34 ΑΗ 234567 56 Παπαδόπουλος Γήπεδο Ξάνθη 28 ΑΖ 345678 123 Νικολάου Γέφυρα Πάτρα 5 ΑΚ 123456 34 Κανάκη Πλατεία Ιωάννινα 76 ΑΗ 123458 56 Κούκος Γήπεδο Ξάνθη 56 Παρατηρούµε ότι όταν διαγραφεί ένα έργο ϑα έχει ως αποτέλεσµα να διαγραφούν οι εργαζόµενοι σε αυτό (ανω- µαλία διαγραφής). Ορισµός 3. Μια συναρτησιακή εξάρτηση (ΣΕ) X Y καλείται πλήρης (ή ολική full) όταν A X : X {A} Y αλλιώς καλείται µερική ( partial). 1

ηλαδή εάν αφαιρέσουµε κάποιο γνώρισµα από το X και η (ΣΕ) X Y παύει να ισχύει τότε λέγεται πλήρης αν εξακολουθεί να ισχύει λέγεται µερική. π.χ. Εξετάζοντας τον προηγούµενο πίνακα παρατητούµε ότι Στην σχέση {Υπάλληλος_ID Εργο_ID} Ωρες αν αφαιρέσουµε το Εργο_ID η (ΣΕ) {Υπάλληλος_ID Ωρες} δεν ισχύει. Επίσης αν αφαιρέσουµε το γνώρισµα {Υπάλληλος_ID} Ωρες δεν ισχύει. Στην σχέση {Υπάλληλος_ID Εργο_ID} Υπάλληλος_ID αν αφαιρέσουµε το Εργο_ID η (ΣΕ) {Υπάλληλος_ID} Υπάλληλος_ID εξακολουθεί να ισχύει. Κανονικές Μορφές Ορισµός 4. Κανονική µορφή ( Normal form) καλείται µία κλάση σχέσεων απαλλαγµένων από συγκεκριµένα προβλήµατα τροποποιήσεων. Οι κανονικές µορφές αποτελούν ένα µεθοδολογικό πλαίσιο για ανάλυση σχηµάτων µε ϐάση τα κλειδιά και τις συναρτησιακές εξαρτήσεις και έχουν ονόµατα όπως : Πρώτη κανονική µορφή (1NF) εύτερη κανονική µορφή (2NF) Τρίτη κανονική µορφή (3NF) Boyce-Codd κανονική µορφή (BCNF) Η πρώτη κανονική µορφή (1NF) είναι κρίσιµη για το σχεσιακό µοντέλο ενώ οι υπόλοιπες είναι προαιρετικές. Αν ένας πίνακας ϐρίσκεται σε µια κανονική µορφή τότε ϐρίσκεται και σε όλες τις προηγούµενες. Η 2NF η 3NF και η κανονική µορφή Boyce-Codd (BCNF) ϐασίζονται στις συναρτησιακές εξαρτήσεις µεταξύ των κλειδιών (πρωτεύοντα ή υποψήφια). 1η Κανονική Μορφή ή 1NF - 1st Normal Form. Για να ϕέρουµε ένα πίνακα σε 1NF ϑα πρέπει να αποµακρύνουµε τις επαναλαµβανόµενες οµάδες πεδίων έτσι ώστε η τοµή µιας γραµµής και µιας στήλης του πίνακα να αντιστοιχεί πάντα σε µια απλή τιµή. Η 1NF ϑεωρείται τµήµα του τυπικού ορισµού µιάς σχέσης και ορίζει ότι τα χαρακτηριστικά περιλαµβάνουν µόνο ατοµικές τιµές. Κάθε εγγραφή πρέπει να είναι µοναδική. Αυτό το διασφαλίζει το πρωτεύον κλειδί. εν υπάρχουν συνθετικά χαρακτηριστικά. εν υπάρχουν χαρακτηριστικά πολλαπλών τιµών. π.χ. Ο πίνακας 2

ID Επώνυµο Ονοµα ιεύθυνση Hobby ΑΗ 123456 Νικολάου Κώστας Αλαµάνας 20 75400 Cart Bowling ΑΗ 234567 Παπαδόπουλος Γιώργος Ελ. Βενιζέλου 36Α 13410 Sailing ΑΖ 345678 Νικολάου Μιχάλης Λ. ηµοκρατίας 12 71409 Basketball Music ΑΚ 123456 Κανάκη Χαρούλα Σουλίου 36 35410 Trekking Canyoning δεν είναι 1NF. Ωστόσο η µετατροπή κάθε πλειάδα διασπάστηκε σε περισσότερες (1 πλειάδα για κάθε διαφορετική τιµή του πλειότιµου γνωρίσµατος) του στον ID Επώνυµο Ονοµα _Οδός _Αριθµός _ΤΚ Hobby ΑΗ 123456 Νικολάου Κώστας Αλαµάνας 20 75400 Cart ΑΗ 123456 Νικολάου Κώστας Αλαµάνας 20 75400 Bowling ΑΗ 234567 Παπαδόπουλος Γιώργος Ελ. Βενιζέλου 36Α 13410 Sailing ΑΖ 345678 Νικολάου Μιχάλης Λ. ηµοκρατίας 12 71409 Basketball ΑΖ 345678 Νικολάου Μιχάλης Λ. ηµοκρατίας 12 71409 Music ΑΚ 123456 Κανάκη Χαρούλα Σουλίου 36 35410 Trekking ΑΚ 123456 Κανάκη Χαρούλα Σουλίου 36 35410 Canyoning είναι 1NF όµως έχουµε επανάληψη πληροφορίας. Συνεχίζουµε µε διάσπαση σε περισσότερους πίνακες για τα πλειότιµα γνωρίσµατα. ID Επώνυµο Ονοµα _Οδός _Αριθµός _ΤΚ ΑΗ 123456 Νικολάου Κώστας Αλαµάνας 20 75400 ΑΗ 234567 Παπαδόπουλος Γιώργος Ελ. Βενιζέλου 36Α 13410 ΑΖ 345678 Νικολάου Μιχάλης Λ. ηµοκρατίας 12 71409 ΑΚ 123456 Κανάκη Χαρούλα Σουλίου 36 35410 ID ΑΗ 123456 ΑΗ 123456 ΑΗ 234567 ΑΖ 345678 ΑΖ 345678 ΑΚ 123456 ΑΚ 123456 Hobby Cart Bowling Sailing Basketball Music Trekking Canyoning 2η Κανονική Μορφή ή 2NF - 2nd Normal Form. Για να ϕέρουµε ένα πίνακα σε 2NF ϑα πρέπει πρώτα να τον ϕέρουµε σε 1η κανονική µορφή και στην συνέχεια να αποµακρύνουµε όλες τις µερικές συναρτησιακές εξαρτήσεις 1 που υφίστανται ανάµεσα στα πεδία του. Ολα τα πεδία που δεν ανήκουν στο πρωτεύον κλειδί του πίνακα εξαρτώνται συναρτησιακώς µόνο από τα πεδία του πρωτεύοντος κλειδιού. Η εξάρτηση εδώ είναι πλήρως συναρτησιακή. Άρα για να µετασχηµατίσουµε έναν πίνακα σε 2NF τον σπάµε σε µικρότερους ώστε τα πεδία που δεν ανήκουν στο πρωτεύον κλειδί να τοποθετηθούν µαζί µε τα πεδία του πρωτεύοντος κλειδιού µε τα οποία συσχετίζονται µέσω πλήρους συναρτησιακής εξάρτησης. ηλαδή δηµιουργούµε τόσους πίνακες όσες είναι και οι πλήρεις συναρτησιακές εξαρτήσεις (ffd) των πεδίων του πίνακα και τα τοποθετούµε σάυτούς. Τα πεδία δεν συµµετέχουν σε αυτές τις εξαρτήσεις. Συνεπώς έχουµε το σύνολο των περιορισµών i) Να είναι 1NF. ii) Κάθε γνώρισµα που δεν είναι µέρος ενός υποψήφιου κλειδιού εξαρτάται συναρτησιακά από ολόκληρο το κλειδί και όχι από ένα µέρος του. οι εξαρτήσεις της µορφής παραβιάζουν τη 2NF. Πρωτεύον γνώρισµα (µη-κλειδί) Μη πρωτεύον π.χ. 1 partial dependencies. 3

1.) Εχουµε τον πίνακα Υ_ID Ε_ID Υ_Επώνυµο Ε_ Ονοµα Ε_Τόπος Ωρες ΑΗ 123456 123 Νικολάου Γέφυρα Πάτρα 34 ΑΗ 234567 56 Παπαδόπουλος Γήπεδο Ξάνθη 28 ΑΖ 345678 123 Νικολάου Γέφυρα Πάτρα 5 ΑΚ 123456 34 Κανάκη Πλατεία Ιωάννινα 76 ΑΗ 123458 56 Κούκος Γήπεδο Ξάνθη 56 και τις πλήρεις συναρτησιακές εξαρτήσεις Y_ID E_ID Ωρες Y_ID YΕπώνυµο E_ID Eόνοµα Ετόπος Παρατηρούµε ότι δεν αποτελεί 2NF καθώς οι σχέσεις Y_ID YΕπώνυµο E_ID Eόνοµα Ετόπος είναι της µορφής Πρωτεύον γνώρισµα (µη-κλειδί) Μη πρωτεύον. Οι τρείς πλήρεις συναρτησιακές εξαρτήσεις οδηγούν στη δηµιουργία τριών πινάκων. Υ_ID ΑΗ 123456 ΑΗ 234567 ΑΖ 345678 ΑΚ 123456 ΑΗ 123458 Υ_Επώνυµο Νικολάου Παπαδόπουλος Νικολάου Κανάκη Κούκος Ε_ID Ε_ Ονοµα Ε_Τόπος 123 Γέφυρα Πάτρα 56 Γήπεδο Ξάνθη 34 Πλατεία Ιωάννινα Υ_ID Ε_ID Ωρες ΑΗ 123456 123 34 ΑΗ 234567 56 28 ΑΖ 345678 123 5 ΑΚ 123456 34 76 ΑΗ 123458 56 56 2) Εστω το σχήµα σε 1KM R = (α_ϕοιτητή α_µαθήµατος ο_ϕοιτητή ώρα_µαθήµατος α_κτιρίου) µε κλειδί [α_ϕοιτητή α_µαθήµατος] και {α_ϕοιτητή ο_ϕοιτητή α_µαθήµατος ώρα_µαθήµατος α_µαθήµατος α_κτιρίου}. Προχωράµε σε διάσπαση R 1 (α_ϕοιτητή ο_ϕοιτητή). R 2 (α_µαθήµατος ώρα_µαθήµατος α_κτιρίου). R 3 (α_ϕοιτητή α_µαθήµατος). 3) Εχουµε τον πίνακα C_ID S_ID Location 1 1 Los Angeles 1 3 San Francisco 2 1 Los Angeles 3 2 New York 4 3 San Francisco Εστω ότι έχει το σύνθετο κλειδί [C_ID S_ID]. Το Location (non-key attribute) εξαρτάται µόνο από το S_ID το οποίο είναι µέρος του κλειδιού. Άρα παραβιάζεται ο ορισµός της 2NF. Κάνουµε διάσπαση 4

C_ID S_ID 1 1 1 3 2 1 3 2 4 3 S_ID Location 1 Los Angeles 2 New York 3 San Francisco 3η Κανονική Μορφή ή 3NF - 3rd Normal Form. Για να ϕέρουµε ένα πίνακα σε 3NF ϑα πρέπει πρώτα να τον ϕέρουµε σε 2η κανονική µορφή και στην συνέχεια να αποµακρύνουµε όλες τις µεταβατικές συναρτησιακές εξαρτήσεις 2 που υφίστανται ανάµεσα στα πεδία του. Το σύνολο των περιορισµών για την 3NF είναι i) Να είναι 2NF. ii) εν υπάρχουν µεταβατικές εξαρτήσεις. Αν A B τότε δεν υπάρχει B C όπου B C µη πρωτεύοντα iii) εν εξαρτήσεις της µορφής Μη-πρωτεύον Μη-πρωτεύον π.χ. 1) Ο παρακάτω πίνακας µε τις συναρτησιακές εξαρτήσεις Υ_ID Τµήµα Υ_Επώνυµο Ε_Τοµέας Ε_Τόπος Ε_ εϋθ Α1 1 Νικολάου Λογιστήριο Πάτρα Α24 Α2 2 Παπαδόπουλος Πελάτες Ξάνθη C28 Β3 3 Κούκος Τεχνικό Πάτρα Α5 C24 4 Κανάκη Σχεδιαστήριο Ιωάννινα Β76 C26 2 Νικολάου Πελάτες Ξάνθη C28 Υ_ID Τµήµα Τµήµα Ε_Τοµέας Υ_ID Ε_Τοµέας εν είναι 3NF λόγω µεταβατικότητας Υ_ID Ε_Τοµέας. Τον µετατρέπουµε σε 3NF µεταβάλοντας κάθε σχέση να περιέχει µόνο εξαρτήσεις από υποψήφια κλειδιά ή το προσδιοριζόµενο να είναι µέρος κλειδιού. Εποµένως καταλήγουµε στην διάσπαση Υ_ID Τµήµα Υ_Επώνυµο Ε_Τόπος Α1 1 Νικολάου Πάτρα Α2 2 Παπαδόπουλος Ξάνθη Β3 3 Κούκος Πάτρα C24 4 Κανάκη Ιωάννινα C26 2 Νικολάου Ξάνθη Τµήµα Ε_Τοµέας Ε_ ιευθ. 1 Λογιστήριο Α24 2 Πελάτες C28 3 Τεχνικό Α5 4 Σχεδιαστήριο Β76 2) Εχουµε τον πίνακα 2 transitive dependencies. 5

Αρ.Παρ. Κ_Πελάτη Πόλη 123/2010 C142 Ηράκλειο 138/2010 C139 Θεσσαλονίκη 221/2010 C127 Πάτρα 253/2010 C139 Θεσσαλονίκη 391/2010 C142 Ηράκλειο µε τις συναρτησιακές εξαρτήσεις Αριθµός Παραγγελίας Κωδικός Πελάτη Κωδικός Πελάτη Πόλη Πελάτη Αριθµός Παραγγελίας Πόλη Πελάτη παρατηρούµε ότι υπάρχει η µεταβατικότητα Η µετατροπή σε 3NF οδηγεί στην διάσπαση Αριθµός Παραγγελίας Πόλη Πελάτη Κ_Πελάτη C142 C139 C127 Πόλη Ηράκλειο Θεσσαλονίκη Πάτρα Αρ.Παρ. Κ_Πελάτη 123/2010 C142 138/2010 C139 221/2010 C127 253/2010 C139 391/2010 C142 Ορισµός 5. Ενα σχεσιακό σχήµα R είναι σε Κανονική Μορφή Boyce-Codd (BCNF) σε σχέση µε ένα σύνολο F συναρτησιακών εξαρτήσεων αν για όλες τις (ΣΕ) στο F + της µορφής X Y ισχύει τουλάχιστον ένα από τα παρακάτω : i) X Y είναι µια τετριµµένη (ΣΕ) ή ii) X είναι υπερκλειδί (δηλαδή υποψήφιο κλειδί ή υπερσύνολο υποψήφιου κλειδιού) του σχήµατος R Η BCNF µπορεί να ϑεωρηθεί ως µια πιο αυστηρά διατυπωµένη 3NF. ηλαδή ένας πίνακας που ϐρίσκεται σε BCNF ϐρίσκεται αυτόµατα και σε 3NF το αντίστροφο δεν ισχύει. ηλαδή δεν πρέπει ένα χαρακτηριστικό να έχει συναρτησιακή εξάρτηση από ένα άλλο χαρακτηριστικό που δεν είναι (ή περιέχει) το κλειδί. Εποµένως το αριστερό µέλος κάθε µη τετριµµένης (ΣΕ) πρέπει να περιέχει ένα κλειδί δηλαδή το X να είναι υπερκλειδί του σχήµατος R. π.χ. Εστω R = {A B C D E F } µε κλειδί AB. Για να είναι BCNF επιτρέπονται µόνο οι εξαρτήσεις : AB AB AB A AB B ABC D ABCD F.... Απεναντίας δεν επιτρέπονται εξαρτήσεις όπως : A CD DE F BCD EF.... Αλγόριθµος ιάσπασης σε BCNF Για κάθε σχήµα σχέσης R Βρες µια µη τετριµµένη συνάρτησιακή εξάρτηση που παραβιάζει τον BCNF ορισµό. ιάσπαση του σχήµατος R σε δύο νέα έτσι ώστε : R 1 να έχει γνωρίσµατα τα X Y. R 2 να έχει γνωρίσµατα τα R Y. 6

π.χ. Τερµατίζει όταν δεν υπάρχουν σχήµατα σχέσεων που παραβιάζουν τον BCNF ορισµό. 1) Εχουµε το σχήµα σχέσης που περιγράφεται από τον πίνακα µε κλειδί BC και συναρτησιακές εξαρτήσεις A B C D Ε12 Σ12 Μ13 Α111 Ε12 Σ34 Μ13 Α111 Ε12 Σ65 Μ45 Α111 Ε28 Σ28 Μ67 Α678 Ε28 Σ71 Μ67 Α678 Ε67 Σ43 Μ35 Α904 {BC A A D} Παρατηρούµε ότι δεν είναι BCNF µάλιστα δεν είναι καν 3NF καθώς η εξάρτηση A D παραβιάζει τον ορισµό. Το διασπάµε σε δύο σχέσεις R 1 = (A B C) και R 2 = (A D) A B C Ε12 Σ12 Μ13 Ε12 Σ34 Μ13 Ε12 Σ65 Μ45 Ε28 Σ28 Μ67 Ε28 Σ71 Μ67 Ε67 Σ43 Μ35 A Ε12 Ε28 Ε67 D Α111 Α678 Α904 2) Εχουµε το σχήµα σχέσης που περιγράφεται από τον πίνακα µε κλειδί AB και συναρτησιακές εξαρτήσεις A B C D E F Π12 Σ1312 4060 ΥΚ13 Ω 450 Π14 Σ1434 230 ΥΚ14 720 Π78 Σ4565 4600 ΥΚ45 Ψ 316 Ε26 Σ6728 2670 ΥΚ67 Ξ 412 Ε67 Σ1371 13784 ΥΚ13 Ω 450 {D EF B CD} Παρατηρούµε ότι δεν είναι BCNF καθώς και οι δύο εξαρτήσεις παραβιάζουν τον ορισµό. Μετά από διάσπαση η εξάρτηση D EF οδηγεί στην διάσπαση του R σε R 1 και R 2 R 1 D E F ΥΚ13 Ω 450 ΥΚ14 720 ΥΚ45 Ψ 316 ΥΚ67 Ξ 412 R 2 A B C D Π12 Σ1312 4060 ΥΚ13 Π14 Σ1434 230 ΥΚ14 Π78 Σ4565 4600 ΥΚ45 Ε26 Σ6728 2670 ΥΚ67 Ε67 Σ1371 13784 ΥΚ13 7

Οµως η εξάρτηση B CD παραβιάζει τον BCNF ορισµό στην R 2. εξάρτηση Συναλλαγή B CD σε R 3 και R 4 και καταλήγουµε στις Εποµένως διασπάµε το R 2 την R 1 D E F ΥΚ13 Ω 450 ΥΚ14 720 ΥΚ45 Ψ 316 ΥΚ67 Ξ 412 R 3 B C D Σ1312 4060 ΥΚ13 Σ1434 230 ΥΚ14 Σ4565 4600 ΥΚ45 Σ6728 2670 ΥΚ67 Σ1371 13784 ΥΚ13 R 4 A Π12 Π14 Π78 Ε26 Ε67 B Σ1312 Σ1434 Σ4565 Σ6728 Σ1371 Μια σχέση σε 3NF διασπάται σε ένα σύνολο από σχέσεις της BCNF όταν αφαιρεθούν από τον πίνακα όσα χαρακτηριστικά δεν εξαρτώνται πλήρως από κλειδιά. Συνοψίζοντας 1NF: Οχι σύνθετα και πλειότιµα γνωρίσµατα. 2NF: Μόνο πλήρεις συναρτησιακές εξαρτήσεις. 3NF: Οχι µεταβατικές συναρτησιακές εξαρτήσεις. BCNF: Μόνο περιορισµοί κλειδιού. Παρατηρήσεις Οδηγούµενοι σε πιο περιοριστική κανονική µορφή αναγκαζόµαστε να διασπάσουµε την αρχική σχέση σε περισσότερες. Οι περισσότερες 3NF είναι και BCNF. Οι 1NF και 2NF δεν είναι ικανοποιητικές για να χαρακτηρίσουµε την ϐάση ως καλά σχεδιασµένη. Οι 3NF και BCNF εξαλείφουν προβλήµατα που σχετίζονται µε ενηµερώσεις. Η BCNF ίσως να µην είναι πάντοτε εφικτή αλλά η 3NF υπάρχει πάντα. 8