Entity Relationship Diagram (ERD) (Διαγράμμα Οντοτήτων Συσχετίσεων) ΥΠΕΥΘΥΝΟΣ: Θ. ΜΑΝΑΒΗΣ tmanavis@ist.edu.gr T Manavis
Διάγραμμα Οντοτήτων Συσχετίσεων Το μοντέλο Οντοτήτων Συσχετίσεων (Entity Relationship Model – ER Model) είναι ένα εννοιολογικό (conceptual) μοντέλο ... ... που χρησιμοποιείται για να καταγράψει τις απαιτήσεις των χρηστών ενός νέου πληροφοριακού συστήματος ... ... με γραφικό τρόπο (άρα, πιο τυπικά από μια αναπαράστασή τους σε φυσική γλώσσα). Μια βάση δεδομένων μπορεί να μοντελοποιηθεί εννοιολογικά (conceptual modeling) ως: Ένα σύνολο οντοτήτων (entities), Συσχετίσεις (relationships) μεταξύ των οντοτήτων αυτών.
Εννοιολογικό μοντέλο, θυμηθείτε: Μικρόκοσμος Δεν έχει γίνει ακόμη η μετατροπή σε ένα μοντέλο που να μπορεί να υποστηριχθεί και να χρησιμοποιηθεί από το DBMS μας. Αυτό θα γίνει στο επόμενο βήμα όπου από το ERD θα φτιάξουμε το Σχεσιακό Μοντέλο ή λογικό μοντέλο (logical model) Συλλογή Απαιτήσεων και Ανάλυση Απαιτήσεις ΒΔ Εννοιολογικός Σχεδιασμός Βάσης (π.χ., με E-R Model) Εννοιολογικό Μοντέλο (Σχήμα) E-R Διάγραμμα
E-R Μοντέλο: ΣΥΝΙΣΤΩΣΕΣ ΔΟΜΕΣ Υπάρχουν δυο εννοιολογικές βασικές έννοιες: Οντότητες Συγκεκριμένα αντικείμενα που υπάρχουν (ή πιστεύεται ότι υπάρχουν) και μπορούν να αναπαρασταθούν στην ΒΔ π.χ., ο ΥΠΑΛΛΗΛΟΣ “Μαρία”, στο ΤΜΗΜΑ “Λογιστήριο”,το ΠΡΟΙΟΝ “Βίδες”, η ΟΜΑΔΑ “Ολυμπιακός”, ... Συσχετίσεις Είναι επίσης (ειδικά) αντικείμενα που αντιστοιχούν δύο ή περισσότερες ξεχωριστές οντότητες με ένα συγκεκριμένο νόημα (τυπικά, μια Συσχέτιση είναι ένα ταξινομημένο σύνολο οντοτήτων) π.χ.,. Η “Μαρία” είναι ΟΠΑΔΟΣ του “ΠΑΟΚ”, Η “Μαρία” ΕΡΓΑΖΕΤΑΙ στο “Λογιστήριο”, κλπ.
E-R Μοντέλο: ΔΟΜΕΣ (1) Μια οντότητα (entity) είναι ένα υπαρκτό αντικείμενο, που είναι διακριτό από τα άλλα αντικείμενα της ΒΔ Π.χ., ο άνθρωπος Βασίλης, το αυτοκίνητο ΤοΑμάξιΜου, η εταιρεία Αλογάκι ΑΕ, κλπ. Ένα τύπος οντοτήτων είναι ένα σύνολο από σημασιολογικά όμοιες οντότητες Π.χ., το σύνολο όλων των υπαλλήλων μιας εταιρείας, το σύνολο όλων των αυτοκινήτων κλπ ΠΡΟΣΟΧΗ: Άλλο οντότητα και άλλο τύπος οντοτήτων! Στον προφορικό λόγο, συνηθίζεται να τα συγχέουμε... Τύποι οντοτήτων Car Customer Company
E-R Μοντέλο: ΔΟΜΕΣ (2) Οι Οντότητες και οι Συσχετίσεις μπορούν να έχουν ΓΝΩΡΙΣΜΑΤΑ / ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ (ATTRIBUTES,) που είναι ιδιότητες που τα χαρακτηρίζουν π.χ., μια οντότητα ΥΠΑΛΛΗΛΟΣ έχει γνωρίσματα όνομα, ηλικία, διεύθυνση, … (ενδεικτικά, “Μαρία”, “21”, “Κηφισίας 32”, ...) επίσης, ημερομηνία είναι ένα γνώρισμα της συσχέτισης ΔΑΝΕΙΖΟΜΑΙ (ενδεικτικά, η “Μαρία” ΔΑΝΕΙΣΤΗΚΕ στις “20 Ιουνίου”) το βιβλίο «» Συνήθως τα Γνωρίσματα των Συσχετίσεων προσδιορίζουν: - Ποιος έκανε την συσχέτιση - Πότε έγινε αυτή - Πότε παύει να ισχύει, κλπ.
E-R Μοντέλο: ΔΟΜΕΣ (3) Τα ΠΕΔΙΑ ΤΙΜΩΝ (DOMAINS) είναι σύνολα τιμών για τα γνωρίσματα π.χ., DOMAIN OF NAMES = το σύνολο των ονομάτων DOMAIN of WEIGHT = το σύνολο τιμών για βάρη INTEGERS FROM 0 to 220 CHAR STRINGS from 1 to 10 in length, κλπ. ΕΙΔΗ ΓΝΩΡΙΣΜΑΤΩΝ ΑΠΛΑ: μια οντότητα έχει ατομική τιμή για αυτό (π.χ., φύλο) ΣΥΝΘΕΤΑ (COMPOSITE): το γνώρισμα αποτελείται από περισσότερες τιμές (π.χ., η διεύθυνση = { Δρόμος, Αριθμός, Πόλη, Χώρα} ) ΠΛΕΙΟΤΙΜΑ (MULTI-VALUED): το γνώρισμα έχει πολλαπλές τιμές (π.χ., colors of a CAR, degrees of a PERSON) ΠΑΡΑΓΟΜΕΝΑ (DERIVED): το γνώρισμα έχει πολλαπλές τιμές (π.χ., colors of a CAR, degrees of a PERSON) Π.χ., η ηλικία υπολογιζόμενη από την Ημ. Γέννησης
Γραφική αναπαράσταση Παραλληλόγραμμα για τύπους οντοτήτων Customer Ελλείψεις για γνωρίσματα Διπλές ελλείψεις για πλειότιμα γνωρίσματα. Διακεκομμένες ελλείψεις για παραγόμενα γνωρίσματα. Ακμές για να συνδέσουν τύπους οντοτήτων με γνωρίσματα Υπογράμμιση για πρωτεύοντα κλειδιά (σε προσεχείς διαφάνειες) Customer Cust-Id Phones Age Surname Student StudentID Student
Γραφική αναπαράσταση, παράδειγμα
Συσχετίσεις Ιδιότητες των ΤΥΠΩΝ ΣΥΣΧΕΤΙΣΕΩΝ Περισσότεροι του ενός τύποι συσχετίσεων μπορεί να υπάρχουν μεταξύ των ιδίων τύπων οντοτήτων (multiple relationships) π,χ., WORKS-FOR και MANAGES μεταξύ EMPLOYEE και DEPARTMENT. (αποκαλείται, ένας αναδρομικός ή αυτοαναφορκός: Μια συσχέτιση μπορεί να συνδέει δύο οντότητες που ανήκουν στον ίδιο τύπο οντοτήτων τύπος συσχετίσεων - recursive relationship type) π.χ., ο SUPERVISION τύπος συσχετίσεων συνδέει EMPLOYEE (στον ρόλο αυτού που επιβλέπεται) με κάποιο άλλο EMPLOYEE (στον ρόλο του επιβλέποντα)
Συσχετίσεις Ένας τύπος Συσχετίσεων έχει ΒΑΘΜΟ (relationship degree): 2 τύποι οντοτήτων ---> binary relationship 3 τύποι οντοτήτων ---> ternary relationship N τύποι οντοτήτων ---> N-ary relationship Π.χ. Αν υποθέσουμε ότι ένας υπάλληλος μιας τράπεζας μπορεί να έχει διαφορετικά καθήκοντα σε διαφορετικούς τομείς της τράπεζας, προκύπτει ένας τριαδικός (ternary) τύπος συσχέτισης ανάμεσα στους τύπους οντοτήτων Υπάλληλος, Καθήκον και Tομέας. Περιορισμός Ύπαρξης (existence dependency) ορίζει αν η συμμετοχή μιας οντότητας στον τύπο συσχέτισης είναι ΟΛΙΚΗ ή ΜΕΡΙΚΗ (total or partial) π.χ., όλοι οι ΥΠΑΛΛΗΛΟΙ συμμετέχουν στην ΕΡΓΑΖΟΝΤΑΙ-ΣΕ (όλοι δουλεύουν σε ένα τμήμα) --- ΟΛΙΚΗ ενώ, Στην συσχέτιση ΔΙΕΥΘΥΝΩ δεν συμμετέχουν όλοι (υπάρχουν Υπάλληλοι που δεν είναι Διευθυντές) - ΜΕΡΙΚΗ
Συσχετίσεις Ο ΛΟΓΟΣ ΠΛΗΘΙΚΟΤΗΤΑΣ (cardinality) ενός τύπου συσχετίσεων ορίζει το πόσες οντότητες από τον πρώτο τύπο οντοτήτων στην συσχέτιση μπορούν να συνδεθούν με πόσες οντότητες από τον δεύτερο τύπο οντοτήτων Συγκεκριμένα: 1 : 1 PERSON married-to PERSON 1 : N MOTHER having CHILDREN N : 1 STUDENT reports-to ADVISOR N : M EMPLOYEE works-on PROJECT
Συσχετίσεις 1 : N 1 : 1 r1 r1 e1 e1 r2 r2 e2 e2 r3 r3 d1 d1 e3 e3 r4 PERSON married-to PERSON MOTHER having CHILDREN
Συσχετίσεις Ν : Μ Ν : 1 e1 e2 e3 e4 r1 r2 r3 r4 r5 d1 d2 d3 e1 e2 e3 STUDENT reports-to ADVISOR EMPLOYEE works-for PROJECT
Τύποι Συσχέτισης – ΠΡΟΣΟΧΗ! Όπως και με τους τύπους οντοτήτων, οι έννοιες «σύνολο συσχέτισης» και «τύπος συσχέτισης» αναφέρονται στη σημασιολογική και δομική ομοιότητα, αντίστοιχα. Ούτε εδώ θα κάνουμε διάκριση... Όπως και με τις οντότητες, άλλο είναι η συσχέτιση και άλλο ο τύπος συσχέτισης. Ομοίως, και εδώ, συχνά στον προφορικό λόγο τα συγχέουμε ...
Συσχετίσεις, λίγο πιό αναλυτικά Μεταξύ των τύπων οντοτήτων ‘customer’ και ‘loan’ υπάρχει ο τύπος συσχέτισης ‘δανείζεται’ που είναι Ν-Μ
Συσχετίσεις, λίγο πιό αναλυτικά ‘δανείζεται’
Συσχετίσεις, λίγο πιό αναλυτικά Μη σκέφτεστε έτσι: l1 l2 l3 c1 c2 Loan Customer ... αλλά έτσι: c1_l1 c2_l2 c2_l3 l1 l2 l3 c1 c2 Loan Customer ‘δανείζεται’
Συσχετίσεις, γραφική αναπαράσταση Όπως θα δούμε, οι συσχετίσεις (ή ορθότερα οι τύποι συσχετίσεων) μπορούν να έχουν κι αυτές γνωρίσματα
Κλειδιά Υπερκλειδί (super key) ενός τύπου οντοτήτων είναι ένα σύνολο γνωρισμάτων των οποίων οι τιμές καθορίζουν μονοσήμαντα μια οντότητα του εν λόγω τύπου οντοτήτων. Υποψήφιο κλειδί (candidate key) είναι ένα υπερκλειδί με το ελάχιστο μέγεθος (ήτοι, αριθμό γνωρισμάτων) μεταξύ των υπερκλειδιών Πρωτεύον κλειδί (primary key) είναι ένα υποψήφιο κλειδί το οποίο ορίζει ο σχεδιαστής της ΒΔ. ... θα το αποκαλούμε και απλώς κλειδί Ένα ΞΕΝΟ ΚΛΕΙΔΙ (foreign key) είναι ένα σύνολο ενός ή περισσοτέρων γνωρισμάτων ενός τύπου οντοτήτων (ή συσχετίσεων) που αντιστοιχεί σε ένα ΚΥΡΙΟ ΚΛΕΙΔΙ για κάποιον άλλο τύπο οντοτήτων (ή συσχετίσεων). Ενδεικτικά, για τον τύπο συσχετίσεων ΕΡΓΑΖΕΤΑΙ, το γνώρισμα ΑΦΜ είναι Εξωτερικό Κλειδί (είναι Κύριο Κλειδί στον ΥΠΑΛΛΗΛΟ).
Κλειδιά, ένα παράδειγμα ΑΤ Υπερκλειδιά: ΑΤ, Όνομα ΑΤ, Όνομα, Δ/ση ΑΦΜ, ΑΤ, Όνομα, Δ/ση ΑΦΜ ... και άλλα... Υποψήφια κλειδιά: ΑΤ Κλειδί ΑΦΜ Πελάτης Όνομα Δ/ση Ελάχιστο μέγεθος υπερκλειδιού = 1 Διότι έτσι διαλέγω ως σχεδιαστής...
Γνωρίσματα συσχετίσεων Ένας τύπος συσχετίσεων μπορεί να έχει και αυτός γνωρίσματα π.χ., ο τύπος συσχετίσεων δανείζεται μεταξύ των customer και account μπορεί να χαρακτηρίζεται και από το γνώρισμα access-date
Ασθενείς Τύποι Οντοτήτων Ασθενείς Τύποι Οντοτήτων (Weak Entity Types) (ή Εξαρτώμενοι) Ένας τύπος οντοτήτων στον οποίο δεν μπορούμε να ορίσουμε πρωτεύον κλειδί με βάση τα γνωρίσματά του και μόνο Οι οντότητες ενός ασθενούς τύπου προσδιορίζονται και εξαρτώνται από τις οντότητες κάποιου άλλου τύπου οντοτήτων, τον οποίο και αποκαλούμε προσδιορίζοντα (identifying) ή ιδιοκτήτη (owner) τύπο οντοτήτων. Ενδεικτικά, ο τύπος DEPENDENT (ΕΞΑΡΤΩΜΕΝΟΣ) στο παράδειγμα που κάναμε στην τάξη (έχει μόνο σημασία σε συσχέτιση με τον συγγενή του που δουλεύει στην Εταιρεία (ΕΡΓΑΖΟΜΕΝΟΣ) ) Το μερικό κλειδί (partial key) μιας ασθενούς οντότητας, είναι εκείνο το σύνολο γνωρισμάτων της που την κάνει να ξεχωρίζει από τις υπόλοιπες οντότητες που αντιστοιχούν στην ίδια οντότητα-ιδιοκτήτη Το πρωτεύον κλειδί ενός ασθενούς τύπου οντοτήτων είναι η ένωση του πρωτεύοντος κλειδιού του τύπου ιδιοκτήτη της με το μερικό κλειδί της
Ασθενείς Τύποι Οντοτήτων, παράδειγμα Ένας ασθενής τύπος οντοτήτων αναπαριστάται με διπλή γραμμή στο παραλληλόγραμμό του. Η συσχέτιση που τον προσδιορίζει (τον συνδέει, δηλ., με τον ιδιοκτήτη τύπο) έχει επίσης διπλή γραμμή Το μερικό κλειδί υπογραμμίζεται με διακεκομμένη γραμμή Ασθενής οντότητα: payment Μερικό κλειδί: payment-number Κλειδί του payment : (loan-number, payment-number)
Τύποι Συσχετίσεων και Πληθικότητα: Αναπαράσταση Η σχέση ‘Τμήμα’ – ‘Έργο’ είναι ‘ένα προς πολλά’ (1-Ν), δηλ. ένα τμήμα μιάς εταιρείας μπορεί να ελέγχει πολλά έργα και ένα έργο μπορεί να ελέγχεται από ένα το πολύ τμήμα. Επίσης, δεν μπορεί να υπάρχει έργο που να μην ελέγχεται από κάποιο τμήμα, επομένως η συμμετοχή του τύπου οντοτήτων ‘Εργο’ είναι ΟΛΙΚΗ. Είναι δυνατόν να υπάρχει τμήμα που να μην ελέγχει κάποιο έργο, επομένως η συμμετοχή του τύπου οντοτήτων ‘Τμήμα’ είναι ΜΕΡΙΚΗ. 1ος Τρόπος Αναπαράστασης, πληθυκότητες Αριθμός Όνομα Όνομα Τοποθεσία ελέγχος Ν 1 Τμήμα Έργο
Τύποι Συσχετίσεων και Πληθικότητα: Αναπαράσταση 2ος Τρόπος Αναπαράστασης, άνω και κάτω όρια συμμετοχής Αριθμός Όνομα Όνομα Τοποθεσία (0,Ν) ελέγχος (1,1) Τμήμα Έργο
Τύποι Συσχετίσεων και Πληθυκότητα: Αναπαράσταση 3ος Τρόπος Αναπαράστασης, άνω και κάτω όρια συσχέτισης Αριθμός Όνομα Όνομα Τοποθεσία 0..* ελέγχος 1..1 Τμήμα Έργο
Τύποι Συσχετίσεων και Πληθυκότητα: Αναπαράσταση 4ος Τρόπος Αναπαράστασης, προσθήκη «ρόλων» Αριθμός Όνομα Όνομα Τοποθεσία (0,Ν) ελέγχος (1,1) Τμήμα Έργο ελέγχει ελέγχεται από «Ενα τμήμα ελέγχει από 0 έως πολλά έργα» «Ενα έργο ελέγχεται από ακριβώς ένα τμήμα» Οι ρόλοι είναι προαιρετικοί και συνήθως χρησιμοποιούνται σε περιπτώσεις όπου το διάγραμμα είναι εννοιολογικά ασαφές (π.χ., αυτοσυσχετίσεις όπως «εργαζόμενος επιβλέπει εργαζόμενο)
Τύποι Συσχετίσεων και Πληθυκότητα: Αναπαράσταση 5ος Τρόπος Αναπαράστασης, Crow’s foot notation Αριθμός Όνομα Όνομα Τοποθεσία (0,Ν) ελέγχος Τμήμα Έργο «Ενα έργο ελέγχεται από ακριβώς ένα τμήμα» «Ενα τμήμα ελέγχει από 0 έως πολλά έργα»
Τύποι Συσχετίσεων και Πληθικότητα: Αναπαράσταση 6ος Τρόπος Αναπαράστασης, πληθυκότητες Αριθμός Όνομα Όνομα Τοποθεσία ελέγχος 1 Ν Τμήμα Έργο
Πηγές Εθνικό Μετσόβιο Πολυτεχνείο : Σημειώσεις του μαθήματος Βάσεις Δεδομένων Ι Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστημίου Πατρών : Σημειώσεις του μαθήματος Βάσεις Δεδομένων Ι