Εισαγωγή Θα εξετάσουμε πότε ένα σχεσιακό σχήμα για μια βάση δεδομένων είναι «καλό» Λογικός Σχεδιασμός Σχεσιακών Σχημάτων Γενικές Οδηγίες Η Μέθοδος της Αποσύνθεσης (γενική μεθοδολογία) Επιθυμητές Ιδιότητες της Αποσύνθεσης Συνένωση Άνευ Απωλειών Αποφυγή Επανάληψης Πληροφορίας Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 1 Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 2 Σχεδιασμός Σχεσιακών Σχημάτων Σχεδιασμός Σχεσιακών Σχημάτων Σχεδιασμός καλών σχεσιακών σχημάτων Μη τυπικές - γενικές κατευθύνσεις Θεωρία κανονικών μορφών που βασίζεται στις συναρτησιακές εξαρτήσεις 1. Σημασιολογία 2. Ελάττωση πλεονασμού 3. Ελάττωση τιμών null 4. Μη πλασματικές πλειάδες Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 3 Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 4 1. Σημασιολογία Τίτλος Έτος Διάρκεια Είδος Παίζει Όνομα Τίτλος Έτος Εύκολη η εξήγηση της σημασίας του Αποφυγή συνδυασμού γνωρισμάτων από πολλές οντότητες και συσχετίσεις στην ίδια σχέση Ηθοποιός Όνομα Διεύθυνση Έτος-Γέννησης 2. Πλεονασμός (επανάληψη πληροφορίας) Εισαγωγή Για την εισαγωγή μιας νέας ταινίας πρέπει να εισάγουμε τουλάχιστον έναν ηθοποιό (τιμή null;) Για την εισαγωγή ενός ηθοποιού στην ταινία πρέπει να επαναλάβουμε τα της ταινίας Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 5 Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 6 1
ιαγραφή Τι γίνεται αν διαγράψουμε και τον τελευταίο ηθοποιό ιαγραφή μιας ταινίας; Τροποποίηση Τι γίνεται αν θελήσουμε να τροποποιήσουμε τη διάρκεια μιας ταινίας; Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 7 Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 8 3. Αποφυγή τιμών null 4. Αποφυγή δημιουργίας πλασματικών πλειάδων Ηθοποιός Όνομα Διεύθυνση Έτος-Γέννησης Σύζυγος-Ηθοποιού (αδυναμία αναπαράστασης συγκεκριμένης πληροφορίας) Τίτλος Έτος Διάρκεια Είδος Ηθοποιός Όνομα Διεύθυνση Έτος-Γέννησης Παίζει Τίτλος Όνομα-Ηθοποιού Ζευγάρι-Ηθοποιών Όνομα Σύζυγος-Ηθοποιού Χάνουμε πληροφορία δεν μπορούμε να βρούμε ποιος ηθοποιός σε ποια ταινία Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 9 Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 10 Αλγόριθμος Σχεδιασμού - Εισαγωγή Οτρόπος που σχεδιάζαμε ένα σχήμα Β : Μέχρι τώρα, από το εννοιολογικό στο σχεσιακό μοντέλο Θα δούμε ένα γενικό τυπικό τρόπο κατασκευής του σχήματος Γενικά: Ξεκινάμε από το καθολικό σχήμα (όλα τα ) Συνεχείς διασπάσεις έτσι ώστε τα σχήματα που προκύπτουν να ικανοποιούν κάποιες ιδιότητες (να είναι σε κάποιες κανονικές μορφές) Αλγόριθμος Σχεδιασμού Ένας γενικός (θεωρητικός) τρόπος κατασκευής του σχήματος Αποσύνθεση (decomposition) Αλγόριθμος σχεδιασμού 1. Αρχικά ένα καθολικό σχήμα σχέσης που περιέχει όλα τα 2. Προσδιορισμός των συναρτησιακών εξαρτήσεων 3. ιάσπαση σε ένα σύνολο από σχήματα που ικανοποιούν κάποιες ιδιότητες Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 11 Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 12 2
Παράδειγμα Αποσύνθεση R = {Τίτλος, Έτος, ιάρκεια, Είδος, Όνομα-Ηθοποιού, ιεύθυνση, Έτος-Γέννησης} Τίτλος Έτος Είδος ιάρκεια Όνομα Ηθοποιού ιεύθυνση Όνομα-Ηθοποιού Έτος Γέννησης Πως μπορούμε να πάρουμε την αρχική σχέση; R 1 = {Τίτλος, Έτος, ιάρκεια, Είδος} R 2 = {Τίτλος, Έτος, Όνομα- Ηθοποιού, ιεύθυνση, Έτος- Γέννησης} Μπορούμε να διασπάσουμε την R 2 με τον ίδιο τρόπο. Τυπικός ορισμός Αλγόριθμος Σχεδιασμού Αρχικά ένα καθολικό σχήμα R = {A 1, A 2,, A n } αποσύνθεση (decomposition) σε δύο σχήματα R 1 = {B 1, B 2,, B m } και R 2 = {C 1, C 2,, C k } τέτοια ώστε: 1. {A 1, A 2,, A n } = {B 1, B 2,, B m } {C 1, C 2,, C k } (διατήρηση γνωρισμάτων) 2. Οι πλειάδες της r 1 (R 1 ) είναι η προβολή των πλειάδων της r(r) στα {B 1, B 2,, B m } πλειάδες 3. Οι πλειάδες της r 2 (R 2 ) είναι η προβολή των πλειάδων της r(r) στα {C 1, C 2,, C k } πλειάδες Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 13 Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 14 r(r) Α B C r 1 (R 1 ) A B 1 2 4 2 Αλγόριθμος Σχεδιασμού (παράδειγμα) Έστω το (καθολικό) σχήμα R(A, B, C) αποσύνθεση σε R 1 (A, B) και R 2 (B, C) Τι γίνεται με τα στιγμιότυπα (σχέσεις) που ανήκουν στο R, συμβολισμός r(r) r 2 (R 2 ) B C 2 5 R 1 R 2 = Β Μπορούμε να πάρουμε το αρχικό στιγμιότυπο; Φυσική συνένωση r 1 * r 2 Αποσύνθεση Έστω ένα σχεσιακό σχήμα R. Ένα σύνολο από σχεσιακά σχήματα {R 1, R 2,.., R n } είναι μια αποσύνθεση του R αν R = R 1 R 2 R n ηλαδή, i = 1,.., n R i R στιγμιότυπα Έστω r(r) και r i = π Ri (r), i = 1,..,n r r 1 * r 2 * * r n Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 15 Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 16 Έστω r(r) και r i = π Ri (r), i = 1,..,n ---- Παράδειγμα r Α B C r 1 A B r 2 B C 1 2 4 2 2 5 εν μπορούμε να πάρουμε την αρχική σχέση r από τα r 1 και r 2 Αποσύνθεση Έστω το σχήμα R(A, B, C) αποσύνθεση σε R 1 (A, B) και R 2 (B, C) Τι γίνεται με τα στιγμιότυπα (σχέσεις) που ανήκουν στο R, συμβολισμός r(r) ή r r r 1 * r2 * * r n r 1 * r 2 A B C 1 2 5 4 Έστω το σχήμα R(A, B, C) αποσύνθεση σε R 1 (A, C) και R 2 (B, C) Τι γίνεται με τα στιγμιότυπα (σχέσεις) που ανήκουν στο R, συμβολισμός R(r) r(r) Α B C Μπορούμε να πάρουμε το R 1 R 2 = C αρχικό στιγμιότυπο; Φυσική συνένωση r 1 * r 2 r 1 (R 1 ) A C r 2 (R 2 ) B C 1 3 4 5 2 5 Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 17 Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 18 3
Επιθυμητές Ιδιότητες Αποσύνθεσης Επιθυμητές Ιδιότητες για την Αποσύνθεση Παράδειγμα 1. Έστω C το σύνολο περιορισμών. Μια αποσύνθεση του R σε {R 1, R 2,.., R n } είναι μια αποσύνθεση άνευ απωλειών στη συνένωση (lossless join decomposition) αν για όλες τις σχέσεις r(r) που είναι νόμιμες στο C ισχύει r Α B C r 1 A B r 2 B C 1 2 4 2 2 5 r 1 * r 2 A B C 1 2 5 4 r = π R1 (r) * π R2 (r) * π Rn (r) r 1 A C r 2 B C 1 3 4 5 2 5 r 1 * r 2 = ; Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 19 Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 20 Θεώρημα Έστω R ένα σχεσιακό σχήμα και F ένα σύνολο από συναρτησιακές εξαρτήσεις στο R. Έστω R 1 και R 2 μια αποσύνθεση του R. Αν μια τουλάχιστον από τις ΣΕ R 1 R 2 R 1 ή R 1 R 2 R 2 ανήκει στο F + τότε η διάσπαση είναι χωρίς απώλειες στη συνένωση. ηλαδή τα κοινά των δύο σχημάτων είναι κλειδί για τουλάχιστον ένα από τα δύο σχήματα Παράδειγμα: R = {Τίτλος, Έτος, ιάρκεια, Είδος, Όνομα- Ηθοποιού, ιεύθυνση, Έτος-Γέννησης} Τίτλος Έτος ιάρκεια Τίτλος Έτος Είδος Όνομα Ηθοποιού ιεύθυνση Όνομα-Ηθοποιού Έτος Γέννησης R 1 = {Τίτλος, Έτος, ιάρκεια, Είδος} R 2 = {Τίτλος, Έτος, Όνομα- Ηθοποιού, ιεύθυνση, Έτος- Γέννησης} R 1 R 2 = {Τίτλος, Έτος} Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 21 Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 22 Επιθυμητές Ιδιότητες Αποσύνθεσης Επιθυμητές Ιδιότητες για την Αποσύνθεση 2. Στόχος: Για να ελέγχουμε ότι διατηρούνται οι Σ.Ε. όταν γίνονται τροποποιήσεις σε μία από τις σχέσεις r i (R i ) να αρκεί να ελέγξουμε τι συγκεκριμένη σχέση (δηλαδή, να μη χρειάζεται να υπολογίσουμε τις αρχικές σχέσεις - αποφυγή των συνενώσεων) Έστω F ένα σύνολο από ΣΕ στο σχήμα R και {R 1, R 2,.., R n } μια αποσύνθεση του R. F i περιορισμός του F στο R i είναι το σύνολο όλων των συναρτησιακών εξαρτήσεων του F + που περιέχουν μόνο του R i. Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 23 Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 24 4
Παράδειγμα: Υπολογισμός του περιορισμού του F σε ένα σχήμα Εφαρμογή 1: Έστω R(A, B, C, D), F = {A B, B C}. Περιορισμός του F στο S(A, C) (δηλαδή ποιες ΣΕ του F + ισχύουν στο S) Εφαρμογή 2: Έστω R(A, B, C, D, E), F = {A D, B Ε, DE C}. Περιορισμός του F στο S(A, B, C) Έστω F ένα σύνολο από ΣΕ στο σχήμα R και {R 1, R 2,.., R n } μια αποσύνθεση του R. Έστω F = F 1 F 2... F n Η αποσύνθεση είναι μια αποσύνθεση που διατηρεί τις εξαρτήσεις (dependency preserving) αν F + = F + Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 25 Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 26 Παράδειγμα: Πως δείχνουμε αν μια διάσπαση διατηρεί τις εξαρτήσεις Έστω R(A, B, C, D), F = {A C, B C, Β A}. Έστω η αποσύνθεση S(A, C) και Τ(Α, Β, D) Μερικά ακόμα παραδείγματα: 1. Έστω R(A, B, C, D), F = {A C, B C, ΒD A}. Η αποσύνθεση του R σε S(A, C) και Τ(Α, Β, D) διατηρεί τις εξαρτήσεις ; 2. Έστω R(A, B, C, D, E), F = {A D, B Ε, DE C}. Η αποσύνθεση του R σε S(A, Β, C) και T(A, B, D, E) διατηρεί τις εξαρτήσεις ; Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 27 Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 28 Σχεδιασμός Σχεσιακών Σχημάτων - Αποσύνθεση καθολικού σχήματος Επιθυμητές ιδιότητες - διατήρηση εξαρτήσεων - όχι απώλειες στη συνένωση - όχι επανάληψη πληροφορίας λόγω ΣΕ Παράδειγμα 1. Έστω R(A, B, C, D), F = {A C, B C, ΒD A} και η αποσύνθεση του R σε R 1 (A, C) και R 2 (Α, Β, D). (α) ιατηρεί τις εξαρτήσεις; (β) Είναι χωρίς απώλειες; - Συνέχεια: Κανονικές Μορφές BCNF 3NF Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 29 Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 30 5
Σχεδιασμός Σχεσιακών Σχημάτων (επανάληψη) Σχεδιασμός Σχεσιακών Σχημάτων (επανάληψη) Σχεδιασμός καλών σχεσιακών σχημάτων Μη τυπικές - γενικές κατευθύνσεις 1. Σημασιολογία 2. Ελάττωση πλεονασμού 3. Ελάττωση τιμών null 4. Μη πλασματικές πλειάδες Αποσύνθεση (decomposition) Αλγόριθμος σχεδιασμού Αρχικά ένα καθολικό σχήμα σχέσης που περιέχει όλα τα Προσδιορισμός των συναρτησιακών εξαρτήσεων ιάσπαση σε ένα σύνολο από σχήματα που ικανοποιούν κάποιες ιδιότητες Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 31 Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 32 Σχεδιασμός Σχεσιακών Σχημάτων (επανάληψη) Έστω ένα σχεσιακό σχήμα R. Ένα σύνολο από σχεσιακά σχήματα {R 1, R 2,.., R n } είναι μια αποσύνθεση του R αν R = R 1, R 2,, R n Σχεδιασμός Σχεσιακών Σχημάτων (επανάληψη) Επιθυμητές Ιδιότητες Αποσύνθεσης 1. Η φυσική συνένωση των σχέσεων που προκύπτουν μας δίνει ακριβώς την αρχική σχέση (χωρίς επιπρόσθετες πλειάδες): r = π R1 (r) * π R2 (r) * π Rn (r) R1 R2 R1 ή R1 R2 R2 ανήκει στο F +, δηλαδή τα κοινά των δύο σχημάτων είναι κλειδί για τουλάχιστον ένα από τα δύο ηλαδή, i = 1,..,n R i R Έστω r(r) και r i = π Ri (r), i = 1,..,n r r 1 * r2 * * r n πλειάδες 2. Στόχος: Έλεγχος διατήρησης εξαρτήσεων όταν γίνονται τροποποιήσεις χωρίς να υπολογίζουμε τις αρχικές σχέσεις (αποφυγή των συνενώσεων) F = F1 F2... Fn, πρέπει F + = F + 3. Αποφυγή Επανάληψης Πληροφορίας, πως; Κανονικές Μορφές Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 33 Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 34 6