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



Σχετικά έγγραφα
Κανονικοποίηση. Παύλος Εφραιμίδης. Βάσεις Δεδομένων Κανονικοποίηση 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

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

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

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

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

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

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

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

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

Lecture 21: Functional Dependencies and Normalization

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Lecture 22: Functional Dependencies and Normalization

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

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

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

Lecture 21: Functional Dependencies and Normalization

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Σχεσιακή Άλγεβρα. Παύλος Εφραιμίδης. Βάσεις Δεδομένων Σχεσιακή Άλγεβρα 1

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

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

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

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

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

Lecture 24: Functional Dependencies and Normalization IV

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

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

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

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 2: Μοντελο Συσχετίσεων Οντοτήτων, Μελέτη Περίπτωσης: Η βάση δεδομένων των CD

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

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

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

Transcript:

Αξιολόγηση Σχεσιακών Σχημάτων ΒΔ Κανονικοποίηση Παύλος Εφραιμίδης Βάσεις Δεδομένων Κανονικοποίηση 1 Πως μπορούμε να κρίνουμε εάν ένα Σχεσιακό Σχήμα είναι καλό ή αποδοτικό ή αν έχει λάθη; Σε γενικές γραμμές διακρίνουμε: Λογικό Επίπεδο: Πόσο κατανοητό είναι για τους χρήστες Επίπεδο Υλοποίησης: Πως αποθηκεύονται και ενημερώνονται οι πλειάδες (γραμμές) Θα ασχοληθούμε με το επίπεδο υλοποίησης: Τη μορφή δηλαδή των σχέσεων του σχήματος Βάσεις Δεδομένων Κανονικοποίηση 2 Άτυπες Οδηγίες Ξεκινάμε με ένα σύνολο από εμπειρικές άτυπες οδηγίες Σημασιολογία των γνωρισμάτων Μείωση/Εξάλειψη περιττών τιμών Μείωση/Εξάλειψη τιμών NULL Εξάλειψη της δυνατότητας δημιουργίας πλασματικών πλειάδων (Αγγλικός Όρος: spurious tuples) Σημασιολογία Γνωρισμάτων Ταγνωρίσματαπουεντάσσουμεσεμια σχέση θα πρέπει να έχουν κάποια πραγματική σχέση μεταξύ τους και να μπορούν να ερμηνευτούν Γενικά όσο πιο κατανοητή είναι η ερμηνεία μιας Σχέσης (Πίνακας) τόσο καλύτερο είναι το τελικό Σχεσιακό Σχήμα που θα προκύψει Παράδειγμα: Η ΣχέσηΕργαζόμενος Βάσεις Δεδομένων Κανονικοποίηση 3 Βάσεις Δεδομένων Κανονικοποίηση 4 Περιττές Τιμές και Ανωμαλίες Ενημέρωσης Μια σχέση που αντιστοιχεί στη Συνένωση Εργαζόμενος με Τμήμα οδηγεί σε Επανάληψη της ίδιας πληροφορίας Ανωμαλίες κατά την ενημέρωση Ανωμαλίες κατά τη διαγραφή και την ενημέρωση ΕΡΓ_ΕΡΓΟ ΑΡ_ΤΑΥΤ ΚΩΔ_ΕΡΓΟΥ Παράδειγμα ΩΡΕΣ ΕΡ_ΟΝΟΜΑ Ε_ΟΝΟΜΑ Μια υποτιθέμενη σχέση ΕΡΓ_ΕΡΓΟγιατηβάσηδεδομένων ΕΤΑΙΡΕΙΑ Τα βέλη απεικονίζουν τις συναρτησιακές εξαρτήσεις μεταξύ των γνωρισμάτων που συμμετέχουν στη σχέση Είναι καλή επιλογή η σχέση αυτή; Θα εμφανίζονται περιττά δεδομένα στη σχέση; Υπάρχει το ενδεχόμενο ασυνέπειας δεδομένων στη σχέση για παράδειγμα κατά την ενημέρωση των στοιχείων; Βάσεις Δεδομένων Κανονικοποίηση 5 Βάσεις Δεδομένων Κανονικοποίηση 6 1

Τιμές 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 2

Ιδιότητες Συναρτησιακών Εξαρτήσεων Ανακλαστική: If X Y X Y Επαυξητική: {Χ Υ} ΧΖ ΥΖ Μεταβατική: {Χ Υ,Υ Ζ} Χ Ζ Διασπαστική: {Χ ΥΖ} Χ Υ Ενωτική: {Χ Υ,Χ Ζ} Χ ΥΖ Ψευδομεταβατική: {Χ Υ,WY Ζ} WΧ Ζ Κλειστότητα (1) Έστω ένα σύνολο γνωρισμάτων Χ Με Χ + δηλώνουμε όλες τις συναρτησιακές εξαρτήσεις που προκύπτουν για το Χ Βάσεις Δεδομένων Κανονικοποίηση 13 Βάσεις Δεδομένων Κανονικοποίηση 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 μαζί με το Σχεσιακό Μοντέλο Κανονικοποίηση (1) Η διαδικασία για τη διάσπαση των δεδομένων σχεσιακών σχημάτων έτσι ώστε να ικανοποιούνται ορισμένες επιθυμητές ιδιότητες Η κανονικοποίηση βασίζεται στις συναρτησιακές εξαρτήσεις και τα πρωτεύοντα κλειδιά Βάσεις Δεδομένων Κανονικοποίηση 17 Βάσεις Δεδομένων Κανονικοποίηση 18 3

Κανονικοποίηση (2) Η χρήση κανονικοποίησης δεν αρκεί από μόνη της για να εγγυηθεί σωστά και αποδοτικά σχεσιακά σχήματα Πρέπει να εξασφαλίζεται επιπλέον lossless join (να μη δημιουργούνται πλασματικές πλειάδες) dependency preservation (να διατηρούνται οι συναρτησιακές εξαρτήσεις) Βάσεις Δεδομένων Κανονικοποίηση 19 Αποκανονικοποίηση (Denormalization) Σε ορισμένες περιπτώσεις μπορεί να επιλέξουμε να μην κανονικοποιήσουμε πλήρως μέχρι κάποιο βαθμό, πχ 3NF αλλά να σταματήσουμε στο 2NF για ορισμένες τουλάχιστον σχέσεις Μπορεί να εξασφαλίζουμε μεγαλύτερη απόδοση για ορισμένες πράξεις Βάσεις Δεδομένων Κανονικοποίηση 20 Κλειδιά μιας Σχέσης Υπερκλειδί: Σύνολο γνωρισμάτων που είναι μοναδικό για τις πλειάδες (γραμμές) της σχέσης Υποψήφιο Κλειδί: Υπερκλειδί που δεν έχει κανένα περιττό γνώρισμα ή αλλιώς αν αφαιρεθεί οποιοδήποτε γνώρισμα παύει να είναι κλειδί Πρωτεύον Κλειδί: Ένα από τα υποψήφια κλειδιά επιλέγεται ως το πρωτεύον κλειδί Δευτερεύοντα Κλειδιά: Υποψήφια κλειδιά που δεν έχουν επιλεγεί ως πρωτεύοντα Κανονικές Μορφές (Normal Forms) Βάσεις Δεδομένων Κανονικοποίηση 21 Βάσεις Δεδομένων Κανονικοποίηση 22 Πρώτη Κανονική Μορφή (1NF) Είναι απλή: Επιτρέπονται μόνο ατομικές τιμές για τα γνωρίσματα Ουσιαστικά δεν επιτρέπονται πλειότιμα γνωρίσματα, σύνθετα γνωρίσματα και συνδυασμοί τους Κανονικοποίηση: Πως χειριζόμαστε σύνθετα ή πλειότιμα γνωρίσματα Δεύτερη Κανονική Μορφή (2NF) Περιλαμβάνει την 1NF Επιπλέον επιβάλλει πλήρη συναρτησιακή εξάρτηση Άτυπη περιγραφή: Δεν επιτρέπεται σε μια σχέση έναμηπρωτεύονγνώρισμαναεξαρτάταιαπόένα μέρος του κλειδιού μόνο Κάθε γνώρισμα που δεν ανήκει στο κλειδί πρέπει να είναι fully functional dependent στο πρωτεύον κλειδί Βάσεις Δεδομένων Κανονικοποίηση 23 Βάσεις Δεδομένων Κανονικοποίηση 24 4

Δεύτερη Κανονική Μορφή (2NF) ΕΡΓ_ΕΡΓΟ ΑΡ_ΤΑΥΤ ΚΩΔ_ΕΡΓΟΥ ΩΡΕΣ ΕΡ_ΟΝΟΜΑ Ε_ΟΝΟΜΑ Τρίτη Κανονική Μορφή (3NF) EP1 ΑΡ_ΤΑΥΤ ΚΩΔ_ΕΡΓΟΥ ΩΡΕΣ EP3 ΚΩΔ_ΕΡΓΟΥ Ε_ΟΝΟΜΑ EP2 ΑΡ_ΤΑΥΤ ΕΡ_ΟΝΟΜΑ Περιλαμβάνει τη 2NF Αφορά την έννοια της Μεταβατικής Εξάρτησης Άτυπη περιγραφή: Δεν πρέπει να υπάρχει μεταβατική εξάρτηση από το πρωτεύον κλειδί σε ένα γνώρισμα που δεν ανήκει στο κλειδί Βάσεις Δεδομένων Κανονικοποίηση 25 Βάσεις Δεδομένων Κανονικοποίηση 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 Πηγές/Αναφορές Κεφάλαιο 10, βιβλίο του μαθήματος Βάσεις Δεδομένων Κανονικοποίηση 29 5