Βάσεις Δεδομένων (Databases) ΕΠΛ 342 Χειμερινό Εξάμηνο 2011 Διδάσκοντες Καθηγητές Γιώργος Σαμάρας (ΧΩΔ01 109)
Δομικοί Περιορισμοί σε Συσχετίσεις (Structural Constraints on Relationships) Δομικοί Περιορισμοί (Structural Constraints) 1 Ν Μ A. Λόγος Πληθικότητα (Cardinality Ratio) για Δυαδικές Συσχετίσεις : Καθορίζει τον αριθμό στιγμιότυπων της συσχέτισης στα οποία μια οντότητα μπορεί να συμμετέχει. 1 Ν 1 Ν One-to-one (1:1): 1 Τμήμα έχει 1 Πρόεδρο One-to-many (1:N): 1 Μητέρα έχει Ν Παιδιά Many-to-one (N:1): Ν Παιδιά έχουν 1 Μητέρα Many-to-many (M:N): M Υπάλληλοι δουλεύουν σε Ν projects B. Περιορισμοί Συμμετοχής (Participation Constraint): ορίζει την ελάχιστη συμμετοχή μιας οντότητας σε μια σχέση Μερική Συμμετοχή (Partial): ΚΑΠΟΙΑ ή ΚΑΝΕΝΑ στοιχεία μιας οντότητας Α συσχετίζονται με την οντότητα Β Ολική Συμμετοχή (Total Existence Dependency): ΚΑΘΕ στοιχείο μιας οντότητας Α συσχετίζεται με την οντότητα Β EPL342: Databases George Samaras (University of Cyprus)
Ανάγνωση ER με Δομικούς Περιορισμούς (Η Ερώτηση Τουλάχιστο / Μέχρι) Χ Y μέχρι X τουλάχιστο X μέχρι Y τουλάχιστο Υ Ερώτηση Τουλάχιστο (At least) Ερώτηση Μέχρι (At-most) Μονή Γραμμή => Τουλάχιστο 0 (δεν αναφέρεται) x:1 => Μέχρι 1 Διπλή Γραμμή=> Τουλάχιστο 1 x:n => Μέχρι Ν. * το x υποδηλεί το οτιδήποτε Σημείωση: ΠΑΝΤΑ διαβάζουμε τη σχέση και προς τις δυο κατευθύνσεις EPL342: Databases George Samaras (University of Cyprus) * Δοκιμάστε να διαβάσετε το διάγραμμα
EPL342: Databases George Samaras (University of Cyprus) Σχέση = ( Προϊστάμενο, Υφιστάμενο ) r1=(e5,e1) r2=(e1,e2) r3=(e1,e3) r4=(e5,e4) r5=(e4,e6) r6=(e4,e7). Αναδρομικός Τύπος Συσχέτισης (Recursive Relationship Type) Αναδρομικός Τύπος Συσχέτισης: Ένας τύπος συσχέτισης ο όποιος έχει τον ίδιο τύπο οντότητας σε επί μέρους ρόλους Π.χ., η συσχέτιση SUPERVISION, όπου EMPLOYEE συμμετέχει διπλά σε επί μέρους ρόλους: 1) supervisor (or boss): ρόλος προϊσταμένου 2) supervisee (or subordinate): ρόλος υφιστάμενου
Αναδρομικός Τύπος Συσχέτισης (Recursive Relationship Type) Διαγραμματική Απεικόνιση Αναδρομικής Σχέσης : supervisor (or boss): ρόλος προϊσταμένου supervisee (or subordinate): ρόλος υφιστάμενου 1 Emp. διευθύνει N Employees 1 Emp. διευθύνεται από 1 Employee * * * Η ρητή αναφορά στους επί μέρους ρόλους είναι απαραίτητη για να είναι ξεκάθαρη η σχέση
Ασθενείς Τύποι Οντοτήτων (Weak Entity Types) Ασθενής Οντότητα (Weak Entity): Μια οντότητα η οποία δεν έχει κλειδί. Αυτές οι οντότητες ορίζονται από κάποιο άλλο τύπο οντοτήτων (τον προσδιορίζοντα owner entity type). Συγκεκριμένα, ορίζονται από τον ακόλουθο συνδυασμό: Ένα μερικό κλειδί (partial key) της ασθενής οντότητας Το (πρωτεύων) κλειδί του προσδιορίζοντα Παράδειγμα: DEPENDENT Η οντότητα DEPENDENT ορίζεται από το dependent s first name, και το κλειδί της σχέσης EMPLOYEE (με τον οποίο/α συσχετίζεται η/ο DEPENDENT) (EMPLOYEE.SSN, DEPENDENT.Name) γίνεται το κλειδί της σχέσης DEPDENDENT EPL342: Databases George Samaras (University of Cyprus)
Ασθενείς Τύποι Οντοτήτων (Weak Entity Types) Η ασθενής οντότητα DEPENDENT Κλειδί DEPENDENT: (Emp.SSN, Dep.Name) EPL342: Databases George Samaras (University of Cyprus)
Γνωρίσματα σε Τύπους Συσχετίσεων Μια συσχέτιση μπορεί να φέρει διάφορα γνωρίσματα: Π.χ., Hours στη συσχέτιση WORKS_ON το οποίο περιγράφει πόσες ώρες δουλεύει ένας EMPLOYEE σε ένα PROJECT. Στις πλείστες περιπτώσεις, τα γνώρισμα εμφανίζονται στις M:N συσχετίσεις. Γιατί; Διότι στις υπόλοιπες περιπτώσεις μπορεί να μεταφερθεί το γνώρισμα σε κάποια από τις οντότητες με την ακόλουθη λογική A) 1:1. Tο γνώρισμα μπορεί να μεταφερθεί προς οποιαδήποτε από τις δυο οντότητες που συμμετέχουν (προτιμότερο προς ολική συμμετοχή) B) 1:N, N:1. Το γνώρισμα μπορεί να μεταφερθεί προς το N μέρος της συσχέτισης. Mgr_start_ date A Π.χ., hours B EPL342: Databases George Samaras (University of Cyprus)
Σχεσιακό Σχήμα (όπως θα οριστεί σε ερχόμενες διαλέξεις) Σημείωση: Δεν χρειάζεται να καταλάβετε ακόμη πως ακριβώς προέκυψε το πιο κάτω Σχεσιακό Σχήμα. Απλά παρατηρήστε την σχέση των γνωρισμάτων μεταξύ του ER διαγράμματος (αριστερά) και του Σχεσιακού Σχήματος (δεξιά). Γ) Α) Α) Β) Β) Γ) Ε) Δ) Δ) Ε) Ζ) Ζ) EPL342: Databases George Samaras (University of Cyprus)
ER-Διαγράμματα (Σύνοψη Σημειογραφίας) Οντότητα (Δυνατή, Κανονική) Πλειότιμο (Multivalue) χαρακτηριστικό Σύνθετο (Composite) χαρακτηριστικό Υπολογισμένο χαρακτηριστικό A A A χαρακτηριστικό πρωτεύων κλειδί (primary key) εναλλακτικό κλειδί (candidate key) Διευκρινιστικό μερικό κλειδί (partial key) Τα πιο πάνω παρουσιαστήκαν στη προηγούμενη διάλεξη EPL342: Databases George Samaras (University of Cyprus)
ER-Διαγράμματα (Σύνοψη Σημειογραφίας) Ασθενής Οντότητα N M Πληθυκότητες (1:1, 1:N, N:1, M:N) σύνολο συσχετίσεων Συμμετοχή μερική/ολική προσδιορίζων σύνολο συσχετίσεων για ασθενή οντότητα l:h min:max Πληθυκότητες με όρια (θα μελετηθούν σε λίγο) EPL342: Databases George Samaras (University of Cyprus)
Ολοκληρωμένο Διάγραμμα ER (Διατυπώστε το Διάγραμμα και τη Δομή του) EPL342: Databases George Samaras (University of Cyprus)
Εναλλακτική Σημειογραφία (min, max) (για διατύπωση δομικών περιορισμών) Ένας εναλλακτικός τρόπος διατύπωσης δομικών περιορισμών σε ένα διάγραμμα ER είναι με την χρήση (min, max) περιορισμών. Επί της ουσίας, αυτή η σημειογραφία δεν διαφέρει από την προηγούμενη αφού και εκεί ορίζαμε άνω και κάτω όρια (δηλ., τουλάχιστο/μέχρι) Η βασική διαφορά είναι ότι με την χρήση (min, max) επιτρέπεται να ορίσουμε ακριβέστερα την Πληθυκότητα. Δηλαδή, αντί 0 ή1 στον περιορισμό συμμετοχής (δηλ., μονή ή διπλή γραμμή) μπορούμε να χρησιμοποιήσουμε όποια ακέραια τιμή επιθυμούμε. Δες επόμενη διαφάνεια για παραδείγματα EPL342: Databases George Samaras (University of Cyprus)
Εναλλακτική Σημειογραφία (min, max) (Διατύπωση Περιορισμών) H ανάγνωση του (min,max) γίνεται αντίστροφα από ότι στο τουλάχιστο/μέχρι που είδαμε νωρίτερα, δηλ., μια οντότητα χρησιμοποιεί τις πληθυκότητες που αναγράφονται δίπλα της. Ένας Employee διευθύνει από 0 μέχρι 1 Dept. Ένα Dept. διευθύν. από 1 (min) μέχρι 1 (max) Emp. δηλ., πάντα 1 Εmp Ένας Employee δουλεύει σε 1 μέχρι 1 Dept (δηλ., πάντα 1 Dept.) Σε ένα Dept δουλεύουν από 1 (min) μέχρι Ν (max) Emp EPL342: Databases George Samaras (University of Cyprus)
Εναλλακτική Σημειογραφία (min, max) (Ολοκληρωμένο Διάγραμμα ER) EPL342: Databases George Samaras (University of Cyprus)
Λόγος Κυριότητας μιας Σχέσης (min, max) (Ένας άλλος τρόπος παρουσίασης) Ελάχιστο όριο (min or lower bound) (Τουλάχιστο) Πόσες οντότητες ΠΡΕΠΕΙ να σχετίζονται με μια καθορισμένη οντότητα του άλλου συνόλου (Ελάχιστο)
Λόγος Κυριότητας μιας Σχέσης (min, max) (Ένας άλλος τρόπος παρουσίασης) Ανώτατο Όριο (max or upper bound) (Το Πολύ) Πόσες οντότητες ΜΠΟΡΟΥΝ να σχετίζονται με μια καθορισμένη οντότητα του άλλου συνόλου (ανώτατο αριθμό, MAX)
Λόγος Κυριότητας μιας Σχέσης (min, max) Τουλάχιστο, Το Πολύ - (min, max) Ένας υπάλληλος δουλεύει σε τουλάχιστο 0 και το πολύ Ν projects Ένας project δουλεύεται από τουλάχιστο 1 και το πολύ Ν υπαλλήλους
Παράδειγμα Ποιους από τους πιο κάτω κανόνες καταπατεί το πιο πάνω ΟΣΜ (ERD)? 1. Σε μια Επιχείρηση μπορεί να μην εργάζονται υπάλληλοι 2. Σε μια Επιχείρηση μπορεί να αργάζονται περισσότεροι από 1 υπαλλήλους 3. Σε μια Επιχείρηση μπορεί να εργάζεται μόνο ένας υπάλληλος 4. Ένας υπάλληλος μπορεί να εργάζεται σε περισσότερο από 1 επιχείρηση 5. Ένας υπάλληλος εργάζεται σε 1 μόνο επιχείρηση
Παράδειγμα Ποίος είναι ο «λόγος κυριότητας» αυτής της σχέσης? α ΤΡΩΕΙ β 1. (0, Ν) ΤΡΩΕΙ (0, Ν) 2. (0, 1) ΤΡΩΕΙ (1, Ν) 3. (1, 1) ΤΡΩΕΙ (1, 1) 4. (1, Ν) ΤΡΩΕΙ (1, 1) 5. (1, Ν) ΤΡΩΕΙ (0, Ν)
Παράδειγμα 1. Μπορεί ένας Άντρας να παντρευτεί με περισσότερες από 1 Γυναίκες? 2. Μπορεί μια Γυναίκα μα παντρευτεί με περισσότερους από 1 Άντρες?
Παράδειγμα
ΠΑΡΑΔΕΙΓΜΑ: ΒAΣΗ ΔΕΔΟΜEΝΩΝ ΒΙΒΛΙΟΘHΚΗΣ G. Samaras 2011
Παράδειγμα: Βάση Δεδομένων Βιβλιοθήκης Βιβλιοθήκη που οργανώνεται σε τμήματα, όπως τέχνη, παιδικά, υπολογισμό, επιστήμη, κ.λπ. Κάθε τμήμα έχει όνομα και έναν αριθμό και διευθύνονται από έναν επικεφαλής βιβλιοθηκάριο Κάθε τίτλος βιβλίου ανήκει σε ένα τμήμα και έχει έναν τίτλο (όνομα), συντάκτες, ISBN, αριθμός κλήσης, το έτος και εκδότη Για κάθε αντίγραφο του βιβλίου κρατείτε ο παρών οφειλέτης, η οφειλόμενη ημερομηνία και ο βιβλιοθηκάριος που το χρέωσε έξω. Τα μέλη έχουν αριθμό μέλους, άδεια οδηγού, μια διεύθυνση, τηλεφωνικό αριθμό και γενέθλια Τα μέλη μπορούν να έχουν μέχρι 5 δανεισμένα βιβλία και μπορούν να βάλουν ένα αίτημα κράτησης σε ένα βιβλίο Οι βιβλιοθηκάριοι έχουν όνομα, ssn, διεύθυνση, τηλέφωνο G. Samaras 2011
Παρατήρηση ουσιαστικά -> τύποι/σύνολα οντοτήτων ρήματα -> τύποι συσχετίσεων G. Samaras 2011
Οντότητες 1. TITLE: CallNumber, Name, Author{(Name(Fname, MI, Lname),Order)}, ISBN, Year, Publisher; 2. MEMBER: MemNo, DriverLic(State,No), Name(Fname, MI, Lname), Address, PhoneNumber; 3. BOOK: BookID, Edition; 4. LIBRARIAN: SSN, Name, Address, Salary, Gender, Date of Birth; 5. SECTION: SectNo, Name; G. Samaras 2011
Ασθενής Οντότητα Υποθέστε την επιπρόσθετη απαίτηση ότι όλα τα εξαρτώμενα του βιβλιοθηκάριου αποθηκεύονται στην βάση δεδομένων 1. DEPENDENT: Name, Date of Birth, Kinship G. Samaras 2011
Συσχετίσεις 1. COPY: <TITLE, BOOK> 1:M, PARTIAL/TOTAL; 2. BELONGS: <BOOK, SECTION> N:1,TOTAL/PARTIAL; 3. HOLD: <MEMBER, TITLE> M:N, PARTIAL/PARTIAL, Date; 4. BORROW: <MEMBER, BOOK> 1:5, PARTIAL/PARTIAL, BorrowDueDate; 5. CHECKS: <LIBRARIAN, BOOK> 1:N, PARTIAL/PARTIAL; 6. MANAGES: <LIBRARIAN, SECTION> 1:1, PARTIAL/PARTIAL; 7. WORKS: <LIBRARIAN, SECTION> 1:N, TOTAL/PARTIAL; 8. DEPENDS: <LIBRARIAN, DEPENDENT> 1:N, PARTIAL/TOTAL; 9. SUPERVISES: <supervisor-librarian, supervisee- LIBRARIAN> 1:N, PARTIAL/PARTIAL; G. Samaras 2011
Υποθέσεις/Διευκρινίσεις: Ένας συγγραφέας γράφει σε παραπάνω από ένα τίτλο. Πολλοί συγγραφείς γράφουν ένα ή περισσότερους τίτλους. Ένα βιβλίο είναι ένα αντίγραφο ενός τίτλου. Ένας τίτλος μπορεί να έχει ένα ή παραπάνω αντίγραφα βιβλία. Ένα βιβλίο έχει ένα μοναδικό id (όχι αντίγραφο id). Εάν ένα αντίγραφο id χρησιμοποιηθεί τότε το βιβλίο είναι ασθενής οντότητα. Ένα συγκεκριμένο μέλος κάνει κράτηση για ένα συγκεκριμένο τίτλο. Δεν είναι απαραίτητο όλα τα μέλη να δανείζονται βιβλία. Δεν είναι απαραίτητο όλα τα βιβλία να δανείζονται. Δεν είναι απαραίτητο όλοι οι τίτλοι να είναι από βιβλία, αλλά, όλα τα βιβλία πρέπει να έχουν ένα και μόνο ένα τίτλο. G. Samaras 2011