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

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

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

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


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

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

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

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

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

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

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

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

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

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


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

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

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


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

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

Lecture 23: Functional Dependencies and Normalization

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

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

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

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

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

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

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

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

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

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

Απεικόνιση Διαγράμματος Οντοτήτων-Συσχετίσεων σε Σχεσιακό Μοντέλο Δεδομένων

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

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

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

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

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

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

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

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

Lecture 21: Functional Dependencies and Normalization

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

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

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

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

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

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

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

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

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

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

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

Lecture 22: Functional Dependencies and Normalization

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

Απεικόνιση Διαγράμματος Οντοτήτων-Συσχετίσεων σε Σχεσιακό Μοντέλο Δεδομένων

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

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

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

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

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

Lecture 21: Functional Dependencies and Normalization

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

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

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

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

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Κανόνες μετατροπής Διαγράμματος Οντοτήτων-Συσχετίσεων σε Σχεσιακό Σχήμα. Δρ. Βαγγελιώ Καβακλή ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ,

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

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

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

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

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

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

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

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

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

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

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

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

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

Διάγραμμα Οντοτήτων - Συσχετίσεων

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

Βάσεις Δεδομένων. Σταύρος Βαλσαμίδης Βάσεις Δεδομένων Διάγραμμα Ο-Σ 1

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

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

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

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

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

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

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

Lecture 24: Functional Dependencies and Normalization IV

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

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

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

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

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

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

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

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

Transcript:

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

Αξιολόγηση Σχεσιακών Σχημάτων ΒΔ Πως μπορούμε να κρίνουμε εάν ένα Σχεσιακό Σχήμα είναι καλό ή αποδοτικό ή αν έχει λάθη; Σε γενικές γραμμές διακρίνουμε: Λογικό Επίπεδο: Πόσο κατανοητό είναι για τους χρήστες Επίπεδο Υλοποίησης: Πως αποθηκεύονται και ενημερώνονται οι πλειάδες (γραμμές) Θα ασχοληθούμε με το επίπεδο υλοποίησης: Τη μορφή δηλαδή των σχέσεων του σχήματος Βάσεις Δεδομένων Κανονικοποίηση 2

Άτυπες Οδηγίες Ξεκινάμε με ένα σύνολο από εμπειρικές άτυπες οδηγίες Σημασιολογία των γνωρισμάτων Μείωση/Εξάλειψη περιττών τιμών Μείωση/Εξάλειψη τιμών NULL Εξάλειψη της δυνατότητας δημιουργίας πλασματικών πλειάδων (Αγγλικός Όρος: spurious tuples) Βάσεις Δεδομένων Κανονικοποίηση 3

Σημασιολογία Γνωρισμάτων Ταγνωρίσματαπουεντάσσουμεσεμια σχέση θα πρέπει να έχουν κάποια πραγματική σχέση μεταξύ τους και να μπορούν να ερμηνευτούν Γενικά όσο πιο κατανοητή είναι η ερμηνεία μιας Σχέσης (Πίνακας) τόσο καλύτερο είναι το τελικό Σχεσιακό Σχήμα που θα προκύψει Παράδειγμα: Η Σχέση Εργαζόμενος Βάσεις Δεδομένων Κανονικοποίηση 4

Περιττές Τιμές και Ανωμαλίες Ενημέρωσης Μια σχέση που αντιστοιχεί στη Συνένωση Εργαζόμενος με Τμήμα οδηγεί σε Επανάληψη της ίδιας πληροφορίας Ανωμαλίες κατά την ενημέρωση Ανωμαλίες κατά τη διαγραφή και την ενημέρωση Βάσεις Δεδομένων Κανονικοποίηση 5

ΕΡΓ_ΕΡΓΟ Παράδειγμα ΑΡ_ΤΑΥΤ ΚΩΔ_ΕΡΓΟΥ ΩΡΕΣ ΕΡ_ΟΝΟΜΑ Ε_ΟΝΟΜΑ ΤΟΠ_ΕΡΓΟΥ Μια υποτιθέμενη σχέση ΕΡΓ_ΕΡΓΟ για τη βάση δεδομένων ΕΤΑΙΡΕΙΑ Τα βέλη απεικονίζουν τις συναρτησιακές εξαρτήσεις μεταξύ των γνωρισμάτων που συμμετέχουν στη σχέση Είναι καλή επιλογή η σχέση αυτή; Θα εμφανίζονται περιττά δεδομένα στη σχέση; Υπάρχει το ενδεχόμενο ασυνέπειας δεδομένων στη σχέση για παράδειγμα κατά την ενημέρωση των στοιχείων; Βάσεις Δεδομένων Κανονικοποίηση 6

Τιμές NULL Πιθανές ερμηνείες μιας τιμής NULL για ένα γνώρισμα στη σχέση (πίνακα): Το γνώρισμα δεν έχει νόημα για τη γραμμή αυτή Η τιμή του γνωρίσματος είναι άγνωστη Η τιμή του γνωρίσματος είναι γνωστή αλλά δεν έχει εισαχθεί ακόμη στη ΒΔ Σχεδιάζουμε έτσι το σχεσιακό σχήμα μιας βάσης δεδομένων ώστε να αποφεύγονται όσο είναιδυνατόοιεμφανίσειςτηςτιμήςnull μέσα στα πεδία των σχέσεων Βάσεις Δεδομένων Κανονικοποίηση 7

Πλασματικές Πλειάδες Η συνένωση μεταξύ των σχέσεων να γίνεται έτσι ώστε να μην δημιουργούνται πλασματικές (spurious) πλειάδες Συνένωση με βάση κλειδιά ή ξένα κλειδιά Το πρόβλημα μπορεί να προκληθεί από μια κακή κατανομή των γνωρισμάτων στις σχέσεις Βάσεις Δεδομένων Κανονικοποίηση 8

Παράδειγμα Πλασματικών Πλειάδων Έστω ότι χρησιμοποιούμε τις σχέσεις ΕΡΓ_ΤΟΠΣ και ΕΡΓ_ΕΡΓΟ1 αντί της αρχικής σχέσης ΕΡΓ_ΕΡΓΟ ΕΡΓ_ΤΟΠΣ ΕΡ_ΟΝΟΜΑ ΕΡΓ_ΕΡΓΟ1 ΤΟΠ_ΕΡΓΟΥ ΑΡ_ΤΑΥΤ ΚΩΔ_ΕΡΓΟΥ ΩΡΕΣ Ε_ΟΝΟΜΑ ΤΟΠ_ΕΡΓΟΥ Κοινό γνώρισμα: ΤΟΠ_ΕΡΓΟΥ Αν όμως πάρουμε συνένωση των πινάκων με βάση το γνώρισμα ΤΟΠ_ΕΡΓΟΥ θα δημιουργηθούν πιθανότατα και πλασματικές πλειάδες! Βάσεις Δεδομένων Κανονικοποίηση 9

Συναρτησιακή Εξάρτηση (1) Έστω A 1, A 2,.., A n το σύνολο όλων των γνωρισμάτων ενός σχεσιακού σχήματος Σύνολο γνωρισμάτων X και Συναρτησιακή εξάρτηση Χ Υ Οι τιμές των γνωρισμάτων της X καθορίζουν τις τιμές των γνωρισμάτων της Y Δύο πλειάδες με τις ίδιες τιμές για τα γνωρίσματα X θα πρέπει υποχρεωτικά να έχουν και τις ίδιες τιμές για τα Y Βάσεις Δεδομένων Κανονικοποίηση 10

Συναρτησιακή Εξάρτηση (2) Παραδείγματα: Για ένα αυτοκίνητο: Αριθμός Πινακίδας ΑΤ Ιδιοκτήτη Για ένα διαμέρισμα {Διεύθυνση, Αριθμός Διαμερίσματος} ΑΤ Ιδιοκτήτη Για μια ομάδα ποδοσφαίρου Ομάδα, Σεζόν, Αριθμός Φανέλας Όνομα Παίκτη Βάσεις Δεδομένων Κανονικοποίηση 11

Συναρτησιακή Εξάρτηση (3) Σχετίζεται άμεσα με την έννοια του (υποψήφιου) κλειδιού Οι συναρτησιακές εξαρτήσεις προσδιορίζονται από τη σημασιολογία των γνωρισμάτων Παράδειγμα: ΑΡ_ΤΑΥΤ ΟΝΟΜΑ KWD_ERGOY {E_ONOMA, TOP_ERGOY} {AR_TAYT, KWD_ERGOY} WRES Βάσεις Δεδομένων Κανονικοποίηση 12

Ανακλαστική: Επαυξητική: Μεταβατική: Διασπαστική: Ενωτική: Ιδιότητες Συναρτησιακών Εξαρτήσεων If X {Χ Υ} ΧΖ ΥΖ {Χ Υ,Υ Ζ} Χ Ζ {Χ ΥΖ} Χ Υ {Χ Υ,Χ Ζ} Χ ΥΖ Ψευδομεταβατική: {Χ Υ,WY Ζ} WΧ Ζ Y X Y Βάσεις Δεδομένων Κανονικοποίηση 13

Κλειστότητα (1) Έστω ένα σύνολο γνωρισμάτων Χ Με Χ + δηλώνουμε όλες τις συναρτησιακές εξαρτήσεις που προκύπτουν για το Χ Βάσεις Δεδομένων Κανονικοποίηση 14

Κλειστότητα (2) F= { SSN ENAME, PNUMBER {PNAME, PLOCATION}, {SSN, PNUMBER} HOURS} {SSN} + = {SSN, ENAME} {PNUMBER} + = {PNUMBER, PNAME, PLOCATION} {SSN, PNUMBER} + = {SSN,PNUMBER,ENAME,PNAME,PLOCATION,H OURS} Βάσεις Δεδομένων Κανονικοποίηση 15

Σχεδιασμός Σχεσιακού Σχήματος Στην πράξη ένα σχεσιακό σχήμα συνήθως σχεδιάζεται με έναν από τους ακόλουθους τρόπους: Εννοιολογικός Σχεδιασμός πχ. με το Μοντέλο Ο-Σ και απεικόνιση του μοντέλου σε Σχεσιακό Σχήμα Απευθείας σχεδίαση των Σχέσεων του Σχήματος Πως θα αξιολογήσουμε μετά το σχεσιακό σχήμα με κάποιο αυστηρό μαθηματικό τρόπο; Βάσεις Δεδομένων Κανονικοποίηση 16

Κανονικές Μορφές Ένα Σχεσιακό Σχήμα που ικανοποιεί συγκεκριμένους κανόνες λέμε ότι είναι σε κάποια συγκεκριμένη κανονική μορφή Ονομασία των Κανονικών Μορφών Πρώτη, Δεύτερη, Τρίτη, BNF, κτλ. Προτάθηκαν από τον Codd το 1972 μαζί με το Σχεσιακό Μοντέλο Βάσεις Δεδομένων Κανονικοποίηση 17

Κανονικοποίηση (1) Η διαδικασία για τη διάσπαση των δεδομένων σχεσιακών σχημάτων έτσι ώστε να ικανοποιούνται ορισμένες επιθυμητές ιδιότητες Η κανονικοποίηση βασίζεται στις συναρτησιακές εξαρτήσεις και τα πρωτεύοντα κλειδιά Βάσεις Δεδομένων Κανονικοποίηση 18

Κανονικοποίηση (2) Η χρήση κανονικοποίησης δεν αρκεί από μόνη της για να εγγυηθεί σωστά και αποδοτικά σχεσιακά σχήματα Πρέπει να εξασφαλίζεται επιπλέον lossless join (να μη δημιουργούνται πλασματικές πλειάδες) dependency preservation (να διατηρούνται οι συναρτησιακές εξαρτήσεις) Βάσεις Δεδομένων Κανονικοποίηση 19

Αποκανονικοποίηση (Denormalization) Σε ορισμένες περιπτώσεις μπορεί να επιλέξουμε να μην κανονικοποιήσουμε πλήρως μέχρι κάποιο βαθμό, πχ 3NF αλλά να σταματήσουμε στο 2NF για ορισμένες τουλάχιστον σχέσεις Μπορεί να εξασφαλίζουμε μεγαλύτερη απόδοση για ορισμένες πράξεις Βάσεις Δεδομένων Κανονικοποίηση 20

Κλειδιά μιας Σχέσης Υπερκλειδί: Σύνολο γνωρισμάτων που είναι μοναδικό για τις πλειάδες (γραμμές) της σχέσης Υποψήφιο Κλειδί: Υπερκλειδί που δεν έχει κανένα περιττό γνώρισμα ή αλλιώς αν αφαιρεθεί οποιοδήποτε γνώρισμα παύει να είναι κλειδί Πρωτεύον Κλειδί: Ένα από τα υποψήφια κλειδιά επιλέγεται ως το πρωτεύον κλειδί Δευτερεύοντα Κλειδιά: Υποψήφια κλειδιά που δεν έχουν επιλεγεί ως πρωτεύοντα Βάσεις Δεδομένων Κανονικοποίηση 21

Κανονικές Μορφές (Normal Forms) Βάσεις Δεδομένων Κανονικοποίηση 22

ΠρώτηΚανονικήΜορφή(1NF) Είναι απλή: Επιτρέπονται μόνο ατομικές τιμές για τα γνωρίσματα Ουσιαστικά δεν επιτρέπονται πλειότιμα γνωρίσματα, σύνθετα γνωρίσματα και συνδυασμοί τους Κανονικοποίηση: Πως χειριζόμαστε σύνθετα ή πλειότιμα γνωρίσματα Βάσεις Δεδομένων Κανονικοποίηση 23

Δεύτερη Κανονική Μορφή (2NF) Περιλαμβάνει την 1NF Επιπλέον επιβάλλει πλήρη συναρτησιακή εξάρτηση Άτυπη περιγραφή: Δεν επιτρέπεται σε μια σχέση ένα μη πρωτεύον γνώρισμα να εξαρτάται από ένα μέρος του κλειδιού μόνο Κάθε γνώρισμα που δεν ανήκει στο κλειδί πρέπει να είναι fully functional dependent στο πρωτεύον κλειδί Βάσεις Δεδομένων Κανονικοποίηση 24

Δεύτερη Κανονική Μορφή (2NF) ΕΡΓ_ΕΡΓΟ ΑΡ_ΤΑΥΤ ΚΩΔ_ΕΡΓΟΥ ΩΡΕΣ ΕΡ_ΟΝΟΜΑ Ε_ΟΝΟΜΑ ΤΟΠ_ΕΡΓΟΥ EP1 EP2 ΑΡ_ΤΑΥΤ ΚΩΔ_ΕΡΓΟΥ ΩΡΕΣ ΑΡ_ΤΑΥΤ ΕΡ_ΟΝΟΜΑ EP3 ΚΩΔ_ΕΡΓΟΥ Ε_ΟΝΟΜΑ ΤΟΠ_ΕΡΓΟΥ Βάσεις Δεδομένων Κανονικοποίηση 25

Τρίτη Κανονική Μορφή (3NF) Περιλαμβάνει τη 2NF Αφορά την έννοια της Μεταβατικής Εξάρτησης Άτυπη περιγραφή: Δεν πρέπει να υπάρχει μεταβατική εξάρτηση από το πρωτεύον κλειδί σε ένα γνώρισμα που δεν ανήκει στο κλειδί Βάσεις Δεδομένων Κανονικοποίηση 26

Τρίτη Κανονική Μορφή (3NF) ΕΡΓ_ΤΜΗΜΑ ΕΡ_ΟΝΟΜΑ ΑΡ_ΤΑΥΤ ΗΜ_ΓΕΝ ΔΙΕΥΘΥΝΣΗ ΚΩΔ_ΤΜΗΜ Τ_ΟΝΟΜΑ ΔΙΕΥΘΥΝΤΗΣ ΕΕ1 ΕΡ_ΟΝΟΜΑ ΑΡ_ΤΑΥΤ ΗΜ_ΓΕΝ ΔΙΕΥΘΥΝΣΗ ΚΩΔ_ΤΜΗΜ ΕΕ2 ΚΩΔ_ΤΜΗΜ Τ_ΟΝΟΜΑ ΔΙΕΥΘΥΝΤΗΣ Βάσεις Δεδομένων Κανονικοποίηση 27

Άσκηση Κανονικοποίησης Θεωρείστε τη σχέση R = {A, B, C, D, E, F, G, H, I, J} και το σύνολο των συναρτησιακών εξαρτήσεων F = {{A} {D,E}, {A,B} {H,J}, {E} {F}, {B} {C}}. 3a. Να βρείτε ένα πρωτεύον κλειδί για την R 3b. Να κανονικοποιηθεί η R σε 2NF 3c. Να κανονικοποιηθεί η R σε 3NF Λύση: 3a. Προφανές Υπερκλειδί για την R είναι το K:= {A,B,C,D,E,F,G,H,I,J} Δεν μπορούμε να αφαιρέσουμε τα A, B, G, I Τα D, E μπορούν να αφαιρεθούν διότι A D,E Τα H, J μπορούν να αφαιρεθούν διότι A,B H,J Επίσης το F διότι E F και το C διότι B C Η κλειστότητα (A, B, G, I)+ με βάση την F είναι {A, B, C, D, E, F, G, H, I, J} και επομένως το {A, B, G, I} είναι ένα υποψήφιο κλειδί για την R 3b. Κανονικοποίηση σε 2NF R1(A, D, E, F), R2(A, B, H, J) και R3(B, C) 3c. Κανονικοποίηση σε 3NF R1(A, D, E), R2(E, F), R3(A, B, H, J) και R4(B, C) Βάσεις Δεδομένων Κανονικοποίηση 28