Βάσεις Δεδομένων (Databases) ΕΠΛ 342 Χειμερινό Εξάμηνο 2011 Διδάσκοντες Καθηγητές Γιώργος Σαμάρας (ΧΩΔ01 109)
Εννοιολογικός Σχεδιασμός Βάσεων Δεδομένων & Μοντέλο ER ER-Μοντέλο ER-Διαγράμματα-1 EER Μοντέλο & Διαγράμματα
ER-Διαγράμματα (Οντότητα) (δυνατό) σύνολο οντοτήτων ασθενές σύνολο οντοτήτων σύνολο συσχετίσεων A A A χαρακτηριστικό πρωτεύων κλειδί εναλλακτικό κλειδί Διευκρινιστικό μερικό κλειδί προσδιορίζων σύνολο συσχετίσεων για ασθενή οντότητα Α B Α B key Σύνθετο κλειδί (Composite key)
ER-Διαγράμματα Πλειότιμο χαρακτηριστικό N M Πληθυκότητες Υπολογισμένο χαρακτηριστικό l:h min:max Πληθυκότητες με όρια Σύνθετο χαρακτηριστικό Συμμετοχή μερική/ολική
Παράδειγμα ER Διαγράμματος (Οντότητα με δυο κλειδιά) Διάγραμμα ER Τύπος Οντότητας Σύνολο Οντότητας
Σχεδίαση Τύπων Οντοτήτων: EMPLOYEE, DEPARTMENT, PROJECT, DEPENDENT Βάση των προδιαγραφών διακρίνουμε τέσσερις τύπους οντοτήτων για την βάση COMPANY: DEPARTMENT PROJECT EMPLOYEE DEPENDENT Το πρώτο στάδιο της σχεδίασης περιλαμβάνει την διαγραμματική απεικόνιση των οντοτήτων μαζί με τα επί μέρους γνωρίσματα τους (όπως αυτά δίνονται από τις προδιαγραφές). Ακολουθεί αναλυτική απεικόνιση
Σχεδίαση Τύπων Οντοτήτων: EMPLOYEE, DEPARTMENT, PROJECT, DEPENDENT Προδιαγραφή Ι: Κάθε Department έχει τα ακόλουθα πεδία: α) Μοναδικό Name, β) Μοναδικό Number και ένα γ) Manager που διαχειρίζεται το department, δ) Start date του department manager. Κάθε department μπορεί να έχει ε) πολλαπλά Locations. Πλειότιμο (Multivalue) ε) α) β) δ) γ) ή Number
Σχεδίαση Τύπων Οντοτήτων: EMPLOYEE, DEPARTMENT, PROJECT, DEPENDENT Προδιαγραφή ΙΙ: α) Κάθε department ελέγχει ένα αριθμό από PROJECTs. β) Κάθε project έχει ένα μοναδικό name, γ) μοναδικό number και βρίσκεται σε μια δ) μόνο τοποθεσία (location). δ) β) γ) α)
Σχεδίαση Τύπων Οντοτήτων: EMPLOYEE, DEPARTMENT, PROJECT, DEPENDENT Σύνθετο (Composite) - Μετά από συνεννόηση με τον πελάτη (αφού δεν ήταν αρχική απαίτηση να είναι σύνθετο) Προδιαγραφή ΙΙΙ: Για κάθε EMPLOYEE αποθηκεύουμε το α) social security number (SSN ταυτότητα), β) address, γ) salary, δ) sex, και ε) birthdate. Κάθε employee ζ) δουλεύει για ένα department αλλά μπορεί να η) εργάζεται πάνω σε πολλά projects. θ) Για κάθε project καταγράφουμε τον χρόνο (num of hours per week) τα οποία αφιερώνει ένας employee πάνω σε κάθε project. ι) Επίσης καταγράφουμε τον προϊστάμενο (direct supervisor) κάθε employee αλλά και το όνομα του Employee Θ1) Θ2) κ) ζ) ε) α) δ) γ) β) ι) η) Πλειότιμο & Σύνθετο (Multivalue & Composite)
Σχεδίαση Τύπων Οντοτήτων: EMPLOYEE, DEPARTMENT, PROJECT, DEPENDENT Προδιαγραφή IV: α) Κάθε employee μπορεί να έχει ένα αριθμό από Εξαρτώμενα (DEPENDENTs), δηλ., παιδιά. Για κάθε depend, κρατούμε το β) name, γ) sex, δ) birthdate, και ε) τον τύπο της σχέσης (relationship) με τον employee. ε) δ) γ) α) β)
Σχεδίαση Τύπων Οντοτήτων: EMPLOYEE, DEPARTMENT, PROJECT, DEPENDENT Στην συνέχεια θα εκλεπτύνουμε ο διάγραμμα μας εισάγοντας την έννοια συσχετίσεων μεταξύ των οντοτήτων
Data Modeling Using the ER Model Κεφάλαιο 3 (Lecture 5) 3.4) Συσχετίσεις, Τύποι Συσχετίσεων, Ρόλοι και Δομικοί Περιορισμοί 3.5) Μη-Ισχυροί Τύποι Οντοτήτων 3.6) Εκλέπτυνση του Σχεδιασμού ΟΣ για τη Βάση Δεδομένων Εταιρεία 3.7) Διαγράμματα Οντοτήτων- Συσχετίσεων, Επιλογή Ονομάτων και Θέματα Σχεδιασμού
Συσχετίσεις (Relationships) Μέχρι τώρα είδαμε πως μπορούμε να αναπαραστήσουμε τις Οντότητες και τα Γνωρίσματα σε ένα διάγραμμα ER. Τώρα θα δούμε πως μπορούμε να συσχετίσουμε αυτές τις οντότητες μέσω Συσχετίσεων (Relationships), π.χ., Οντότητες: EMPLOYEE, DEPARTMENT Συσχετίσεις: WORKS_FOR Μια Συσχέτιση συνδέει δυο ή περισσότερες οντότητες με συγκεκριμένο νόημα. Π.χ., EMPLOYEE Γιάννης Μιχαήλ works_for CS DEPARTMENT. Τυπικά, μια συσχέτιση μεταξύ δυο συνόλων A, B είναι ένα υποσύνολο του καρτεσιανού γινομένου ΑxB Καρτεσιανό Γινόμενο: A X B = { (a,b) aεα and bεβ} R A X B
Συσχετίσεις N:1 (Διαγραμματική Απεικόνιση με Σύνολα) (Ουσιαστικό) (Ρήμα) (Ουσιαστικό) Όπως θα δούμε αργότερα πρόκειται για μια N:1 σχέση (δηλ., σε ένα Dep. δουλεύουν πολλοί Emp. αλλα κάθε Emp. sε ένα Dep. Στιγμιότυπα του τύπου σχέσης WORKS_FOR μεταξύ EMPLOYEE και DEPARTMENT
Συσχετίσεις Μ:N (Διαγραμματική Απεικόνιση με Σύνολα) Όπως θα δούμε αργότερα πρόκειται για μια M:N σχέση (δηλ., ένας Emp. δουλεύει σε πολλά Proj. και σε ένα Proj. πολλοί Emp.) Στιγμιότυπα του τύπου σχέσης WORKS_ON μεταξύ EMPLOYEE και PROJECT
Βασικές Έννοιες του Ε-R Μοντέλου Σχέσεις (relationships) Οι οντότητες συνδέονται με ΣΧΕΣΕΙΣ οι οποίες αντιπροσωπεύουν ένα είδος επικοινωνίας μεταξύ των διαφόρων οντοτήτων Π.χ. Ένας φοιτητής σχετίζεται με ένα μάθημα με το να παίρνει αυτό το μάθημα
Τύπος Συσχέτισης και Σύνολο Συσχετίσεων Τύπος Συσχέτισης (Relationship Type): Το σχήμα (δομή) μιας συσχέτισης. Π.χ., WORK_FOR(SSN, DEPTID, hours) Relationship Σύνολο Συσχετίσεων (Relat. Set ή Rela. State) Ένα σύνολο συσχετίσεων με τα ίδια χαρακτηριστικά π.χ., {works_for1, works_for2, } κτλ. Σε ένα διάγραμμα ER, οι συσχετίσεις συνδέουν οντότητες μέσω ακμών EMPLOYEE WORKS _FOR DEPARTMENT Βαθμός Σχέσης (Relationship Degree): Αριθμός (τύπων οντοτήτων) που συμμετέχουν στη σχέση Π.χ., WORKS_FOR είναι δυαδική σχέση Υψηλότερου Βαθμού σχέσεις θα μελετηθούν αργότερα.
Σχήμα COMPANY με Συσχετίσεις Μελετώντας τις απαιτήσεις (requirements) της εφαρμογής αυτής (δες διάλεξη 4), εντοπίζουμε τις ακόλουθες έξι δυαδικές συσχετίσεις: WORKS_FOR (μεταξύ EMPLOYEE, DEPARTMENT) «Κάθε employee δουλεύει για ένα department» MANAGES (και αυτή μεταξύ EMPLOYEE, DEPARTMENT) «Κάθε department έχει.ένα manager που διαχειρίζεται το department» CONTROLS (μεταξύ DEPARTMENT, PROJECT) «Κάθε department ελέγχει ένα αριθμό από PROJECTs» WORKS_ON (μεταξύ EMPLOYEE, PROJECT) «Κάθε employee εργάζεται πάνω σε πολλά projects.» SUPERVISION (μεταξύ EMPLOYEE (ως υφιστάμενος) και EMPLOYEE (ως προϊστάμενος)) «καταγράφουμε τον προϊστάμενο (direct supervisor) κάθε employee» DEPENDENTS_OF (μεταξύ EMPLOYEE, DEPENDENT) «Κάθε employee μπορεί να έχει ένα αριθμό από (DEPENDENTs)»
Παρατήρηση ουσιαστικά -> τύποι/σύνολα οντοτήτων ρήματα -> τύποι συσχετίσεων
Μια Μεθοδολογία Εύρεσης Σχέσης 1. Κατασκεύασε ένα πίνακα Οντότητας/Οντότητας (Τριγωνικό) 2. Έλεγξε την τομή κάθε στήλης και γραμμής για πιθανή σχέση 3. Γράψε το ρήμα που περιγράφει τη σχέση
Διάγραμμα ER με Συσχετίσεις Θέματα που θα δούμε αργότερα: 1. Λόγοι Πληθικότητας (1:1,1:N, N:1, M:N); 2. Περιορισμοί Συμμετοχής (διπλές και μονές γραμμές) 3. Ασθενείς Οντότητες (οντότητες με διπλές γραμμές) Προσέξτε ότι μερικά γνωρίσματα των αρχικών οντοτήτων έχουν μετατραπεί σε σχέσεις. Ποια είναι αυτά; (επόμενη διαφάνεια)
Διάγραμμα ER με Συσχετίσεις (Γνωρίσματα που Αναπαριστώνται ως Σχέσεις) Χ Χ Χ Χ Χ Χ