Lecture 21: Functional Dependencies and Normalization

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

Lecture 21: Functional Dependencies and Normalization

Lecture 23: Functional Dependencies and Normalization

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

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

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

Lecture 22: Functional Dependencies and Normalization

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

Lecture 24: Functional Dependencies and Normalization IV

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

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

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

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

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

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

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


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


Διάλεξη 08: Αντιστοίχηση Εννοιολογικού σε Σχεσιακό Μοντέλο (ER/EER to Relational) Διδάσκων: Παναγιώτης Ανδρέου

Lecture 14: SQL DML I

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

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

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

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

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

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

Διάλεξη 16: SQL DML IV, SQL DCL, SQL TCL. Διδάσκων: Παναγιώτης Ανδρέου

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

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

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

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

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

Lecture 8: RM I + RA I

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

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

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Διαφάνεια 16-1

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

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

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

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

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 8 : Βάσεις Δεδομένων (2/2) Δρ.

Department of Computer Science University of Cyprus. EPL342 Databases. Lecture 5: ER II. Data Modeling Using the ER Model

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

Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων. Σεμινάριο 2: Εισαγωγή στις Βάσεις Δεδομένων

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

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

H SQL είναι η γλώσσα για όλα τα εμπορικά σχεσιακά συστήματα διαχείρισης βάσεων δεδομένων

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

Διάλεξη 02: Βάσεις Δεδομένων Εισαγωγή. Διδάσκων: Παναγιώτης Ανδρέου

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

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

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

Η SQL ως γλώσσα τροποποίησης Δεδομένων

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση Δίαυλος Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 5-1

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

Κεφάλαιο 5. Το Σχεσιακό Μοντέλο Δεδομένων και Περιορισμοί Σχεσιακών Βάσεων Δεδομένων

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

ΣΧΕΣΙΑΚΕΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ

ΗΥ-360 Αρχεία και Βάσεις Δεδομένων Διδάσκων: Δ. Πλεξουσάκης. Φροντιστήριο SQL Examples ΙΙ Ξένου Ρουμπίνη

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι Ενότητα 3:

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

Lecture 12: SQL DDL I


ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ. Relational Model Μαθ. #9

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

Βάσεις Δεδομένων ΗγλώσσαSQL (Structured Query Language)

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

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

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

Βάσεις Δεδομένων Η γλώσσα SQL (Structured Query Language) Εισαγωγή στην SQL (2) Ιστορικά Στοιχεία. SQL - Structured Query Language (1)

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

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

Lecture 16: SQL DML III

Το σχεσιακό μοντέλο βάσεων δεδομένων

Κεφάλαιο 4 Λογικός Σχεδιασµός Κανονικοποίηση

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

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

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

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

Lecture 21: Functional Dependencies and Normalization

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

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

Σχεδίαση και Χρήση Βάσεων Δεδομένων. Χρήση του DBDesigner. Γιώργος Πυρουνάκης - forky@di.uoa.gr

Σχεσιακή Άλγεβρα Σχεδιασμός Βάσεων Δεδομένων

Βάσεις Δεδομένων Ι. 2 ο Φροντιστήριο. Πέρδικα Πολίνα [perdika]

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

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

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Αρχιτεκτονική Συστημάτων Βάσεων Δεδομένων. Κατηγορίες χρηστών ΣΔΒΔ Αρχιτεκτονική ANSI/SPARC Γλώσσες ερωτημάτων Μοντέλα δεδομένων Λειτουργίες ΣΔΒΔ

Βάσεις Δεδομένων Σύνθετα SQL queries. Ψευδώνυμα (Aliases) (2) Ψευδώνυμα (Aliases) (1) Ασάφεια και Πλήρη Ονόματα. Ερώτημα χωρίς τον όρο WHERE (1)

Εκπαιδευτικό Εργαλείο Κανονικοποίησης

#1.1 Τι είναι η Βάση Δεδομένων

ΗΥ-360 Αρχεία και Βάσεις Δεδομένων Διδάσκων: Δ. Πλεξουσάκης. Φροντιστήριο SQL Examples Ξένου Ρουμπίνη

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

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

Διάλεξη 13: Γλώσσα Επεξεργασίας Δεδομένων/ Data Manipulation Language (SQL DML) I. Διδάσκων: Παναγιώτης Ανδρέου

DELETE, UPDATE, INSERT.

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

Transcript:

Department of Computer Science University of Cyprus EPL342 Databases Lecture 21: Functional Dependencies and Normalization Informal Design Guidelines (Chapter 14.1, Elmasri-Navathe 7ED) Demetris Zeinalipour http://www.cs.ucy.ac.cy/courses/epl342 21-1

Εισαγωγή στην Κανονικοποιήση (Normalization) Η Σχεδίαση του Σχεσιακού Σχήματος μιας βάσης δεδομένων μέχρι στιγμής γινόταν βάσει της κοινής λογικής του σχεδιαστή και όχι βάσει αυστηρών κανόνων. Τα παραγόμενα σχήματα μπορούσαν να κριθούν υποκειμενικά ως προς την Χρηστότητα (Goodness) τους αλλά όχι αντικειμενικά. Παρόλο που αναφερθήκαμε στο παρελθόν σε κάποιες γενικές οδηγίες χαρακτηρισμού της Χρηστότητας (Goodness) ενός Σχεσιακού Σχήματος, π.χ., Να ΜΗΝ υπάρχει επανάληψη πληροφορίας Να ΜΗΝ υπάρχουν πολλά NULLs σε γνωρίσματα. Να ΜΗΝ απαιτούνται πολλές συνενώσεις για να καταλήξουμε σε μια οντότητα. Αυτές οι οδηγίες δεν ήταν τυπικές (δηλ, δεν στηρίζονταν σε 21-3 κάποιο μαθηματικό EPL342: Databases υπόβαθρο - Demetris Zeinalipour οπόταν (University ήταν of Cyprus) υποκειμενικές)!

Εισαγωγή στην Κανονικοποιήση (Normalization) Κανονικοποιήση (Normalization) : Η συστηματική (τυπική) διαδικασία διασφάλισης ότι το σχήμα μιας βάσης δεδομένων έχει τις πιο κάτω πρόνοιες: Είναι κατάλληλο για εκτέλεση γενικού είδους επερωτήσεων Είναι ελεύθερο από ορισμένα μη-επιθυμητά χαρακτηριστικά (ανωμαλίες) εισαγωγής, ενημέρωσης, και διαγραφής τα οποία μπορεί να οδηγήσουν σε απώλεια δεδομένων Η Κανονικοποιήση ορίζεται το 1970 από τον Edgar Frank "Ted" Codd, τον δημιουργό του Σχεσιακού Μοντέλου. Αυτό για να επιτευχθεί ευκολότερα η μετάβαση των τότε βάσεων δεδομένων (ιεραρχικό και δικτυακό μοντέλο) στο σχεσιακό μοντέλο. Ο Codd ορίζει μέχρι το 1974 διάφορα επίπεδα Κανονικοποιήσης (1NF, 2NF,3NF και BCNF) τα οποία μπορούν να ακολουθηθούν βήμα-βήμα για προσδιορισμό ενός καλού σχεσιακού σχήματος. 21-4

Εισαγωγή στην Κανονικοποιήση (Normalization) H Κανονικοποιήση στηρίζεται στην έννοια τον συναρτησιακών εξαρτήσεων (functional dependencies), τα οποία αποτελούν γενίκευση της εννοίας του κλειδιού. Π.χ., SSN à {Name, NumberGrade, LetterGrade, Dno} NumberGrade à LetterGrade Αυτά θα μελετηθούν εκτενώς στην επόμενη διάλεξη. Προτού δούμε τις πιο πάνω έννοιες θα επιχειρήσουμε να συνοψίσουμε με άτυπο τρόπο κάποιες γενικές οδηγίες για το σχεδιασμό ενός καλού σχήματος μιας σχεσιακής βάσης. 21-6

Πλεονάζουσα Πληροφορία (Προβλήματα) Πλεονάζουσα Πληροφορία σε Σχέσεις: Δεδομένα τα οποία αποθηκεύονται επαναληπτικά (redundantly) προκαλούν τα ακόλουθα προβλήματα: Α) Σπαταλούν Χώρο Αποθήκευσης, εάν και αυτό το πρόβλημα είναι μικρό σε σχέση με το επόμενο Β) Προκαλούν προβλήματα με τις ενημερώσεις (update anomalies) Ανωμαλίες Εισαγωγής (Insertion anomalies) Ανωμαλίες Διαγραφής (Deletion anomalies) Ανωμαλίες Τροποποίησης (Modification anomalies) Ας δούμε κάποια παραδείγματα 21-10

Α) Σπατάλη Χώρου Αποθήκευσης (Redundancy) σε δυο σχέσεις Emp_Dept και Εmp_Proj Και οι δυο περιπτώσεις είναι αποτέλεσμα άκομψου σχεδιασμού του σχήματος των πινάκων Πλεονάζουσα Πληροφορία (Σπατάλη Χώρου) 21-11

Ανωμαλίες Ενημερώσεων (Insert Anomaly) Ανωμαλία Εισαγωγής (Insert Anomaly) Πρόβλημα 1: Για εισαγωγή νέας πλειάδας πρέπει να βεβαιωθούμε ότι το (Dname, Dmgr_ssn) είναι συνεπές με τις προηγούμενες εγγραφές. Π.χ., Dname= Research, Dmgr_ssn=987654321 λάθος. Γιατί; Πρόβλημα 2: Δεν μπορούμε να εισάγουμε τα στοιχεία ενός Department το οποίο δεν έχει ακόμη employees! Δεν γίνεται ούτε εάν βάλουμε NULL στα ανύπαρκτα πεδία. Γιατί; 21-12

Ανωμαλίες Ενημερώσεων (Delete Anomaly) Ανωμαλία Διαγραφής (Delete Anomaly) Πρόβλημα: Εάν σβήσουμε την τελευταία πλειάδα που περιέχει τα στοιχεία ενός Department, τότε θα χαθούν όλες οι πληροφορίες του εν λόγω Department. Π.χ., DELETE FROM EMP_DEPT WHERE SSN=888665555 Το πρόβλημα αυτό ΔΕΝ θα προκύψει στο στιγμιότυπο της προηγούμενης διαφάνειας όπου τα στοιχεία ενός department συνεχίζουν να διατηρούνται στον πίνακα Department 21-14

Ανωμαλίες Ενημερώσεων (Update Anomaly) Ανωμαλία Ενημέρωσης (Update Anomaly) Πρόβλημα: Εάν ενημερώσουμε το γνώρισμα ενός στοιχείου το οποιο επαναλαμβάνεται τότε πρέπει να ενημερώσουμε ΟΛΕΣ τις εμφανίσεις του. Αυτό το πρόβλημα είναι το μικρότερο από τα αναφερόμενα διότι λύνεται με μια έκφραση SQL. Π.χ., UPDATE EMP_DEPT SET Dname= RES WHERE Dname= Research εάν και το query θα απαιτεί περισσότερο χρόνο από ότι πρέπει 21-15