Σχετικά έγγραφα
Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY.

Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY.

Ηλεκτρονικοί Υπολογιστές II

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

Σχεδίαση και λειτουργία βάσης δεδομένων Το παράδειγμα της μαιευτικής κλινικής Ευάγγελος Καρβούνης


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

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

Ηλεκτρονικοί Υπολογιστές II

DELETE, UPDATE, INSERT.

DELETE, UPDATE, INSERT

DISTINCT, LIKE, NULL, AND, OR, BETWEEN


Βάσεις Δεδομένων 5η εργαστηριακή άσκηση



Ηλεκτρονικοί Υπολογιστές II

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

Τμήμα Διοίκησης Επιχειρήσεων

GROUP BY, HAVING, COUNT, MIN, MAX, SUM, AVG, ROLLUP.

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

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

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

Ηλεκτρονικοί Υπολογιστές II

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

Βάσεις Δεδομένων Ι SQL Μέρος 3 ο. (Constraints & Joins) Φώτης Κόκκορας (MSc/PhD) Τμήμα Μηχανικών Πληροφορικής ΤΕ

1 / 150

Πανεπιστήµιο Ιωαννίνων Τµήµα Μαθηµατικών Μάθηµα: Βάσεις εδοµένων (741) Εργαστηριακό Τεστ Οµάδα: Α 18/11/2004

1 / 97

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

1 / 105

1 / 87

ΕΠΛ 342 Βάσεις εδοµένων

Διαχείριση Πολιτισμικών Δεδομένων

2η ΔΙΑΛΕΞΗ Συναρτησιακές εξαρτήσεις

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ

Ηλεκτρονικοί Υπολογιστές II


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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

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

Βάσεις Δεδομένων. Εισαγωγή για το Εργαστήριο. Δρ. Τιάκας Ελευθέριος. Τμήμα Πληροφορικής ΑΠΘ

Η SQL αποτελείται από δύο υποσύνολα, τη DDL και τη DML.

Σχεδιασμός Βάσεων Δεδομένων


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

ΘΕΜΑΤΑ. Θέμα 1 ο Σύμφωνα με τους παραπάνω πίνακες και τη θέση που έχουν τα ξένα κλειδιά βρείτε τους

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

Παράδειγμα Insert Update Delete Alter.. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (2)

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

1 / 106

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


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

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

Τεχνολογία Πολιτισμικού Λογισμικού

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

Τεχνολογία Πολιτισμικού Λογισμικού

Ηλεκτρονικοί Υπολογιστές II

Το Μοντέλο των Οντοτήτων Συσχετίσεων Entity Relationship Model. Νικόλαος Ζ. Ζάχαρης

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

Ηλεκτρονικοί Υπολογιστές II

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

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

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

Πρόλογος Μέρος Ι Μια βόλτα στις βάσεις δεδομένων Μια βόλτα στις βάσεις δεδομένων...25

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

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

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

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

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

Βάσεις Περιβαλλοντικών Δεδομένων

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

ΘΕΜΑΤΑ. Ερώτηση 1 Κατά τη Φυσική Αποθήκευση (Physical storage) μιας ΒΔ αποθηκεύονται στον δίσκο τα:

Ερωτήματα επιλογής με σύζευξη πινάκων

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

SQL Τύποι Δεδομένων Δημιουργία Πίνακα Παράδειγμα.. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (1)

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

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

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

Σχεδιασμός Πληροφοριακών Συστημάτων. Σημειώσεις

PROJECT ΕΡΓΑΣΤΗΡΙΩΝ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ Ι. Τμήμα Μηχανικών Πληροφορικής Τ.Ε.


ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Επιλέγει όλες τις πλειάδες, από μια σχέση R, που ικανοποιούν τη συνθήκη επιλογής.

ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 3) Ουρανία Σμυρνάκη

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

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

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

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

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

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

Διαχείριση Πολιτισμικών Δεδομένων

ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL

Εργαστήριο βάσεων δεδομένων. Εισαγωγή στη MySQL (2)

Εργαστήριο βάσεων δεδομένων. Εισαγωγή στη MySQL (2)

Βάσεις Δεδομένων Ι Εξεταστική Περίοδος Φεβρουαρίου 2006

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

Transcript:

Κανονικοποίηση βάσεων δεδομένων 1 η, 2 η και 3 η κανονική μορφή Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr Άνοιξη 2014

Περιεχόμενα 1 Πρώτη κανονική μορφή 2 Συναρτησιακές εξαρτήσεις 3 Δεύτερη κανονική μορφή 4 Τρίτη κανονική μορφή 2 / 36

Υπάλληλοι και γλώσσες empid lastname language Υπάλληλος Υπάλληλοι μιας εταιρείας με πλειότιμη ιδιότητα των ξένων γλωσσών που μιλούν. Οι υπόλοιπες ιδιότητες έχουν απαλειφθεί για λόγους απλότητας. 3 / 36

Υπάλληλοι και γλώσσες σε πίνακα Δημιουργία του πίνακα υπαλλήλων 1 CREATE TABLE employees ( 2 empid INTEGER NOT NULL 3 lastname VARCHAR(30) NOT NULL, 4 language VARCHAR(100), 5 CONSTRAINT pk PRIMARY KEY (empid) 6 ); 4 / 36

Υπάλληλοι και γλώσσες σε πίνακα Δημιουργία του πίνακα υπαλλήλων 1 CREATE TABLE employees ( 2 empid INTEGER NOT NULL 3 lastname VARCHAR(30) NOT NULL, 4 language VARCHAR(100), 5 CONSTRAINT pk PRIMARY KEY (empid) 6 ); Περιεχόμενα του πίνακα υπαλλήλων empid lastname language 102 Διαμαντίδης Αγγλικά, Γερμανικά 109 Αθανασίου Αγγλικά 153 Αλεβιζάτου Γαλλικά, Αγγλικά, Ρώσικα 172 Βλάσσης Γαλλικά 189 Αγγελίνας Γερμανικά, Αγγλικά 5 / 36

Προβληματισμοί SELECT: Είναι εύκολο να γραφούν όλα τα πιθανά (ή τουλάχιστον τα περισσότερα) ερωτήματα επιλογής; INSERT: Μπορούν νέα γεγονότα να εισαχθούν εύκολα στους πίνακες της βάσης, χωρίς να απαιτούνται δύσκολοι και περίπλοκοι χειρισμοί; DELETE: Είναι εύκολη η διαγραφή δεδομένων, χωρίς βέβαια να χαθεί πολύτιμη πληροφορία; UPDATE: Μπορεί η τροποποίηση των δεδομένων της βάσης να γίνει με απλό τρόπο χωρίς πολύπλοκους χειρισμούς, και χωρίς να επηρεαστούν από τις αλλαγές δεδομένα που πρέπει να μείνουν όπως πριν; 6 / 36

Αποτυχία ερωτημάτων επιλογής σ Γλώσσα= Αγγλικά Υπάλληλος 1 SELECT * 2 FROM employees 3 WHERE language = English Θα βρει την Αθανασίου που μιλάει μόνο Αγγλικά Δε θα βρει τον Αγγελίνα που μιλάει Αγγλικά και Γερμανικά Πιθανή λύση: 1 SELECT * 2 FROM employees 3 WHERE language like *English* 7 / 36

Πρόβλημα ενημέρωσης Ας υποθέσουμε πως μετά τα Γαλλικά: Επώνυμο Γλώσσες Βλάσσης Γαλλικά Ο κ. Παπαδόπουλος μαθαίνει και Αγγλικά: Επώνυμο Γλώσσες Βλάσσης Γαλλικά, Αγγλικά Πως θα γίνει η ενημέρωση της βάσης δεδομένων; UPDATE employees SET language = Γαλλικά, Αγγλικά WHERE name = Βλάσσης Πρόβλημα: Για να προσθέσουμε τη γνώση Αγγλικών στον Βλάσση χρειάζεται να ξέρουμε πως ξέρει ήδη Γαλλικά! 8 / 36

Υπάλληλοι και γλώσσες - μια άλλη προσέγγιση Επώνυμο Αγγλικά Γερμανικά Γαλλικά Ρώσικα Διαμαντίδης ΝΑΙ ΝΑΙ ΟΧΙ ΟΧΙ Αθανασίου ΝΑΙ ΟΧΙ ΟΧΙ ΟΧΙ Αλεβιζάτου ΟΧΙ ΟΧΙ ΟΧΙ ΟΧΙ Μαροπούλου ΝΑΙ ΟΧΙ ΝΑΙ ΝΑΙ Βλάσσης ΟΧΙ ΟΧΙ ΝΑΙ ΟΧΙ Αγγελίνας ΝΑΙ ΝΑΙ ΟΧΙ ΟΧΙ 9 / 36

Τα νέα προβλήματα Αποθήκευση: Απαιτείται αποθηκευτικός χώρος για δεδομένα που δεν χρειάζεται να αποθηκευτούν. Επιλογή: Υπάρχει σχετικό πλεονέκτημα. Για παράδειγμα, μπορεί εύκολα να βρεθούν οι υπάλληλοι που μιλούν αγγλικά: π Επώνυμο (σ Αγγλικά= ΝΑΙ (Υπάλληλοι)) Εισαγωγή: Ενώ η επιλογή δεδομένων μπορεί στοιχειωδώς να δουλέψει σωστά, η εισαγωγή είναι αρκετά προβληματική Διαγραφή: Οπως και στην εισαγωγή, η διαγραφή στην απλή περίπτωση είναι τροποποίηση Τροποποίηση: Η τροποποίηση, σε αντίθεση με τις προηγούμενες περιπτώσεις είναι απλή 10 / 36

Πρώτη κανονική μορφή Επώνυμο Γλώσσα Διαμαντίδης Αγγλικά Διαμαντίδης Γερμανικά Αθανασίου Αγγλικά Αλεβιζάτου Γαλλικά Αλεβιζάτου Αγγλικά Αλεβιζάτου Ρώσικα Παπαδόπουλος Γαλλικά Αγγελίνας Γερμανικά Αγγελίνας Αγγλικά 11 / 36

Υπάλληλοι και γλώσσες, 1η ΚΜ empid lastname langid laname employee 0..* speaks 0..* language Η πλειότιμη ιδιότητα μετατρέπεται σε συσχέτιση «πολλά-προς-πολλά». 12 / 36

Λύστε αυτό το πρόβλημα empid lastname email Υπάλληλος Υπάλληλοι μιας εταιρείας με πλειότιμη ιδιότητα των email ε- πικοινωνίας. Δώστε το σχεσιακό μοντέλο. Οι υπάλληλοι μπορεί να έχουν από 0 μέχρι 2 email επικοινωνίας. 13 / 36

Περιεχόμενα 1 Πρώτη κανονική μορφή 2 Συναρτησιακές εξαρτήσεις 3 Δεύτερη κανονική μορφή 4 Τρίτη κανονική μορφή 14 / 36

Συναρτησιακή εξάρτηση Ποδοσφαιριστής Ομάδα Πρωτάθλημα Μαλντίνι Μίλαν Ιταλικό Ανρύ Άρσεναλ Αγγλικό Κάρλος Ρεάλ Μαδίτης Ισπανικό Μέσι Μπαρτσελόνα Ισπανικό Τζέραλντ Λίβερπουλ Αγγλικό Ροναλντίνιο Μπαρτσελόνα Ισπανικό Τζιλαρντίνο Μίλαν Ιταλικό Ομάδα Πρωτάθλημα 15 / 36

Προσοχή στις συναρτησιακές εξαρτήσεις Φοιτητής Δήμος Νομός Βασιλείου Αγρινίου Αιτωλοακαρνανίας Μαρονίτης Αθήνας Αττικής Γεροδήμου Αμπελοκήπων Θεσσαλονίκης Αντωνιάδης Καβάλας Καβάλας Μακρίδου Καλαμαριάς Θεσσαλονίκης Φιλίππου Αθήνας Αττικής Γεωργιάδης Αμπελοκήπων Αττικής Δήμος Νομός 16 / 36

Τετριμμένες συναρτησιακές εξαρτήσεις Εστω σχέση r με σχήμα R = A, X, Y όπου A είναι πρωτεύον κλειδί, τότε: A X A Y A XY A AX A AY A AXY A AXY AX X AX Y AX XY AX AY AX AXY AY X AY Y AY XY AY AX AY AXY AXY A AXY X AXY Y AXY AX AXY AY AXY XY 17 / 36

Αξιώματα του Armstrong 1 Ανακλαστικότητα. Αν α είναι σύνολα γνωρισμάτων β και β α, τότε α β. 2 Επαύξηση. Αν ισχύει α β και γ είναι σύνολο γνωρισμάτων, τότε αγ βγ 3 Μεταβατικότητα. Αν ισχύουν α β και β γ τότε ισχύει α γ. 18 / 36

Περισσότεροι κανόνες 1 Αυτοκαθορισμός: α α 2 Ανακλαστικότητα: β α = α β 3 Ενωση: {α β, α γ} = α βγ 4 Διάσπαση: α βγ = α β, α γ 5 Σύνθεση: {α β, γ δ} = αβ γδ 6 Ψευδομεταβατικότητα: {α β, βγ δ} = αγ δ 7 Γενική ενοποίηση του Darwen: {α β, γ δ} = α (γ β) βδ 19 / 36

Μη αναγώγιμα σύνολα εξαρτήσεων Για την καλή λειτουργία μιας βάσης δεδομένων είναι καλό να ξέρουμε το ελάχιστο σύνολο εξαρτήσεων. Ενα σύνολο συναρτησιακών εξαρτήσεων F λέγεται μη αναγώγιμο, ή ελάχιστο αν: 1 Το εξαρτώμενο (δεξιό) μέλος κάθε συναρτησιακής εξάρτησης αποτελείται από ένα μόνο γνώρισμα, δηλαδή δεν είναι σύνολο γνωρισμάτων. 2 Για κάθε συναρτησιακή εξάρτηση, το ορίζον μέλος είναι το μέγιστο δυνατό. Για παράδειγμα, αν α, β και γ είναι γνωρίσματα με γ β, η συναρτησιακή εξάρτηση β α δεν μπορεί να αντικατασταθεί από την γ α και να έχουμε ένα νέο ισοδύναμο σύνολο συναρτησιακών συναρτήσεων. 20 / 36

Πλήρης συναρτησιακή εξάρτηση Εστω η συναρτησιακή εξάρτηση QU Z. Τότε: Μερική Η συναρτησιακή εξάρτηση λέγεται μερική όταν ισχύει είτε Q Z, είτε U Z. Δηλαδή είναι δυνατόν να αφαιρεθεί μέρος των γνωρισμάτων από το ορίζον (αριστερό) μέλος της συναρτησιακής εξάρτησης, και να παραμένει σε ισχύ. Πλήρης Η συναρτησιακή συνάρτηση λέγεται πλήρης όταν είναι αδύνατη η ισχύς της, μετά την αφαίρεση κάποιων γνωρισμάτων από το ορίζον μέλος. Δηλαδή, η QU Z είναι πλήρης, όταν δεν ισχύει ούτε Q Z, ούτε Y Z. 21 / 36

Περιεχόμενα 1 Πρώτη κανονική μορφή 2 Συναρτησιακές εξαρτήσεις 3 Δεύτερη κανονική μορφή 4 Τρίτη κανονική μορφή 22 / 36

Σύνθετο πρωτεύον κλειδί και συναρτησιακή εξάρτηση title actor director Blade Runner Harrison Ford Ridley Scott Blade Runner Sean Young Ridley Scott Blade Runner Daryl Hannah Ridley Scott Gladiator Harrison Ford Ridley Scott Gladiator Connie Nielsen Ridley Scott Paris Texas Sam Berry Wim Wenders Το πρωτεύον κλειδί είναι σύνθετο και αποτελείται από το συνδυασμό των γνωρισμάτων title, actor. Στη σχέση films ισχύουν οι συναρτησιακές εξαρτήσεις: {title,actor} director title director 23 / 36

Διάσπαση για μετατροπή σε 2η κανονική μορφή film_actor film_direct title Blade Runner Blade Runner Blade Runner Gladiator Gladiator Paris, Texas title Blade Runner Gladiator Paris, Texas actor Harrison Ford Sean Young Daryl Hannah Harrison Ford Connie Nielsen Sam Berry director Ridley Scott Ridley Scott Wim Wenders 24 / 36

Δημιουργία σχήματος CREATE TABLE f i l m _ d i r e c t ( t i t l e CHAR(25) NOT NULL, d i r e c t o r CHAR(25) NOT NULL, CONSTRAINT pk PRIMARY KEY( t i t l e ) ) ; CREATE TABLE f i l m _ a c t o r ( t i t l e CHAR(25) NOT NULL, a c t o r CHAR(25) NOT NULL, CONSTRAINT pk PRIMARY KEY( t i t l e, a c t o r ), CONSTRAINT f k _ t i t l e FOREIGN KEY ( t i t l e ) REFERENCES f i l m _ d i r e c t ( t i t l e ) ) ; 25 / 36

Μεταφορά δεδομένων INSERT INTO f i l m _ d i r e c t ( t i t l e, d i r e c t o r ) SELECT DISTINCT t i t l e, d i r e c t o r FROM f i l m s ; INSERT INTO f i l m _ a c t o r ( t i t l e, a c t o r ) SELECT t i t l e, a c t o r FROM f i l m s ; 26 / 36

Περιεχόμενα 1 Πρώτη κανονική μορφή 2 Συναρτησιακές εξαρτήσεις 3 Δεύτερη κανονική μορφή 4 Τρίτη κανονική μορφή 27 / 36

Τρίτη κανονική μορφή Η τρίτη κανονική μορφή αναφέρεται στις συναρτησιακές εξαρτήσεις γνωρισμάτων μιας σχέσης που δεν ανήκουν στο πρωτεύον κλειδί. Το σχήμα R μιας σχέσης r είναι σε 3η ΚΜ όταν είναι σε 2η ΚΜ και για κάθε συναρτησιακή εξάρτηση: X Y όπου X, Y R, το X είναι είτε υπερκλειδί, είτε πρωτεύον κλειδί της r. Σε αντίθετη περίπτωση, αν δηλαδή το ορίζον μέλος μιας συναρτησιακής εξάρτησης δεν είναι πρωτεύον κλειδί, ή υπερκλειδί της σχέσης, τότε το σχήμα δεν βρίσκεται σε τρίτη κανονική μορφή. 28 / 36

Κανονικοποίηση με διάσπαση Θεωρείστε ένα σχεσιακό σχήμα R = {X, Y, Z} με πρωτεύον κλειδί το X. Θεωρείστε επίσης πως ισχύει Y Z. Τότε το R δεν είναι σε 3η ΚΜ. Στην ουσία το R φέρει μια μεταβατική συναρτησιακή εξάρτηση: X Y Y Z } X Z 1 Το εξαρτημένο μέλος της συναρτησιακής εξάρτησης Y Z, δηλαδή το Z, απομακρύνετε από το αρχικό σχήμα R. Ετσι R1 = {X, Y } με πρωτεύον κλειδί το X, όπως και στην περίπτωση του σχήματος R. 2 Τα μέλη της συναρτησιακής εξάρτησης Y Z, τόσο το ορίζον Y, όσο και το εξαρτώμενο Z, σχηματίζουν ένα νέο σχήμα R2 = {Y, Z} με πρωτεύον κλειδί το Y, δηλαδή το ορίζον μέλος της συναρτησιακής εξάρτησης. 3 Η αρχική σχέση μπορεί να αναδημιουργηθεί από τη σύζευξη: 29 / 36

Παράδειγμα μη τρίτης ΚΜ id name island region 1045 Απέραντο Γαλάζιο Ρόδος Δωδεκαννήσου 632 Παράδεισος Κάλυμνος Δωδεκαννήσου 3019 Παράδεισος Κως Δωδεκαννήσου 8397 Ηλιοβασίλεμα Νάξος Κυκλάδων 894 Άμμος Νάξος Κυκλάδων 4283 Ελενα Σκιάθος Μαγνησίας 30 / 36

Κανονικοποίηση με διάσπαση Η σχέση δεν είναι σε 3η ΚΜ, γιατί υπάρχει η συναρτησιακή εξάρτηση: island region Ο κανόνας κανονικοποίησης επιβάλει τη διάσπασή της σε δύο απλούστερες σχέσεις: Το εξαρτώμενο μέλος της συναρτησιακής εξάρτησης: island region δηλαδή το region, αφαιρείται από τη σχέση hotels. Τα μέλη της συναρτησιακής εξάρτησης σχηματίζουν μια νέα σχέση, πχ με όνομα islands με πρωτεύον κλειδί το ορίζον μέλος, δηλαδή το islands. Η αρχική σχέση hotels μπορεί να αναδημιουργηθεί από τη σύζευξη: hotels = places islands 31 / 36

SQL για το κανονικοποιημένο σχήμα CREATE TABLE i s l a n d s ( i s l a n d CHAR(20) NOT NULL, r e g i o n CHAR( 2 0 ), CONSTRAINT pk PRIMARY KEY ( i s l a n d ) ) ; CREATE TABLE p l a c e s ( i d INTEGER NOT NULL, name CHAR(25) NOT NULL, i s l a n d CHAR(20) NOT NULL, CONSTRAINT pk PRIMARY KEY ( i d ), CONSTRAINT f k _ i s l a n d FOREIGN KEY ( i s l a n d ) REFERENCES i s l a n d s ( i s l a n d ) ) ; 32 / 36

Μεταφορά δεδομένων INSERT INTO i s l a n d s ( i s l a n d, r e g i o n ) SELECT DISTINCT i s l a n d, r e g i o n FROM h o t e l s ; INSERT INTO p l a c e s ( id, name, i s l a n d ) SELECT id, name, i s l a n d FROM h o t e l s ; 33 / 36

Νέο σχεσιακό σχήμα id name island 1045 Απέραντο Γαλάζιο Ρόδος 632 Παράδεισος Κάλυμνος 3019 Παράδεισος Κως 8397 Ηλιοβασίλεμα Νάξος 894 Άμμος Νάξος 4283 Ελενα Σκιάθος island region Ρόδος Δωδεκαννήσου Κάλυμνος Δωδεκαννήσου Κως Δωδεκαννήσου Νάξος Κυκλάδων Σκιάθος Μαγνησίας 34 / 36

Απόδοση στα ερωτήματα Για παράδειγμα, για να βρεθεί το νησί και ο νομός του ξενοδοχείου με κωδικό 632, στην μη κανονικοποιημένη βάση θα εκτελεστεί το ερώτημα: π island,region (σ id=632 (hotels)) SELECT i s l a n d, r e g i o n FROM h o t e l s WHERE i d = 632; Αντίθετα, στην κανονικοποιημένη βάση, θα χρειαστεί σύζευξη: π island,region (σ id=632 (islands places)) SELECT i s l a n d, r e g i o n FROM p l a c e s p INNER JOIN i s l a n d s i ON p. i s l a n d = i. i s l a n d 35 / 36

Σχόλια και ερωτήσεις Σας ευχαριστώ για την προσοχή σας Είμαι στη διάθεσή σας για σχόλια, απορίες και ερωτήσεις 36 / 36