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

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

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

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

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

Εννοιολογικός Σχεδιασμός Βάσεων Δεδομένων & ER-Μοντέλο. ER-Μοντέλο ER-Διαγράμματα (1 & 2) ER- Συσχετίσεις Υψηλότερου Βαθμού EER Μοντέλο & Διαγράμματα

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

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

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

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

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

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

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

Department of Computer Science University of Cyprus. EPL342 Databases. Lecture 11: ER2RM. ER and EER Model to Relational Model Mapping

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

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

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

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

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

ER Diagram Συσχετίσεις Ασθενείς Οντότητες Παράδειγμα ER.. Εργαστήριο Βάσεων Δεδομένων. Entity-Relationship Diagram (ER)

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

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

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

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

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

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

Department of Computer Science University of Cyprus. EPL342 Databases. Lecture 6: ER III. ER Model + Enhanced ER Model

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

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

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

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

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

Από το Μοντέλο Οντοτήτων Συσχετίσεων στο Σχεσιακό Μοντέλο

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

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

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

Lecture 23: Functional Dependencies and Normalization

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

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

ΜοντέλοΟντοτήτωνΣυσχετίσεων & ΔιάγραμμαΟντοτήτων Συσχετίσεων. Μοντέλο Οντοτήτων Συσχετίσεων

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

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

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

Lecture 21: Functional Dependencies and Normalization

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

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

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


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


Εργαστήριο Βάσεων Δεδομένων. Entity-Relationship Diagram (ER)

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

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

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

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


Η εταιρεία είναι οργανωµένη σε τµήµατα Κάθε ΤΜΗΜΑένα όνοµα, κωδικό και έναν εργαζόµενο που διευθύνει το τµήµα. Αποθηκεύεται η ηµεροµηνία που ανέλαβε

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

2. Εννοιολογική Μοντελοποίηση Δεδομένων

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

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

Κλειδιά (keys) Λογικά, σκεφτόµαστε για «κλειδιά» σαν τα δεδοµένα (τα πεδία) εκείνα τα οποία µας επιτρέπουν να ξεχωρίσουµε τις διάφορες εγγραφές

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

Σχεσιακή δοµή δεδοµένων

Μοντέλο Οντοτήτων Σχέσεων (Entity-Relationship Model)

Μάθημα: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Διδάσκων: Καθ. Ιωάννης Βασιλείου ΕΝΔΕΙΚΤΙΚΗ ΛΥΣΗ ΚΑΙ ΣΧΟΛΙΑ ΣΤΗΝ ΠΡΩΤΗ ΑΣΚΗΣΗ

Department of Computer Science University of Cyprus. EPL342 Databases. Lecture 6: ER III. ER Model + Enhanced ER Model

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

Κεφάλαιο 3 Σχεσιακό Μοντέλο

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

ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ. Ακαδημαϊκό Έτος , Εαρινό Εξάμηνο. Εργαστηριακή Άσκηση 2 24/01/2012

Entity-Relationship Model (Chen) Οντολογικό Σχεσιακό Μοντέλο

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

Κεφάλαιο 2 Μοντέλο Οντοτήτων Συσχετίσεων

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

Διάγραμμα Οντοτήτων Συσχετίσεων (ΔΟΣ) Entity Relationship Diagram (ERD)

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - Από το ΔΟΣ στη Σχεσιακή Β.Δ.

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

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

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

Κεφάλαιο 9 Συσχετίσεις

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

Εισαγωγή στα Πληροφοριακά Συστήματα

Εισαγωγή. Σχεδιασµός µιας Β

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

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

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

Βάσεις Δεδομένων 1 Δημήτριος Τσουμάκος

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

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

ΜΟΝΤΕΛΟΠΟΙΗΣΗ Ε ΟΜΕΝΩΝ: το E-R µοντέλο. Κωνσταντίνος Ταραµπάνης Καθηγητής γρ

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

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

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

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

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

Βάσεις Δεδομένων ΙΙ. Διάλεξη 5 η XML και ΒΔ στο Διαδίκτυο

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

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

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

Transcript:

Βάσεις Δεδομένων (Databases) ΕΠΛ 342 Χειμερινό Εξάμηνο 2011 Διδάσκοντες Καθηγητές Γιώργος Σαμάρας (ΧΩΔ01 109)

Εισαγωγή Μέχρι τώρα είδαμε πως μοντελοποιούμε εννοιολογικά τις απαιτήσεις των χρηστών, με χρήση του Διαγράμματος ER αλλά και πως το Σχεσιακό Μοντέλο/Σχεσιακή Άλγεβρα προσφέρουν ένα μαθηματικό υπόβαθρο για την αναπαράσταση και ανάκτηση δεδομένων σε Βάσεις Δεδομένων. Σε αυτή την διάλεξη θα δούμε πως μπορούμε να μετατρέψουμε ένα διάγραμμα ER στο αντίστοιχο του Σχεσιακό Σχήμα. Για την μετατροπή θα χρησιμοποιήσουμε κάποια προκαθορισμένα βήματα. Αυτά τα βήματα χρησιμοποιούνται και από εμπορικά CASE εργαλεία για την αυτόματη μετατροπή του Εννοιολογικού Σχήματος σε Σχεσιακό Σχήμα.

Είσοδος: Διάγραμμα ER

Έξοδος: Σχεσιακό Σχήμα

Περιεχόμενο Διάλεξης Κεφάλαιο 7: ER και EER Αλγόριθμος Αντιστοίχισης ER-σε-Σχεσιακό Βήμα 1: Κανονικές Οντότητες (Regular Entity Types) Σύνθετα Γνωρίσματα (Composite Attributes) Βήμα 2: Ασθενείς Ενότητες (Weak Entity Types) Βήμα 3: Δυαδικές 1:1 Συσχετίσεις (1:1 Relationships) Βήμα 4: Δυαδικές 1:Ν Συσχετίσεις (1:N Relationships) Βήμα 5: Δυαδικές Μ:Ν Συσχετίσεις (M:N Relationships) Βήμα 6: Πλειότιμα Γνωρίσματα (Multivalued attributes) Βήμα 7: Ν-αδικές Συσχετίσεις (N-ary Relationships) Αντιστοίχιση Δομών ΕER-σε-Σχεσιακό Βήμα 8: Επιλογές για Εξειδίκευση (Specialization) ή Γενίκευση (Generalization) Βήμα 9: Αντιστοίχιση Τύπων Ενώσεων (Union Types (Categories).

ER-σε-Σχεσιακό Βήμα 1: Κανονικές Οντότητες Βήμα 1: Κανονικές Οντότητες (Strong Entities) Για κάθε κανονική (όχι ασθενή) οντότητα E, ενός διαγράμματος ER, δημιούργησε μια νέα σχέση R η οποία θα περιλαμβάνει όλα τα απλά γνωρίσματα της E (ενώ τα σύνθετα γνωρίσματα απλοποιούνται). Επέλεξε ένα από τα κλειδιά της Ε ως το πρωτεύων κλειδί της R. Εάν το κλειδί είναι σύνθετο (composite), τότε τα απλά γνωρίσματα που το απαρτίζουν θα προσδιορίζουν το κλειδί της R (Πλειότιμα θα συζητηθούν μετά) Παράδειγμα: E R

ER-σε-Σχεσιακό Βήμα 2: Ασθενείς Οντότητες Βήμα 2: Ασθενείς Οντότητες (Weak Entities) Για κάθε ασθενή οντότητα W στο διάγραμμα ER, με προσδιορίζουσα σχέση Ε (owner entity), δημιούργησε μια σχέση R στην οποία θα περιλαμβάνονται όλα τα απλά γνωρίσματα της W. Πρόσθεσε ένα ξένο κλειδί στη R, το οποίο θα αναφέρεται πάνω στο πρωτεύων κλειδί της προσδιορίζουσας σχέσης της R. Πρωτεύων Κλειδί R: Πρ. Κλειδί Ε + Μερικό Κλειδί W E W R

ER-σε-Σχεσιακό Βήμα 2: Ασθενείς Οντότητες Παράδειγμα

ER-σε-Σχεσιακό Επισκόπηση Μετατροπής Συσχετίσεων Για την αντιστοίχιση δυαδικών συσχετίσεων του ER διαγράμματος στο Σχεσιακό Μοντέλο χρησιμοποιούνται μια ή περισσότερες εκ των ακόλουθων επιλογές: 1. Ξένου Κλειδιού: Μια εκ των δυο οντοτήτων που συμμετέχουν στη συσχέτιση αναφέρεται μέσω ξένου κλειδιού στην άλλη. (π.χ., Dno στη Employee) Βασική Μέθοδος για: 1:1, 1:Ν και N:1 συσχετίσεις 2. Νέα Σχέση Συσχέτισης: Δημιουργούμε μια νέα σχέση μέσω της οποίας συσχετίζουμε τα κλειδιά των εμπλεκόμενων σχέσεις Βασική Μέθοδος για: M:Ν Συσχετίσεις και Ν-αδικές Συσχετίσεις 3. Συγχώνευση Σχέσεων: Συμπτύσσουμε τις δυο (2) σχεσεις σε μια Βασική Μέθοδος για: 1:1 συσχετίσεις με ολική συμμετοχή και από τις δυο πλευρές ή εάν θέλουμε να αποφεύγουμε την συνένωση για λόγους επίδοσης (γενικά ωστόσο δεν χρησιμοποιείται). Σημειώστε ότι οι τρεις μέθοδοι μπορούν θεωρητικά να εφαρμοστούν σε όλες τις περιπτώσεις (1:1, 1:Ν και N:1 και Ν-αδικές), ωστόσο το σχήμα της βάσης θα είναι προβληματικό, π.χ., Νέας Σχέσης για μια 1:1 συσχέτιση θα μας οδηγούσε σε αχρείαστες συνενώσεις κατά την αναφορά στην εν λόγω συνένωση. Ξένου Κλειδιού για μια M:N συσχέτιση θα μας οδηγούσε σε επανάληψη δεδομ.. (π.χ., Εmployee works(ssn,pno) --- m --- works_for --- n --- Project(pno))

ER-σε-Σχεσιακό Βήμα 3: Δυαδικές Συσχετίσεις 1:1 Βήμα 3: Δυαδικές Συσχετίσεις 1:1 (1:1 Relationships) Μέθοδος Ξένου Κλειδιού: Επέλεξε το κλειδί μιας εκ των δυο σχέσεων και ανάθεσε το ως ξένο κλειδί στην άλλη. H ανάθεση του Ξένου Κλειδιού πρέπει να γίνει από την πλευρά της ολικής συμμετοχής (εάν υπάρχει), Με αυτό τον τρόπο θα αποφευχθούν αχρείαστα NULLs, π.χ., Department (Dname, Dnumber, Mgr_ssn, Mgr_start_date) ΝΟ NULLS Employee(Fname,,SSN, Mgr_ssn, Mgr_start_date) MANY NULLS Εάν ΚΑΙ οι δυο έχουν ολική συμμετοχή τότε μπορούμε να χρησιμοποιήσουμε τη μέθοδο της συγχώνευσης σχέσεων. Εάν ΚΑΜΙΑ εκ των δυο δεν έχει ολική συμμετοχή τότε η ανάθεση να γίνει από την πλευρά της μικρότερης συσχέτισης (γραμμές) για να μειώσουμε τα NULLs στο ξένο κλειδί Π.χ., 10000 Employees --- Manage --- 5 Departments (καμία ολική) Πόσα NULLs έχουμε στη χειρότερη περίπτωση στις δυο περιπτώσεις Emp(ssn,mng_of_dno) και Dep(dno, mgr_ssn); ssn

ER-σε-Σχεσιακό Βήμα 4: Δυαδικές Συσχετίσεις 1:Ν Βήμα 4: Δυαδικές Συσχετίσεις 1:Ν, Ν:1 Μέθοδος ξένου κλειδιού: Ανάθεσε το πρωτεύων κλειδί (στη πλευρά του 1, δηλ., το Τ) ως Ξένο Κλειδί στην πλευρά του Ν (δηλ., το S) Δηλαδή απλά, μεταφέρουμε το πρωτεύων κλειδί προς την κατεύθυνση του N. Ομοίως, οποιαδήποτε απλά χαρακτηριστικά της συσχέτισης R να ανατεθούν και αυτά ως γνωρίσματα της σχέσης S. Π.χ., εάν η «Works_for» είχε το πεδίο «hours» τότε και αυτό θα ανατεθεί στη σχέση S. R S dno Τ

ER-σε-Σχεσιακό Βήμα 5: Δυαδικές Συσχετίσεις M:Ν Βήμα 5: Δυαδικές Συσχετίσεις M:Ν Μέθοδος Νέας Σχέσης Συσχέτισης: Για κάθε M:N συσχέτιση R, δημιούργησε μια νέα σχέση S προσδίδοντας στο S τα πρωτεύοντα κλειδιά των δυο εμπλεκόμενων σχέσεων Δηλαδή απλά μετάφερε το πρωτεύων κλειδί των δυο εμπλεκόμενων σχέσεων και δημιούργησε μια νέα Σχέση. Ομοίως, οποιαδήποτε απλά χαρακτηριστικά της συσχέτισης R γίνονται γνωρίσματα της νέας σχέσης. Π.χ., εάν η «Works_on» είχε το πεδίο «hours» τότε και αυτό θα ανατεθεί στη νέα σχέση S. R S ssn pno

ER-σε-Σχεσιακό Βήμα 6: Πλειότιμα Γνωρίσματα Βήμα 6:Πλειότιμα Γνωρίσματα (MultivaluedAttr) Μέθοδος Νέας Σχέσης Συσχέτισης: Για κάθε πλειότιμο γνώρισμα A μιας σχέσης, δημιούργησε μια νέα σχέση R η οποία θα έχει ως πρωτεύων κλειδί τον συνδυασμό: A, ξένο κλειδί στην αρχική σχέση του A. Εάν τυγχάνει το πλειότιμο γνώρισμα να είναι και σύνθετο τότε αυτό αναλύεται σε απλά γνωρίσματα Π.χ., ALUMNUS(ssn,name,degrees{Year,Degree,Major}) μετατρέπεται σε ALUMNUS(ssn, name) και DEGREE(ssn, year, degree, major) Α R R

ER-σε-Σχεσιακό Βήμα 7: N-αδικές Συσχετίσεις Βήμα 7: N-αδικές Συσχετίσεις Μέθοδος Νέας Σχέσης Συσχέτισης: Όπως και στις M:N συσχετίσεις, έτσι και εδώ δημιουργούμε μια νέα σχέση S για κάθε n-αδική συσχέτιση, όπου n>2. Όμοια με τις M:N, Κλειδί της S γίνεται ο συνδυασμός των πρωτευόντων κλειδιών των εμπλεκόμενων σχέσεων. Επίσης, οποιαδήποτε απλά γνωρίσματα της n-αδικής συσχέτισης γίνονται γνωρίσματα της νέας σχέσης S. sname partno projname

EER-σε-Σχεσιακό Εισαγωγή Όπως θα θυμάστε, το Επεκταμένο ER (EER) χρησιμοποιείται για πληρέστερη απεικόνιση των συσχετίσεων μιας εφαρμογής. Στο EER παρέχονται οι έννοιες της εξειδίκευσης (specialization) και της γενίκευσης (generalization). Τώρα θα δούμε πως αυτές οι έννοιες μπορούν να αναπαρασταθούν στο Σχεσιακό Μοντέλο. Σημειώστε ότι τα προηγούμενα βήματα μετατροπής σε από ER σε Σχεσιακό συνεχίζουν να υφίστανται δηλ., μετατροπή κανονικών & ασθενών οντοτήτων, συσχετίσεων, πλειτότιμων χαρακτηριστικών, n-αδικές συσχετίσεις, κτλ.

EER-σε-Σχεσιακό Επανάληψη Όρων με Παράδειγμα Πλέγμα/Lattice Επικάλυψη Ολική Συμμετοχή Μη-Επικάλυψη Μη-Επικάλυψη Πολλαπλή Κληρονομικότητα (shared subclass) Μη-Επικάλυψη

EER-σε-Σχεσιακό Επισκόπηση Μετατροπής Συσχετίσεων Για την αντιστοίχιση συσχετίσεων IS-A του EER διαγράμματος στο Σχεσιακό Μοντέλο χρησιμοποιούνται μια ή περισσότερες εκ των ακόλουθων επιλογές: Δημιουργία Πολλαπλών Σχέσεων: 1. Υπερκλάση και Υποκλάσεις: Δημιουργούνται ξεχωριστές σχέσεις τόσο για την υπερκλάση όσο και για τις επί μέρους υποκλάσεις. 2. Μόνο Υποκλάσεις: Δημιουργούνται ξεχωριστές σχέσεις ΜΟΝΟ για τις υποκλάσεις.

EER-σε-Σχεσιακό Επισκόπηση Μετατροπής Συσχετίσεων Για την αντιστοίχιση συσχετίσεων IS-A του EER διαγράμματος στο Σχεσιακό Μοντέλο χρησιμοποιούνται μια ή περισσότερες εκ των ακόλουθων επιλογών: Δημιουργία Μίας Σχέσης: 3. Με Ένα Γνώρισμα Ένδειξης: Συμπτύσσουμε όλες τις υποκλάσεις σε μια Σχέση και χρησιμοποιούμε ένα γνώρισμα ως γνώρισμα ένδειξης (για να υποδεικνύει το είδος της υποκλάσης) 4. Με Πολλαπλά Γνωρίσματα Τύπου: Το ίδιο με την περίπτωση (3) με την διαφορά ότι χρησιμοποιούνται πολλά γνωρίσματα ένδειξης

ΕER-σε-Σχεσιακό Επισκόπηση Μετατροπής Συσχετίσεων Θα χρησιμοποιήσουμε την ακόλουθη σημειογραφία Δοθέντος μιας Υπερκλάσης C με m υποκλάσεις {S 1, S 2,.,S m } εξειδίκευσης, όπου τα γνωρίσματα της C είναι {k,a1, an} και k το πρωτεύων κλειδί θα εφαρμόσουμε μια από τις αντιστοιχίσεις που θα αναλύσουμε τώρα a 1 k a 2 a n C S 1 S m

ΕER-σε-Σχεσιακό Βήμα 8α: Δημιουργία Σχέσης για Υπερκλάση/Υποκλασεις Βήμα 8α: Δημιουργία Σχέσης για Υπερκλάση/Υποκλάσεις Δημιούργησε μια σχέση L με γνωρίσματα Attrs(L) = {k,a1, an} και Κλειδί(L) = k. Επίσης δημιούργησε μια σχέση L i για κάθε υποκλάση S i, 1<i<m, με γνωρίσματα Attrs(Li) = {k} U {Attrs(Si)} και PK(L i )=k. Πλεονέκτημα: Κατάλληλο για οποιαδήποτε εξειδίκευση (ολική/μερική, επικάλυψη/μη-επικάλυψη) Μειονέκτημα: Για να χρησιμοποιήσουμε μια υποκλάση πρέπει πρώτα να την συνενώσουμε με την σχέση υπερκλάσης. C(k,a1,an) L S 1 S 2 S 3 L 1 L 2 L 3

ΕER-σε-Σχεσιακό Βήμα 8β: Δημιουργία Σχέσης για Υποκλάσεις ΜΟΝΟ Βήμα 8β: Δημιουργία Σχέσης για Υποκλάσεις ΜΟΝΟ Δημιούργησε μια σχέση Li για κάθε υποκλάση Si, 1<i<m, με γνωρίσματα Attr(Li) = {Attr(Si)} U {k,a1,an} and PK(Li) = k. Πλεονέκτημα: Η υποκλάση μπορεί να χρησιμοποιηθεί χωρίς να προηγηθεί συνένωση. Μειονεκτήματα: Δεν δουλεύει για Μερική Συμμετοχή της Υπερκλάσης (π.χ., δεν μπορούμε να αναπαραστήσουμε κάποιο που δεν είναι Secretary, Technician ή Engineer) Δεν είναι βέλτιστο για Περιπτώσεις Επικάλυψης (overlap, o): Θα έχουμε επανάληψη της ίδιας πληροφορίας στις υποκλάσεις που δημιουργούνται. C(k,a1,an) L 1 L 2 S 1 S 2 S 3 L 3

ΕER-σε-Σχεσιακό Βήμα 8γ: Μια Σχέση με ένα Γνώρισμα Ένδειξης Βήμα 8γ: Μια Σχέση με ένα Γνώρισμα Ένδειξης Δημιούργησε μια (1) μοναδική σχέση L στην οποία ένα πεδίο t γνώρισμα ένδειξης (discriminating attribute) θα υποδεικνύει σε ποια υποκλάση θα ανήκει η κάθε πλειάδα της L. Συγκεκριμένα, η L θα έχει γνωρίσματα Attrs(L) = {k,a 1, a n } U {Attrs(S 1 )} U U {Attrs(S m )} U {t} και PK(L) = k. Πλεονέκτημα: Η υποκλάση μπορεί να χρησιμοποιηθεί χωρίς να προηγηθεί συνένωση. Υποστηρίζει Μερική (+Ολική) Συμμετοχή (π.χ., για Rest job_type=νull) Μειονέκτημα: Δημιουργεί πολλά NULLs (π.χ., πιο κάτω θα έχουμε 2 NULL ανά πλειάδα) Δεν δουλεύει για Περιπτώσεις Επικάλυψης (overlap, o) (δηλ., το job_type προσδιορίζει πάντα ένα ακριβώς ρόλο όχι περισσότερους) C(k,a1,an) S 1 S 2 S 3 Ένδειξης Γνώρισμα L

ΕER-σε-Σχεσιακό Βήμα 8δ: Μια Σχέση με Πολλαπλά Γνωρίσματα Ένδειξης Βήμα 8δ: Μια Σχέση με Πολλά Γνωρίσματα Ένδειξης Όμοιο με το 8γ απλά δημιουργούμε πολλαπλά γνωρίσματα ένδειξης (ένα για κάθε υποκλάση) Πλεονέκτημα: Όλα τα προηγούμενα, δηλ., Χρήση Υποκλάσης χωρίς συνένωσης + Υποστηρίζει Μερική (+Ολική) Συμμετοχή. ΔΟΥΛΕΥΕΙ για Περιπτώσεις Επικάλυψης (overlap, o) (δηλ., ένας employee μπορεί να έχει ή περισσότερους ρόλους) Μειονέκτημα: Δημιουργεί πολλά NULLs (π.χ., πιο κάτω μέχρι 6 NULLs!) Γνωρίσματα Ένδειξης

ΕER-σε-Σχεσιακό Πολλαπλή Κληρονομικότητα Ερώτηση: Τι γίνεται σε περιπτώσεις Πολλαπλής Κληρονομικότητας όπου δημιουργούνται Διαμοιραζόμενες Υποκλάσεις (Shared Subclass); Απάντηση: Μπορεί να χρησιμοποιηθούν και οι τέσσερις προσεγγίσεις όπως περιγράφηκαν νωρίτερα (λαμβάνοντας υπόψη τους επί μέρους περιορισμούς). Διαμοιραζόμενη Υποκλάση (Shared Subclass) (γνωρίσματα κληρονομούνται μόνο 1 φορά)

ΕER-σε-Σχεσιακό Πολλαπλή Κληρονομικότητα: Παράδειγμα (Παρ. Ι) 8α) Πολλαπλές Σχέσεις (Υπέρ+Υπό) Γιατί όχι 8β; Λόγω «o» Ενδεχόμενη Λύση (Δεν γνωρίζουμε τι άλλοι περιορισμοί υπάρχουν στην εφαρμογή) (Παρ. ΙΙ) 8γ) Μια Σχέση + Γνώρισμα Ένδειξης Γιατί όχι 8δ; Λόγω «d» (Παρ. ΙΙΙ) 8δ) Μια Σχέση + Πολλά Γνωρίσματα Εφόσον υπάρχει μη-επικάλυψη, θα ήταν πιο αποδοτικό να ήταν 8γ η Παρ. ΙΙΙ