ΣΧΕ ΙΑΣΜΟΣ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΚΑΙ ΚΑΝΟΝΙΚΟΠΟΙΗΣΗ

Σχετικά έγγραφα
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

ΣΧΕΔΙΑΣΜΟΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΚΑΝΟΝΙΚΟΠΟΙΗΣΗ. Σχεδιασμός Σχεσιακών ΒΔ και Κανονικοποίηση 1

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

Principles of Database Systems

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

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

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

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

ΣΧΕ ΙΑΣΜΟΣ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΚΑΙ ΚΑΝΟΝΙΚΟΠΟΙΗΣΗ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Principles of Database Systems

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

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

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

Lecture 24: Functional Dependencies and Normalization IV

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

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

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

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

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

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

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

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

Κανονικοποίηση(Normalization) ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ 9 ο Εξάμηνο2013. Κανονικές Μορφές. Πρώτη Κανονική Μορφή (1NF) Βάσεις Δεδομένων. Περικλής Α.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ


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

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

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

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

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

Lecture 23: Functional Dependencies and Normalization

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

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

C.S. 430 Assignment 6, Sample Solutions

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

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

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

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

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

2 Composition. Invertible Mappings

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

Επισκόπηση Σχεδίασης Σχεσιακών Βάσεων Δεδομένων

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

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

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

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

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

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

Lecture 21: Functional Dependencies and Normalization

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

Lecture 21: Functional Dependencies and Normalization

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



Example Sheet 3 Solutions

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

derivation of the Laplacian from rectangular to spherical coordinates

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

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

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

CHAPTER 25 SOLVING EQUATIONS BY ITERATIVE METHODS

Overview. Transition Semantics. Configurations and the transition relation. Executions and computation

Lecture 22: Functional Dependencies and Normalization

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

Ακεραιότητα και Ασφάλεια Μέρος 1 Σχεδιασμός Βάσεων Δεδομένων

The Simply Typed Lambda Calculus

The challenges of non-stable predicates

Ordinal Arithmetic: Addition, Multiplication, Exponentiation and Limit

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

Section 8.3 Trigonometric Equations

Kεφ.2: Σχεσιακό Μοντέλο (επανάληψη) Κεφ.6.1: Σχεσιακή Άλγεβρα

3.4 SUM AND DIFFERENCE FORMULAS. NOTE: cos(α+β) cos α + cos β cos(α-β) cos α -cos β

Μηχανική Μάθηση Hypothesis Testing

Homework 3 Solutions

Lecture 2. Soundness and completeness of propositional logic

Inverse trigonometric functions & General Solution of Trigonometric Equations

Matrices and Determinants

Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

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

Econ 2110: Fall 2008 Suggested Solutions to Problem Set 8 questions or comments to Dan Fetter 1

2 ο Σύνολο Ασκήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

2. THEORY OF EQUATIONS. PREVIOUS EAMCET Bits.

Transcript:

ΣΧΕ ΙΑΣΜΟΣ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΚΑΙ ΚΑΝΟΝΙΚΟΠΟΙΗΣΗ Β µέρος Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 1

Σκοπός: Να βρούµε θεωρία ώστε Να αποφασίζουµε αν µια σχέση R είναι σε «καλή» µορφή Σε περίπτωση που η R δεν είναι σε καλή µορφή, να την αποσυνθέσουµε σε ένα σύνολο σχέσεων {R 1, R 2,..., R n } τέτοιων ώστε Κάθε σχέση να είναι σε καλή µορφή Η αποσύνθεση να µην έχει απώλειες πληροφορίας Η θεωρία βασίζεται σε συναρτησιακές εξαρτήσεις Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 2

Συναρτησιακές εξαρτήσεις Περιορισµοί στο σύνολο των αποδεκτών σχέσεων Απαιτούν η τιµή για συγκεκριµένο σύνολο γνωρισµάτων να ορίζει µονοσήµαντα την τιµή κάποιου άλλου συνόλου γνωρισµάτων Γενίκευση της έννοιας του κλειδιού Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 3

Συναρτησιακές εξαρτήσεις Kκλειδί της R: K R Kυποψήφιο κλειδί της R K R, και εν υπάρχεια Kώστε α R Εκφράζουν και περιορισµούς που δεν µπορούν να εκφραστούν µε κλειδιά. Π.χ. Loan-info-schema = (customer-name, loan-number, branch-name, amount). Ισχύει: loan-number amount loan-number branch-name εν ισχύει: loan-number customer-name Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 4

Κλειστότητα Συνόλου Συναρτησιακών Εξαρτήσεων εδοµένου ενός συνόλου συναρτησιακών εξαρτήσεων F, υπάρχουν άλλες εξαρτήσεις που προκύπτουν λογικά από την F. π.χ. αν A B και B C, τότε A C Το σύνολο των συναρτησιακών εξαρτήσεων που προκύπτουν από το σύνολο F λέγεται κλειστότητα του F και συµβολίζεται F +. Μπορούµε να βρούµε το F + εφαρµόζοντας τα αξιώµατα του Armstrong: αν β α, τότε α β (ανακλαστικότητα-reflexivity) ανα β, τότε γα γβ (προσαύξηση-augmentation) ανα βκαι β γ, τότε α γ (µεταβατικότητα-transitivity) Έγκυροι και πλήρεις κανόνες Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 5

Επιπλέον απλούστεροι κανόνες Επιπλέον κανόνες που προκύπτουν από τα αξιώµατα Armstrong και µπορούν να χρησιµοποιηθούν για τον υπολογισµό του F + αν α βκαια γ, τότε α βγ(ένωση-union) αν α βγ, τότε α β και α γ(αποσύνθεση- decomposition) αν α β καιγβ δ, τότε αγ δ(ψευδοµεταβατικότηταpseudotransitivity) Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 6

Υπολογισµός του F + Αλγόριθµος: F + = F repeat for each functional dependency f in F + apply reflexivity and augmentation rules on f add the resulting functional dependencies to F + for each pair of functional dependencies f 1 and f 2 in F + if f 1 and f 2 can be combined using transitivity then add the resulting functional dependency to F + until F + does not change any further «ΑΡΓΟΣ» Αλγόριθµος Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 7

Παραδείγµατα R = (A, B, C, G, H, I) F = { A B A C CG H CG I B H} Συναρτησιακές εξαρτήσεις στην F + A H» Με µεταβατικότητα A B και B H AG I» Προσαυξηστικά από το A C µε το G, παίρνουµε το AG CG και µετά µε µεταβατικότητα µε το CG I CG HI» Από το CG H και το CG I : κανόνας ένωσης Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 8

Κλειστότητα συνόλων ιδιοτήτων εδοµένου συνόλου γνωρισµάτων α, ορίζουµε την κλειστότητα (closure) του α στο F (α + ) ως το σύνολο όλων των γνωρισµάτων που εξαρτώνται συναρτησιακά από το α στο F: α βis in F + β α + Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 9

Υπολογισµός Κλεισίµατος Συνόλου Γνωρισµάτων (α + ) Αλγόριθµος υπολογισµού α + στο F result := α; while (changes to result) do for each β γin F do begin if β result then result := result γ end «ΓΡΗΓΟΡΟΣ» Αλγόριθµος Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 10

Παραδείγµατα τουκλεισίµατος Συνόλου Γνωρισµάτων (α + ) R = (A, B, C, G, H, I) F = {A B A C CG H CG I B H} (AG) + 1. result = AG 2. result = ABCG (A C and A B) 3. result = ABCGH (CG H and CG AGBC) 4. result = ABCGHI (CG I and CG AGBCH) Είναι το AG υποψήφιο κλειδί? 1. Είναι το AG κλειδί? 1. Η Ερώτηση AG R? Είναι ισοδύναµη µε την «είναι το (AG) + R»? 2. Είναι κάποιο υποσύνολο του AG κλειδί? 1. Είναι το A R? == Είναι το (A) + R 2. Είναι το G R? == Είναι το (G) + R Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 11

Χρήσεις τουκλεισίµατος Συνόλου Γνωρισµάτων (α + ) ΕΛΕΓΧΟΣ ΚΛΕΙ ΙΟΥ: Για τον έλεγχο αν το αείναι κλειδί, υπολογίζουµε τοα +, και ελέγχουµε αν τοα + περιέχει όλα τα γνωρίσµατα του R. ΕΛΕΓΧΟΣ ΣΥΝΑΡΤΗΣΙΑΚΩΝ ΕΞΑΡΤΗΣΕΩΝ Για τον έλεγχο αν η συναρτησιακή εξάρτηση α βισχύει (µε άλλα λόγια, αν είναι στο F + ), έλεγξε αν β α +. ηλαδή, υπολογίζουµε τοα + µε το γνωστό αλγόριθµο, και ελέγχουµε αν περιέχει τοβ. Είναι ένα εύκολος και γρήγορος έλεγχος ΥΠΟΛΟΓΙΣΜΟΣ ΤΗΣ ΚΛΕΙΣΤΟΤΗΤΑΣ ΤΟΥ F Για κάθε γ R, υπολογίζουµε το γ +, και για κάθε S γ +, παίρνουµε µια συναρτησιακή εξάρτηση γ S. Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 12

Κανονική Κάλυψη Ένα σύνολο συναρτησιακών εξαρτήσεων µπορεί να έχει πλεονάζουσες εξαρτήσεις που προκύπτουν από άλλες Π.χ.:η A C στο F {A B, B C, A C} Μέρη εξαρτήσεών είναι πλεονάζοντα» Π.χ το {A B, B C, A CD} µπορεί να απλοποιηθεί στο {A B, B C, A D}» Π.χ. το {A B, B C, AC D} µπορεί να απλοποιηθεί σε {A B, B C, A D} ιαισθητικά µια κανονική κάλυψη του F είναι ένα ελάχιστο σύνολο από συναρτησιακές εξαρτήσεις ισοδύναµο µε το F, που δεν έχει πλεονάζουσες εξαρτήσεις ή πλεονάζοντα µέρη εξαρτήσεων. Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 13

Εξωτερικά Γνωρίσµατα Αν F σύνολο συναρτησιακών εξαρτήσεων που περιέχει εξάρτηση α βτότε Το γνώρισµα A είναι εξωτερικό στο ααν A α το F συνεπάγεται λογικά το (F {α β}) {(α A) β}. Το γνώρισµα A είναι εξωτερικό στο βαν A β και το (F {α β}) {α (β A)} συνεπάγεται λογικά το F Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 14

Εξωτερικά Γνωρίσµατα F = {A C, AB C} Το Bείναι εξωτερικό στο AB Cγιατί το F {A C, AB C} συνεπάγεται λογικά το A C (δλδ το αποτέλεσµα της διαγραφής του B από το AB C). F = {A C, AB CD} Το Cείναι εξωτερικό του AB CDγιατί το {A C, AB D} συνεπάγεται λογικά το F (δλδ το AB CD) ακόµα και µετά τη διαγραφή του C Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 15

Έλεγχος αν ένα γνώρισµα είναι εξωτερικό Θεωρούµε σύνολο συναρτησιακών εξαρτήσεων F και την εξάρτησηα βστο F. Για να ελέγξουµε αν ένα γνώρισµα A αείναι εξωτερικό στο α 1. Υπολογίζουµε το ({α} A) + στο F 2. ελέγχουµε ότι το ({α} A) + περιέχει το A Για να ελέγξουµε αν ένα γνώρισµα A βείναι εξωτερικό στο β 1. Υπολογίζουµε α + στο F = (F {α β}) {α (β A)}, 2. ελέγχουµε ότι το α + περιέχει το A Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 16

Κανονική κάλυψη Μια κανονική κάλυψη του F είναι ένα σύνολο από συναρτησιακές εξαρτήσεις F c τέτοιο ώστε Το Fσυνεπάγεται λογικά όλες τις εξαρτήσεις του F c Το F c συνεπάγεται λογικά όλες τις εξαρτήσεις του F εν υπάρχει συναρτησιακή εξάρτηση στο F c που να περιέχει εξωτερικό γνώρισµα Η αριστερή πλευρά κάθε συναρτησιακής εξάρτησης στο F c είναι µοναδική Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 17

Αλγόριθµος εύρεσης κανονικής κάλυψης F c = F repeat Use the union rule to replace any dependencies in F α 1 β 1 and α 1 β 2 with α 1 β 1 β 2 Find a functional dependency α βwith an extraneous attribute either in α or in β If an extraneous attribute is found, delete it from α β until F c does not change Σηµείωση: Ο κανόνας της ένωσης µπορεί να είναι εφαρµόσιµος µετά τη διαγραφή κάποιων εξωτερικών γνωρισµάτων, οπότε θα πρέπει να εφαρµοστεί ξανά Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 18

R = (A, B, C) F = {A BC B C A B AB C} Παράδειγµα Combine A BC and A B into A BC Set is now {A BC, B C, AB C} A is extraneous in AB C Check if the result of deleting A from AB C is implied by the other dependencies» Yes: in fact, B C is already present! Set is now {A BC, B C} C is extraneous in A BC Check if A C is logically implied by A B and the other dependencies» Yes: using transitivity on A B and B C. Can use attribute closure of A in more complex cases Η ελάχιστη κάλυψη είναι: A B B C Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 19

Σχεσιακή Αποσύνθεση ΤΟ ΑΡΧΙΚΟ ΣΗΜΕΙΟ όλων των αλγορίθµων είναι ένα σχήµα καθολικής σχέσης R που περιέχει όλα τα γνωρίσµατα της Βάσης ΣΤΟΧΟΣ του σχεδιασµού είναιµια αποσύνθεση (decomposition) Dτου R σε m Σχήµατα Σχέσεων R 1, R 2, R 3,... R m όπου κάθε R i περιέχει ένα υποσύνολο γνωρισµάτων του R και κάθε γνώρισµα του Rπρέπει να παρουσιάζεται σε τουλάχιστον ένα Σχήµα Σχέσης R i (ιδιότητα διατήρησης Γνωρισµάτων) Στην ουσία, όταν κάνουµε αποσύνθεση του R, σκοπεύουµε να αποθηκεύσουµε στιγµιότυπα των Σχέσεων που προκύπτουν από την αποσύνθεση, αντί για στιγµιότυπα του R. Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 20

Αποσύνθεση Αποσύνθεση της σχέσης Lending-schema (branch-name, branch-city, assets, customer-name, loan-number, amount) σε : Branch-schema = (branch-name, branch-city, assets) Loan-info-schema = (customer-name, loan-number, branch-name, amount) Όλα τα γνωρίσµατα του αρχικού σχήµατος (R) πρέπει να εµφανίζονται στην αποσύνθεση (R 1, R 2 ): R = R 1 R 2 Αποσύνθεση χωρίς απώλειες για όλες της πιθανές σχέσεις r στο σχήµα R r = R1 (r) R2 (r) Μια αποσύνθεση του R σε R 1 and R 2 είναι χωρίς απώλειες αν και µόνο αν υπάρχει τουλάχιστον µια συναρτησιακή εξάρτηση στο F + : R 1 R 2 R 1 R 1 R 2 R 2 (το R 1 R 2 κλειδί του R 1 ή του R 2 ) Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 21

Παράδειγµα αποσύνθεσης µε απώλειες Οδηγεί σε λάθος πληροφορίες (πλασµατικές πλειάδες) Π.χ. R = (A, B) R 1 = (A) R 2 = (B) A B A B α 1 α 2 β 1 r A (r) B (r) α 1 β 2 A (r) A α α β β B 1 2 1 2 B(r) Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 22

Αποσύνθεση Κατά την αποσύνθεση του σχήµατος R µε σύνολο συναρτησιακών εξαρτήσεων F σε R 1, R 2,.., R n θέλουµε Αποσύνθεση χωρίς απώλειες Αποφυγή πλεονασµού: Οι σχέσεις R i να είναι κατά προτίµηση σε κανονική µορφή Boyce-Codd ή σε 3NF. ιατήρηση εξαρτήσεων: Αν F i το σύνολο των εξαρτήσεων του F + που περιλαµβάνουν µόνο γνωρίσµατα του R i.» (F 1 F 2 F n ) + = F +» Αλλιώς ο έλεγχος αν οι ενηµερώσεις τηρούν τις συναρτησιακές εξαρτήσεις απαιτούν joins που είναι ακριβά Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 23

R = (A, B, C) F = {A B, B C) Παράδειγµα Μπορεί να αποσυντεθεί µε 2 τρόπους R 1 = (A, B), R 2 = (B, C) Χωρίς απώλειες: ιατηρεί εξαρτήσεις R 1 = (A, B), R 2 = (A, C) Χωρίς απώλειες : R 1 R 2 = {B} and B BC R 1 R 2 = {A} and A AB ε διατηρεί εξαρτήσεις (δε γίνεται να ελέγξεις το B C χωρίς να υπολογίσεις το R 1 R 2 ) Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 24

Έλεγχος διατήρησης εξαρτήσεων Για να ελέγξουµε αν η εξάρτηση α βδιατηρείται στην αποσύνθεση του R σε R 1, R 2,, R n χρησιµοποιούµε την κλειστότητα γνωρισµάτων result = α while (changes to result) do for each R i in the decomposition t = (result R i ) + R i result = result t If result contains all attributes in β, then the functional dependency α βis preserved. Το εφαρµόζουµε για όλες τις εξαρτήσεις του F Απαιτεί πολυωνυµικό χρόνο αντί του εκθετικού για τον υπολογισµό του F + και (F 1 F 2 F n ) + Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 25

Κανονική µορφή Boyce-Codd Ένα σχήµα σχέσης R είναι σε BCNF σε σχέση µε ένα σύνολο συναρτησιακών εξαρτήσεων F όταν για όλες τις εξαρτήσεις στο F + της µορφής α β, όπου α Rand β R, ισχύει τουλάχιστον ένα από τα παρακάτω α β είναι τετριµµένη (i.e., β α) αείναι κλειδί της R Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 26

Παράδειγµα R = (A, B, C) F = {A B B C} κλειδί = {A} Rδεν είναι σε BCNF Decomposition R 1 = (A, B), R 2 = (B, C) R 1 και R 2 είναι σε BCNF Lossless-join decomposition Dependency preserving Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 27

Έλεγχος για BCNF Για µη τετριµµένη σχέση α β 1. Υπολογίζω α + 2. Τσεκάρω ότι περιλαµβάνει όλα τα γνωρίσµατα του R (κλειδί του R) Απλοποιηµένος έλεγχος: Αρκεί να ελέγξω τις εξαρτήσεις στο F αντί όλες τι εξαρτήσεις στο F +. Να χρησιµοποιήσω το F αντί του F + όµως είναι λάθος για έλεγχο σχέσης από αποσύνθεση του R E.g. Consider R (A, B, C, D), with F = { A B, B C}» Decompose R into R 1 (A,B) and R 2 (A,C,D)» Neither of the dependencies in F contain only attributes from (A,C,D) so we might be mislead into thinking R 2 satisfies BCNF.» In fact, dependency A Cin F + shows R 2 is not in BCNF. Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 28

Αλγόριθµος αποσύνθεσης σε BCNF result := {R}; done := false; compute F + ; while (not done) do if (there is a schema R i in result that is not in BCNF) then begin let α β be a nontrivial functional dependency that holds on R i such that α R i is not in F +, and α β = ; result := (result R i ) (R i β) (α, β ); end else done := true; Note: each R i is in BCNF, and decomposition is lossless-join. Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 29

Παράδειγµα αποσύνθεσης BCNF R = (branch-name, branch-city, assets, customer-name, loan-number, amount) F = {branch-name assets branch-city loan-number amount branch-name} Key = {loan-number, customer-name} Decomposition R 1 = (branch-name, branch-city, assets) R 2 = (branch-name, customer-name, loan-number, amount) R 3 = (branch-name, loan-number, amount) R 4 = (customer-name, loan-number) Final decomposition R 1, R 3, R 4 Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 30

BCNF and Dependency Preservation εν είναι πάντα δυνατόν να βρεθεί αποσύνθεση BCNF που διατηρεί εξαρτήσεις R = (J, K, L) F = {JK L L K} δύο υποψήφια κλειδιά, JK and JL R δεν είναι σε BCNF Καµία αποσύνθεση του R δε διατηρεί την εξάρτηση JK L Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 31

3NF: Κίνητρο Υπάρχουν περιπτώσεις που Η BCNF δε διατηρεί εξαρτήσεις Είναι σηµαντικός ο αποδοτικός έλεγχος καταπάτησης των συναρτησιακών εξαρτήσεων µετά από ενηµερώσεις Λύση: Χαλαρώνουµε περιορισµούς µε 3NF Επιτρέπει κάποιον πλεονασµό αλλά Οι συναρτησιακές εξαρτήσεις µπορούν να ελεγχθούν χωρίς join Υπάρχει πάντα µια αποσύνθεση σε 3NFχωρίς απώλειες και µε διατήρηση εξαρτήσεων Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 32

3NF Ένα σχήµα Rείναι σε 3NF αν για όλα τα α βστο F + ισχύει τουλάχιστον ένα από τα παρακάτω α βείναι τετριµµένη αείναι κλειδί της R Κάθε γνώρισµα Aστο β αεµπεριέχεται σε κάποιο υποψήφιο κλειδί της R (Σηµείωση: διαφορετικά γνωρίσµατα µπορεί να είναι σε διαφορετικά κλειδιά) Μια σχέση σε BCNF είναι πάντα και 3NF Η Τρίτη συνθήκη είναι η ελάχιστη χαλάρωση του BCNF για να πετύχουµε διατήρηση εξαρτήσεων Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 33

Παράδειγµα Example R = (J, K, L) F = {JK L, L K} Two candidate keys: JK and JL R is in 3NF JK L L K JK is a superkey K is contained in a candidate key BCNF decomposition has (JL) and (LK) Testing for JK L requires a join Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 34

Έλεγχος για 3NF Πρέπει να ελέγξουµε µόνο τις εξαρτήσεις στο F, όχι στο F + Χρησιµοποιούµε την κλειστότητα γνωρισµάτων για κάθε α β, αν το αείναι υπερκλειδί Αν τοαδεν είναι υπερκλειδί πρέπει να δούµε αν εµπεριέχεται σε κάποιο υποψήφιο κλειδί του R O έλεγχος για 3NF έχει αποδειχτεί NP-hard Παραδόξως, η αποσύνθεση σε 3NFλύνεται σε πολυωνυµικό χρόνο Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 35

Αλγόριθµος αποσύνθεσης σε 3NF Let F c be a canonical cover for F; i := 0; for each functional dependency α βin F c do if none of the schemas R j, 1 j i contains αβ then begin i := i + 1; R i := αβ end done if none of the schemas R j, 1 j i contains a candidate key for R then begin i := i + 1; R i := any candidate key for R; end return (R 1, R 2,..., R i ) Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 36

Αλγόριθµος αποσύνθεσης σε 3NF Ο αλγόριθµος εγγυάται Κάθε σχήµα R i είναι σε 3NF Η αποσύνθεση διατηρεί τις εξαρτήσεις και δεν έχει απώλειες Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 37

Relation schema: Example Banker-info-schema = (branch-name, customer-name, banker-name, office-number) The functional dependencies for this relation schema are: banker-name branch-name office-number customer-name branch-name banker-name The key is: {customer-name, branch-name} The for loop in the algorithm causes us to include the following schemas in our decomposition: Banker-office-schema = (banker-name, branch-name, office-number) Banker-schema = (customer-name, branch-name, banker-name) Since Banker-schema contains a candidate key for Banker-info-schema, we are done with the decomposition process. Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 38

Σύγκριση BCNF και 3NF Είναι πάντα εφικτό να αποσυνθέσεις µια σχέση σε σχέσεις 3NF ώστε Η αποσύνθεση να µην έχει απώλειες Να διατηρούνται οι εξαρτήσεις Είναι πάντα εφικτό να αποσυνθέσεις µια σχέση σε σχέσεις BCNF ώστε Η αποσύνθεση να µην έχει απώλειες Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 39

Comparison of BCNF and 3NF (Cont.) Example of problems due to redundancy in 3NF R = (J, K, L) F = {JK L, L K} J L K j 1 j 2 l 1 l 1 k 1 k 1 j 3 l 1 k 1 null l 2 A schema that is in 3NF but not in BCNF has the problems of repetition of information (e.g., the relationship l 1, k 1 ) need to use null values (e.g., to represent the relationship l 2, k 2 where there is no corresponding value for J). k 2 Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 40

Design Goals Στόχος µιας σχεσιακής βάσης είναι BCNF. Αποσύνθεση χωρίς απώλειες ιατήρηση εξαρτήσεων Αν δεν µπορούµε να το επιτύχουµε τότε ένα από τα 2 BCNF χωρίς διατήρηση εξαρτήσεων 3NF Η SQL δεν υποστηρίζει άµεσα λειτουργικές εξαρτήσεις άλλες από τα υπερκλειδιά Έµµεσα υποστηρίζονται µέσω assertions Οπότε ακόµα κι αν είχαµε αποσύνθεση µε διατήρηση εξαρτήσεων δε θα µπορούσαµε να ελέγξουµε αποδοτικά µε SQL µια εξάρτηση της οποίας το αριστερό µέρος δεν είναι κλειδί Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 41

Επιπρόσθετες Εξαρτήσεις Με τη χρήση των FD µπορούµε να φτάσουµε µέχρι 3NF και BCNF Άλλες εξαρτήσεις: πλειότιµες εξαρτήσεις (Multivalued) (MVD),εξαρτήσεις συνένωσης (Join Dependencies), εξαρτήσεις εγκλεισµού (Inclusion Dependencies),... Αυτές οι εξαρτήσεις µας πάνε σε κανονικές µορφές πέραν των 3NF και BCNF (δηλαδή, 4NF και 5NF) Πλειότιµες Συναρτήσεις: (άτυπος ορισµός) Ένα σύνολο γνωρισµάτων X καθορίζει πολλαπλάένα σύνολο Y αν η τιµή του X καθορίζειένα σύνολο τιµών για το Y (ανεξάρτητα από τα άλλα γνωρίσµατα στη Σχέση) Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 42

Πλειότιµες Εξαρτήσεις Μια MVD παρουσιάζεται ως X Y Υπάρχουνβάσιµακαιπλήρη σύνολα κανόνων συµπερασµού για MVDs Μια FD είναι ειδική περίπτωση των MVD Ένα Σχεσιακό Σχήµα R είναι στην τέταρτη κανονική µορφή (4NF) σε σχέση µε ένα σύνολο συναρτησιακών και πλειότιµων εξαρτήσεων F αν για κάθε µη τετριµµένη πλειότιµη εξάρτηση X Y στην F +, το X είναι υποψήφιο κλειδί του R εν υπάρχει αποδοτικός αλγόριθµος για την αποσύνθεση του R σε 4NF Σχέσεις, έτσι ώστε η αποσύνθεση να µην έχει απώλειες σε σχέση µε ένα σύνολο F από FD και MVD στο R Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 43

Εξαρτήσεις Συνένωσης Μια εξάρτηση συνένωσης JD(R 1, R 2, R 3,... R m ) είναι ένας δοµικός περιορισµός στην R που προσδιορίζει ότι κάθενόµιµο στιγµιότυπο r(r) πρέπει να έχει µια lossless join αποσύνθεση στα R 1, R 2, R 3,... R m Μια MVD είναι ειδική περίπτωση των JD (όπου m=2) Ένα Σχεσιακό Σχήµα R είναι στην πέµπτη κανονική µορφή (5NF) σε σχέση µε ένα σύνολο συναρτησιακών, πλειότιµων και εξαρτήσεων συνένωσης F αν για κάθε µη τετριµµένη JD(R 1, R 2,... R m ) στην F +, κάθε R i είναι υπέρ-κλειδί του R Η 5NF ονοµάζεται επίσης PJNF (Project-Join Normal Form) Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 44

Εξαρτήσεις Εγκλεισµού FD, MVD και JD ορίζονταιεντός του ιδίου Σχεσιακού Σχήµατος R (δεν συσχετίζουν γνωρίσµατα που βρίσκονται σε διαφορετικές σχέσεις) Υπάρχουν και άλλες εξαρτήσεις, όπως οι εξαρτήσεις εγκλεισµού που χρησιµοποιούνται για την παράσταση της αναφορικής ακεραιότητας και των ιεραρχιών class / subclassµεταξύ δύο σχέσεων R και S Μια εξάρτηση εγκλεισµού R.X < S.Y προσδιορίζει ότι σε κάθε χρονικό σηµείο, αν τα r(r) και s(s) είναι στιγµιότυπα σχέσεων των R και S, τότε Π X (r(r)) Π Y (s(s)) Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 45

Πρακτικά Θέµατα για την Κανονικοποίηση Ένας µεγάλος αριθµός από εµπορικά εργαλεία, δοθέντων ενός συνόλου Σχηµάτων Σχέσεων / Γνωρισµάτων και ενός συνόλου συναρτησιακών εξαρτήσεων δηµιουργούν αυτόµατα Σχήµατα Σχέσεων σε µορφή 3NF (σπάνια πάνε σε BCNF, 4NF και 5NF) Μια άλλη χρήση τέτοιων εργαλείων είναι ναελέγχουντο επίπεδο Κανονικοποίησης µιας Σχέσης -ευριστικό εργαλείο επιλογής ενός Σχεδιασµού έναντι κάποιου άλλου Υπάρχουν πρακτικά αποτελέσµατα της Θεωρίας που επιτρέπουν σε έναν Σχεδιαστή να κάνει ανάλυση της µορφής: Αν µια σχέση είναι σε 3NF και κάθε υποψήφιο κλειδί αποτελείται ακριβώς από ένα γνώρισµα, τότε είναι και σε 5NF (Fagin, 1991) Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 46

ΣΧΟΛΙΑ Η διαδικασία Κανονικοποίησης έχει και µειονεκτήµατα: Συνήθως η Κανονικοποίηση γίνεταιαφού έχουµε κάποιο Σχήµα (µας λέει αν είναι «καλό» ή «κακό») εν προσφέρει ένα εννοιολογικό σχήµα (ασχολείται µόνο µε Σχέσεις και Γνωρίσµατα) Όµως, µια πρακτικά χρήσιµη προσπάθεια να γίνουν µε τυπικό και συστηµατικό τρόπο πράγµατα που τα κάνουµε συνήθως διαισθητικά. Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση 47