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



Σχετικά έγγραφα
καλών σχεσιακών σχημάτων

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


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

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

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

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

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

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

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

Lecture 23: Functional Dependencies and Normalization

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

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

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

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

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

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

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

Σχεδίαση Σχεσιακών ΒΔ

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

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

Lecture 21: Functional Dependencies and Normalization

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

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

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

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

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

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

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

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

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

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

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

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

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

ΑΣΚΗΣΕΙΣ ΣΕ ΔΙΑΓΡΑΜΜΑΤΑ ΟΝΤΟΤΗΤΩΝ - ΣΥΣΧΕΤΙΣΕΩΝ

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


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

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

Lecture 24: Functional Dependencies and Normalization IV

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

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

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

Βάσεις Δεδομένων (Databases)

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

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

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Διδάσκουσα: Μαρία Χαλκίδη. Βάσεις Δεδομένων, Παν. Πειραιώς

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

Department of Computer Science University of Cyprus. EPL342 Databases. Lecture 8: RM II. Relational Model. (Chapter )

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στην πληροφορική

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων

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

Διάλεξη 07: Σχεσιακό Μοντέλο II (Relational Data Model) Διδάσκων: Παναγιώτης Ανδρέου

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ασκήσεις και ερωτήσεις

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

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

Σχεδιασμός μιας Β : Βήματα

Διάλεξη 06: Σχεσιακό Μοντέλο I (Relational Data Model) Διδάσκων: Παναγιώτης Ανδρέου

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

Σχεδίαση Βάσεων Δεδομένων

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

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

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

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

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

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

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 10: Εισαγωγικά περί κανονικοποίησης Συναρτησιακές εξαρτήσεις BCNF. Ευαγγελίδης Γεώργιος Τμήμα Εφαρμοσμένης Πληροφορικής

Βάσεις Δεδομένων. Εισαγωγή Ανάλυση Απαιτήσεων. Φροντιστήριο 1 ο

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

Διάλεξη 03: Εννοιολογική Σχεδίαση Βάσης Δεδομένων I (Entity Relationship Modelling) Διδάσκων: Παναγιώτης Ανδρέου

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 2 ο Μάθημα: Βασικά Θέματα Βάσεων Δεδομένων. Δρ. Κωνσταντίνος Χ.

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

Εισαγωγή στις βασικές έννοιες των Βάσεων Δεδομένων

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

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

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

Βάσεις Δεδομένων. Σχεσιακό Μοντέλο Μετατροπή Διαγράμματος Οντοτήτων Συσχετίσεων (E-R) σε σχεσιακό. Φροντιστήριο 3 ο

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

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

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

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

Lecture 21: Functional Dependencies and Normalization

Transcript:

Θεωρία Κανονικοποίησης Πρώτη Κανονική Μορφή (1NF) Αποσύνθεση Συναρτησιακές Εξαρτήσεις Δεύτερη (2NF) και Τρίτη Κανονική Μορφή (3NF) Boyce Codd Κανονική Μορφή (BCNF) Καθολική Διαδικασία Σχεδίασης ΒΔ Βασική πηγή διαφανειών: Silberschatz et al., Database System Concepts, 4/e Εργαστήριο Πληροφοριακών Συστηµάτων, Παν/µιο Πειραιώς (http://infolab.cs.unipi.gr/) έκδοση: Φεβ. 2010 Β : [4] Θεωρία Κανονικοποίησης 1 Το πρόβλημα... Γιατί αυτοί οι πίνακες και όχι κάποιοι άλλοι (περισσότεροι ή λιγότεροι, με διαφορετικό μοίρασμα χαρακτηριστικών); Β : [4] Θεωρία Κανονικοποίησης 2 4.1

Στόχοι στη σχεδίαση σχεσιακών ΒΔ Στόχος της σχεδίασης σχεσιακών ΒΔ είναι να βρούμε μια "καλή" συλλογή τύπων σχέσεων. Κακή σχεδίαση μπορεί να σημαίνει: Επανάληψη / πλεονασμό πληροφορίας Αδυναμία αναπαράστασης κάποιας πληροφορίας Σχεδιαστικοί στόχοι: Αποφυγή πλεονασμού στα δεδομένα Εξασφάλιση ότι αναπαριστώνται όλες οι συσχετίσεις μεταξύ των οντοτήτων Διευκόλυνση των ελέγχων για τυχόν παραβίαση των περιορισμών ορθότητας Το «εργαλείο»: κανονικοποίηση ΒΔ Υπακοή σε κάποια κανονική μορφή (1 η, 2 η, 3 η,...) Β : [4] Θεωρία Κανονικοποίησης 3 Κανονικές μορφές Έχουν οριστεί 5 κανονικές μορφές (normal forms NF) που η επόμενη είναι πιο αυστηρή από την προηγούμενη. Μεταξύ 3 ης και 4 ης κανονικής μορφής, έχει οριστεί η κανονική μορφή Boyce Codd (BCNF) που πρακτικά αποτελεί το στόχο της διαδικασίας σχεδίασης ΒΔ ΟΛΕΣ οι ΣΧΕΣΕΙΣ 1NF 2NF BCNF 4NF 5NF 3NF Β : [4] Θεωρία Κανονικοποίησης 4 4.2

Πρώτη Κανονική Μορφή (1NF) Αποσύνθεση Συναρτησιακές Εξαρτήσεις Δεύτερη (2NF) και Τρίτη Κανονική Μορφή (3NF) Boyce Codd Κανονική Μορφή (BCNF) Καθολική Διαδικασία Σχεδίασης ΒΔ Β : [4] Θεωρία Κανονικοποίησης 5 Πρώτη Κανονική Μορφή Οι τιμές του πεδίου ορισμού ενός χαρακτηριστικού είναι ατομικές εάν θεωρούνται ως αδιαίρετες μονάδες Αντιπαραδείγματα: σύνολα ονομάτων, σύνθετα χαρακτηριστικά, κωδικοί (π.χ. CS101) που σπάζουν σε τμήματα Ένας τύπος σχέσης R βρίσκεται στην 1 η κανονική μορφή (first normal form 1NF) εάν τα πεδία τιμών όλων των χαρακτηριστικών του R είναι ατομικά Μη ατομικές τιμές επιφέρουν δυσκολίες στην αποθήκευση και πλεονασμό δεδομένων μαζί με κάθε πελάτη να αποθηκεύονται τα στοιχεία όλων των λογαριασμών του, μαζί με κάθε λογαριασμό να αποθηκεύονται τα στοιχεία όλων των κατόχων του κλπ. Β : [4] Θεωρία Κανονικοποίησης 6 4.3

Πρώτη Κανονική Μορφή (συν.) Η ατομικότητα ουσιαστικά έχει να κάνει με τον τρόπο με τον οποίο χρησιμοποιούνται οι τιμές των χαρακτηριστικών π.χ. οι συμβολοσειρές συνήθως θεωρούνται αδιαίρετες. Αν όμως ο ΑΜ του φοιτητή είναι μια συμβολοσειρά της μορφής CS0012 και οι δύο πρώτοι χαρακτήρες χρησιμοποιούνται για να βρούμε το Τμήμα του φοιτητή, τότε καταστρατηγούμε την ατομικότητα Αυτό είναι κακή ιδέα γιατί μας οδηγεί σε συγγραφή κώδικα σε κάποιο πρόγραμμα εφαρμογής (έξω από τη βάση δεδομένων) Β : [4] Θεωρία Κανονικοποίησης 7 Πρώτη Κανονική Μορφή (1NF) Αποσύνθεση Συναρτησιακές Εξαρτήσεις Δεύτερη (2NF) και Τρίτη Κανονική Μορφή (3NF) Boyce Codd Κανονική Μορφή (BCNF) Καθολική Διαδικασία Σχεδίασης ΒΔ Β : [4] Θεωρία Κανονικοποίησης 8 4.4

Παράδειγμα «προβληματικού» σχήματος Έστω το σχήμα: Lending schema = (branch name, branch city, assets, customer name, loan number, amount) Πλεονασμός: Επανάληψη των δεδομένων branch name, branch city, assets για κάθε δάνειο που δίνει το συγκεκριμένο υποκατάστημα σπατάλη χώρου Δυσκολία στην τροποποίηση δεδομένων, πιθανότητα ασυνεπών τιμών Τιμές Null Δεν μπορούμε να αποθηκεύσουμε τα στοιχεία ενός υποκαταστήματος αν δεν έχει δοθεί κανένα δάνειο από αυτό Μπορούμε να χρησιμοποιήσουμε τιμές null αλλά είναι δύσκολος ο χειρισμός τους. Β : [4] Θεωρία Κανονικοποίησης 9 Αποσύνθεση (decomposition) Αποσύνθεση του σχήματος σε 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 είναι σε "καλή" μορφή. Το ζητούμενο είναι: αποσύνθεση χωρίς απώλεια πληροφορίας (lossless decomposition) Φορμαλιστικά: σχέση r τύπου R, r = R1 (r) R2 (r) Β : [4] Θεωρία Κανονικοποίησης 10 4.5

Συναρτησιακές Εξαρτήσεις Περιορισμοί πάνω στο σύνολο των έγκυρων σχέσεων Απαιτούν η τιμή ορισμένων χαρακτηριστικών να προσδιορίζει μοναδικά την τιμή άλλων χαρακτηριστικών Γενίκευση της έννοιας του κλειδιού Ορισμός: Έστω R ένας τύπος σχέσης, με α R and β R. Η συναρτησιακή εξάρτηση (functional dependence FD) α β ισχύει πάνω στον R εάν και μόνο εάν t 1 [α] = t 2 [α] t 1 [β ] = t 2 [β ] Παραδείγματα: branch name assets, branch city loan number amount, branch name Β : [4] Θεωρία Κανονικοποίησης 11 Συναρτησιακές Εξαρτήσεις (συν.) Το σύνολο χαρακτηριστικών K αποτελεί υπερκλειδί (superkey) για τον τύπο σχέσης R εάν και μόνο εάν K R Το K αποτελεί υποψήφιο κλειδί (candidate key) για τον 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] Θεωρία Κανονικοποίησης 12 4.6

Συναρτησιακές Εξαρτήσεις (συν.) Χρησιμοποιούμε συναρτησιακές εξαρτήσεις για να: Ελέγξουμε την εγκυρότητα μιας σχέσης r σύμφωνα με ένα δοθέν σύνολο συναρτησιακών εξαρτήσεων F (οπότε λέμε ότι η r ικανοποιεί την F). Προδιαγράψουμε περιορισμούς F πάνω σε έναν τύπο σχέσης R (οπότε λέμε ότι η F ισχύει για τον R) Μια συναρτησιακή εξάρτηση καλείται τετριμμένη εάν ικανοποιείται οπωσδήποτε σε κάθε στιγμιότυπο ενός τύπου σχέσης. π.χ. customer name, loan number customer name Γενικά, α β είναι τετριμμένη εάν β α Β : [4] Θεωρία Κανονικοποίησης 13 Κανονικοποίηση με χρήση συναρτησιακών εξαρτήσεων Όταν αποσυνθέτουμε ένα τύπο σχέσης R με ένα σύνολο συναρτησιακών εξαρτήσεων F στους τύπους σχέσεων R 1, R 2,.., R n έχουμε 3πλο στόχο: Στόχος 1: όχι απώλεια πληροφορίας Η Αποσύνθεση πρέπει να είναι χωρίς απώλεια πληροφορίας (lossless decomposition) Στόχος 2: όχι πλεονασμός πληροφορίας Οι τύποι σχέσεων R i που προκύπτουν από την αποσύνθεση, κατά προτίμηση να είναι σε Boyce Codd Κανονική Μορφή ή 3 η Κανονική Μορφή (θα τις ορίσουμε σε λίγο...) Στόχος 3: διατήρηση εξαρτήσεων Έστω F i το σύνολο των εξαρτήσεων που περιέχουν μόνο χαρακτηριστικά του R i. Η αποσύνθεση επιθυμούμε να διατηρεί τις εξαρτήσεις. Β : [4] Θεωρία Κανονικοποίησης 14 4.7

Παράδειγμα αποσύνθεσης R = (A, B, C) F = {A B, B C) Η αποσύνθεση μπορεί να γίνει με δύο εναλλακτικούς τρόπους R 1 = (A, B), R 2 = (B, C) Αποσύνθεση με απώλεια πληροφορίας: R 1 R 2 = {B} and B BC Διατήρηση εξαρτήσεων? Ναι R 1 = (A, B), R 2 = (A, C) Αποσύνθεση χωρίς απώλεια πληροφορίας : R 1 R 2 = {A} and A AB Διατήρηση εξαρτήσεων? Όχι (δεν μπορούμε να ελέγξουμε αν ισχύει B C χωρίς να εκτελέσουμε τη σύνδεση R 1 R 2 ) Β : [4] Θεωρία Κανονικοποίησης 15 Πρώτη Κανονική Μορφή (1NF) Αποσύνθεση Συναρτησιακές Εξαρτήσεις Δεύτερη (2NF) και Τρίτη Κανονική Μορφή (3NF) Boyce Codd Κανονική Μορφή (BCNF) Καθολική Διαδικασία Σχεδίασης ΒΔ Β : [4] Θεωρία Κανονικοποίησης 16 4.8

Δεύτερη Κανονική Μορφή Ένας τύπος σχέσης R είναι σε 2 η Κανονική Μορφή (2 nd Normal Form 2NF) εάν είναι σε 1NF και επιπλέον: Κανένα χαρακτηριστικό (από αυτά που δεν συμμετέχουν σε υποψήφιο κλειδί) δεν προσδιορίζεται από τμήμα ενός υποψήφιου κλειδιού K Φορμαλιστικά: (a b) in FD: a K b K Παράδειγμα: R = (customer name, loan number, amount) Καταρχήν η R είναι σε 1NF Όμως, ισχύει η εξάρτηση loan number amount και το χαρακτηριστικό loannumber είναι μέρος του υποψήφιου κλειδιού {customer name, loan number}. Άρα η R δεν είναι σε 2NF Β : [4] Θεωρία Κανονικοποίησης 17 Δεύτερη Κανονική Μορφή (συν.) Πώς γίνεται αποσύνδεση σε 2NF: Απαλλάσσουμε την R από την προβληματική εξάρτηση, η οποία με τη σειρά της σχηματίζει ένα νέο τύπο σχέσης. Παράδειγμα: R = (customer name, loan number, amount) Η προβληματική εξάρτηση είναι η loan number amount Άρα: R 1 = (customer name, loan number), R 2 = (loan number, amount) Τόσο η R 1 όσο και η R 2 είναι σε 2NF Β : [4] Θεωρία Κανονικοποίησης 18 4.9

Τρίτη Κανονική Μορφή Ένας τύπος σχέσης R είναι σε 3 η Κανονική Μορφή (3 rd Normal Form 3NF) εάν είναι σε 2NF και επιπλέον: Κανένα χαρακτηριστικό (από αυτά που δεν συμμετέχουν σε υποψήφιο κλειδί) δεν προσδιορίζεται μεταβατικά από ένα υποψήφιο κλειδί K Η μεταβατική εξάρτηση ισχύει όταν παρεμβάλλεται χαρακτηριστικό από αυτά που δεν συμμετέχουν σε υποψήφιο κλειδί Φορμαλιστικά: (a b), (b c) in FD: a = K b K c K Παράδειγμα: R = (loan number, amount, branch name, branch city) Καταρχήν η R είναι σε 2NF. Όμως: loan number branch name και branch name branch city, οπότε το branch city προσδιορίζεται μεταβατικά από το loan number μέσω του branch name. Άρα η R δεν είναι σε 3NF Β : [4] Θεωρία Κανονικοποίησης 19 Τρίτη Κανονική Μορφή (συν.) Πώς γίνεται αποσύνδεση σε 3NF: Απαλλάσσουμε την R από την προβληματική εξάρτηση, η οποία με τη σειρά της σχηματίζει ένα νέο τύπο σχέσης. Παράδειγμα: R = (loan number, amount, branch name, branch city) Η προβληματική εξάρτηση είναι η branch name branch city Άρα: R 1 = (loan number, amount, branch name), R 2 = (branch name, branchcity) Τόσο η R 1 όσο και η R 2 είναι σε 3NF Αποδεικνύεται ότι πάντοτε μπορεί να βρεθεί μια αποσύνθεση σε 3NF που να είναι αποσύνθεση χωρίς απώλεια πληροφορίας και να διατηρεί τις εξαρτήσεις. Β : [4] Θεωρία Κανονικοποίησης 20 4.10

Πρώτη Κανονική Μορφή (1NF) Αποσύνθεση Συναρτησιακές Εξαρτήσεις Δεύτερη (2NF) και Τρίτη Κανονική Μορφή (3NF) Boyce Codd Κανονική Μορφή (BCNF) Καθολική Διαδικασία Σχεδίασης ΒΔ Β : [4] Θεωρία Κανονικοποίησης 21 Boyce Codd Κανονική Μορφή Ένας τύπος σχέσης R είναι σε Boyce Codd Κανονική Μορφή (Boyce Codd Normal Form BCNF) εάν για όλες τις συναρτησιακές εξαρτήσεις α β που ισχύουν στην R, το α αποτελεί υποψήφιο κλειδί της R Προσοχή: δεν ξεκινάμε τον έλεγχο με την παραδοχή ότι η R είναι σε 3NF Απλά, μπορεί να αποδειχθεί ότι αν η R είναι σε BCNF τότε είναι και σε 3NF. Φορμαλιστικά: (a b) in FD: a K Παράδειγμα: Έστω R = (A, B, C), ισχύουν οι συναρτησιακές εξαρτήσεις F = {A B, B C} και {A} είναι το κλειδί Η R δεν είναι σε BCNF (μάλιστα, δεν είναι ούτε σε 3NF!!) Έστω ότι γίνεται η αποσύνθεση της R σε R 1 = (A,B), R 2 = (B,C) οι R 1 και R 2 είναι σε BCNF Β : [4] Θεωρία Κανονικοποίησης 22 4.11

Boyce Codd Κανονική Μορφή (συν.) Πώς γίνεται αποσύνδεση σε 3NF: Κάθε συναρτησιακή εξάρτηση σχηματίζει ένα νέο τύπο σχέσης. Παράδειγμα: R = (branch name, branch city, assets, customer name, loan number, amount) συναρτησιακές εξαρτήσεις: branch name assets, branch city loan number amount, branch name Άρα: R 1 = (branch name, branch city, assets), R 2 = (branch name, loan number, amount), R 3 = (customer name, loan number) Β : [4] Θεωρία Κανονικοποίησης 23 BCNF και Διατήρηση Εξαρτήσεων Ιδιότητες της BCNF: Αποσύνθεση χωρίς απώλεια πληροφορίας ΝΑΙ Διατήρηση εξαρτήσεων ΙΣΩΣ (!) Με άλλα λόγια, δεν είναι πάντοτε δυνατό να πάρουμε μια αποσύνθεση BCNF που να διατηρεί τις εξαρτήσεις!! Παράδειγμα: R = (J, K, L), F = {JK L, L K}, δύο υποψήφια κλειδιά JK και JL R είναι σε 3NF αλλά δεν είναι σε BCNF Οποιαδήποτε αποσύνθεση της R αδυνατεί να διατηρήσει την εξάρτηση JK L Tότε καταφεύγουμε στη λύση της 3NF (μπορεί να αποδειχθεί ότι αν ένας τύπος σχέσης R είναι σε BCNF τότε είναι και σε 3NF) Αυτήηλύσηεπιτρέπεικάποιαςμορφήςπλεονασμό(με συνεπαγόμενα προβλήματα όμως) Β : [4] Θεωρία Κανονικοποίησης 24 4.12

BCNF και Διατήρηση Εξαρτήσεων (συν.) Προβλήματα που μπορεί να προκύψουν λόγω πλεονασμού στην 3NF R = (J, K, L) F = {JK L, L K} J L K j 1 j 2 j 3 null l 1 l 1 l 1 l 2 k 1 k 1 k 1 k 2 Επανάληψη πληροφορίας (π.χ., η συσχέτιση l 1, k 1 ) Ανάγκη για χρήση τιμών null (π.χ., για να αναπαρασταθεί η συσχέτιση l 2, k 2 όταν δεν υπάρχει αντίστοιχη τιμή για το J). Β : [4] Θεωρία Κανονικοποίησης 25 Τέταρτη (4NF) και Πέμπτη (5NF) Κανονική Μορφή Με τη χρήση των συναρτησιακών εξαρτήσεων (functional dependencies FD) μπορούμε να ορίσουμε 2NF, 3NF και BCNF Έχουν μελετηθεί και άλλες εξαρτήσεις: πλειότιμες εξαρτήσεις (Multi Valued Dependencies MVD), εξαρτήσεις συνένωσης (Join Dependencies), εξαρτήσεις εγκλεισμού (Inclusion Dependencies),... Αυτές οι εξαρτήσεις μας πάνε σε περαιτέρω κανονικές μορφές, 4NF και 5NF Έχουν μελετηθεί θεωρητικά αλλά...... δεν είναι στους σκοπούς του μαθήματος!! Β : [4] Θεωρία Κανονικοποίησης 26 4.13

Πρώτη Κανονική Μορφή (1NF) Αποσύνθεση Συναρτησιακές Εξαρτήσεις Δεύτερη (2NF) και Τρίτη Κανονική Μορφή (3NF) Boyce Codd Κανονική Μορφή (BCNF) Καθολική Διαδικασία Σχεδίασης ΒΔ Β : [4] Θεωρία Κανονικοποίησης 27 Καθολική διαδικασία σχεδίασης ΒΔ Οι στόχοι στη σχεδίαση σχεσιακών ΒΔ είναι: BCNF Σύνδεση χωρίς απώλεια πληροφορίας Διατήρηση εξαρτήσεων Ανδενμπορούμεναταπετύχουμε, κάνουμε υποχωρήσεις: Μη διατήρηση κάποιων εξαρτήσεων 3NF αντί BCNF (πλεονασμός...) Ας σημειωθεί ότι η SQL δεν παρέχει κάποιον άμεσο τρόπο να προδιαγραφούν οι συναρτησιακές εξαρτήσεις, πέρα από τους περιορισμούς του κλειδιού. Μπορούν να προδιαγραφούν με assertions, αλλά ο έλεγχός τους κοστίζει Β : [4] Θεωρία Κανονικοποίησης 28 4.14

Καθολική διαδικασία σχεδίασης ΒΔ (συν.) Κάνουμε την παραδοχή ότι ο τύπος σχέσης R : θα μπορούσε να προκύψει όταν μετατρέπουμε ένα διάγραμμα E R σε ένα σύνολο πινάκων. θα μπορούσε να θεωρηθεί ως μία και μόνη σχέση που περιέχει όλα τα χαρακτηριστικά που μας ενδιαφέρουν στη ΒΔ (ονομάζεται καθολική σχέση universal relation). θα μπορούσε να είναι το αποτέλεσμα κάποιων σχεδιαστικών αποφάσεων στην πορεία ελέγχου ή μετατροπής μιας σχέσης σε κάποια κανονική μορφή Β : [4] Θεωρία Κανονικοποίησης 29 Η προσέγγιση της καθολικής σχέσης Ησχέσηr 1 r 2 r n ονομάζεται καθολική σχέση (universal relation) καθώς εμπλέκει όλα τα χαρακτηριστικά της ΒΔ όπως ορίζονται από το R 1 R 2 R n «άκυρες» πλειάδες πλειάδες που εξαφανίζονται όταν υπολογίζουμε μια σύνδεση. Έστω r 1 (R 1 ), r 2 (R 2 ),., r n (R n ) ένα σύνολο από σχέσεις Μια πλειάδα r της σχέσης r i είναι «άκυρη» πλειάδα εάν η r δεν βρίσκεται μέσα στη σχέση: Ri (r 1 r 2 r n ) Β : [4] Θεωρία Κανονικοποίησης 30 4.15

Παράδειγμα αποσύνθεσης καθολικής σχέσης Έστω σε εννοιολογικό επίπεδο έχουν καταγραφεί τα εξής: Οντότητες: customer (customer name), loan (loan number, amount), branch (branchname, branch city, assets) Συσχετίσεις: customer loan (τύπου M:N), loan branch (τύπου N:1) Το σχήμα καθολικής σχέσης που προκύπτει είναι: U = (branch name, branch city, assets, customer name, loan number, amount) Ένα στιγμιότυπο της σχέσης: Έλεγχος για 2NF?? για 3NF?? για BCNF?? Β : [4] Θεωρία Κανονικοποίησης 31 Μοντέλο E R και Κανονικοποίηση Όταν το διάγραμμα E R σχεδιάζεται προσεκτικά, με επιτυχή εντοπισμό των οντοτήτων, οι πίνακες που προκύπτουν δεν χρειάζονται περαιτέρω κανονικοποίηση Όμως, σε πραγματικές καταστάσεις, μπορούν να υπάρχουν συναρτησιακές εξαρτήσεις από χαρακτηριστικά που δεν είναι κλειδιά προς άλλα χαρακτηριστικά μιας οντότητας π.χ. οντότητα employee με χαρακτηριστικά department number και department address και με τη συναρτησιακή εξάρτηση department number department address Ένας καλός σχεδιασμός θα είχε αναγνωρίσει το department ως οντότητα Β : [4] Θεωρία Κανονικοποίησης 32 4.16

Απο κανονικοποίηση (denormalization) για λόγους απόδοσης Μερικές φορές για λόγους απόδοσης προτιμούμε μη κανονικοποιημένα σχήματα π.χ. αν θέλουμε τα customer name, account number και balance να είναι μαζί στο αποτέλεσμα μιας ερώτησης απαιτείται account depositor 1 ο εναλλακτικό: απο κανονικοποίηση με τα χαρακτηριστικά των σχέσεων να είναι μαζί σε μία (μη κανονικοποιημένη) σχέση + μεγαλύτερη ταχύτητα στις ερωτήσεις μεγαλύτερες απαιτήσεις χώρου και χρόνου εκτέλεσης των αλλαγών στη ΒΔ, κίνδυνος σφαλμάτων 2 ο εναλλακτικό : ορισμός μιας υλοποιημένης θεώρησης (materialized view) account depositor τα ίδια υπέρ και κατά όπως πριν, εκτόςτουκινδύνουσφαλμάτων Β : [4] Θεωρία Κανονικοποίησης 33 Άλλα σχεδιαστικά ζητήματα Υπάρχουν προβλήματα που δεν οφείλονται στη (μη) κανονικοποίηση αλλά σε κακή σύλληψη: Παράδειγμα: αντί του earnings(company id, year, amount), να έχουμε Πολλούς πίνακες: earnings 2000, earnings 2001, earnings 2002, κλπ., όλοι του τύπου (company id, earnings). Είναι μεν σε BCNF, αλλά καθιστούν δύσκολη την εκτέλεση ερωτήσεων όταν εμπλέκονται πολλά έτη και επιπλέον απαιτείται ένας νέος πίνακας κάθε έτος! company year(company id, earnings 2000, earnings 2001, earnings 2002) Επίσης σε BCNF, αλλά καθιστούν δύσκολη την εκτέλεση ερωτήσεων όταν εμπλέκονται πολλά έτη και επιπλέον απαιτείται ένα νέο χαρακτηριστικό κάθε έτος! Αποτελεί κλασικό παράδειγμα λειτουργίας crosstab, όπου οι τιμές ενός χαρακτηριστικού γίνονται στήλες Χρησιμοποιείται σε spreadsheets και σε εργαλεία ανάλυσης δεδομένων Β : [4] Θεωρία Κανονικοποίησης 34 4.17