Department of Computer Science University of Cyprus EPL342 Databases Lecture 5: ER II Data Modeling Using the ER Model (Chapter 3.4-3.7, Elmasri-Navathe 5ED) Demetris Zeinalipour http://www.cs.ucy.ac.cy/courses/epl342 5-1
Πεξηερόκελν Γηάιεμεο Κεθάιαην 3 3.4) πζρεηίζεηο, Σύπνη πζρεηίζεσλ, Ρόινη θαη Γνκηθνί Πεξηνξηζκνί 3.5) Με-Ηζρπξνί Σύπνη Οληνηήησλ 3.6) Δθιέπηπλζε ηνπ ρεδηαζκνύ Ο γηα ηε Βάζε Γεδνκέλσλ Δηαηξεία 3.7) Γηαγξάκκαηα Οληνηήησλ-πζρεηίζεσλ, Δπηινγή Ολνκάησλ θαη Θέκαηα ρεδηαζκνύ 5-2
πζρεηίζεηο (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 5-3
πζρεηίζεηο N:1 (Γηαγξακκαηηθή Απεηθόληζε κε ύλνια) (Οπζηαζηηθό) (Ρήκα) (Οπζηαζηηθό) Όπσο ζα δνύκε αξγόηεξα πξόθεηηαη γηα κηα N:1 ζρέζε (δει., ζε έλα Dep. δνπιεύνπλ πνιινί Emp. αιια θάζε Emp. sε έλα Dep. ηηγκηόηππα ηνπ ηύπνπ ζρέζεο WORKS_FOR κεηαμύ EMPLOYEE θαη DEPARTMENT 5-4
πζρεηίζεηο Μ:N (Γηαγξακκαηηθή Απεηθόληζε κε ύλνια) Όπσο ζα δνύκε αξγόηεξα πξόθεηηαη γηα κηα M:N ζρέζε (δει., έλαο Emp. δνπιεύεη ζε πνιιά Proj. θαη ζε έλα Proj. πνιινί Emp.) ηηγκηόηππα ηνπ ηύπνπ ζρέζεο WORKS_ON κεηαμύ EMPLOYEE θαη PROJECT 5-5
Σύπνο πζρέηηζεο θαη ύλνιν πζρεηίζεσλ Τύπνο Σπζρέηηζεο (Relationship Type): Σν ζρήκα (δνκή) κηαο ζπζρέηηζεο. Π.ρ., WORK_FOR(SSN, DEPTID, hours) Σύλνιν Σπζρεηίζεωλ (Relat. Set ή Rela. State) Έλα ζύλνιν ζπζρεηίζεωλ κε ηα ίδηα ραξαθηεξηζηηθά π.ρ., {works_for1, works_for2, } θηι. ε έλα δηάγξακκα ER, νη ζπζρεηίζεηο ζπλδένπλ νληόηεηεο κέζσ αθκώλ EMPLOYEE WORKS_ FOR Relationship DEPARTMENT Βαζκόο Σρέζεο (Relationship Degree): Αξηζκόο (ηύπσλ νληνηήησλ) πνπ ζπκκεηέρνπλ ζηε ζρέζε Π.ρ., WORKS_FOR είλαη δπαδηθή ζρέζε Τςειόηεξνπ Βαζκνύ ζρέζεηο ζα κειεηεζνύλ αξγόηεξα. 5-6
ρήκα 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) «Κάζε EPL342: employee Databases κπνξεί - Demetris λα έρεη Zeinalipour έλα αξηζκό (University από (DEPENDENTs)» of Cyprus) 5-7
Γηάγξακκα ER κε πζρεηίζεηο Θέκαηα πνπ ζα δνύκε αξγόηεξα: 1. Λόγνη Πιεζηθόηεηαο (1:1,1:N, N:1, M:N); 2. Πεξηνξηζκνί Σπκκεηνρήο (δηπιέο θαη κνλέο γξακκέο) 3. Αζζελείο Οληόηεηεο (νληόηεηεο κε δηπιέο γξακκέο) Πξνζέμηε όηη κεξηθά γλωξίζκαηα ησλ αξρηθώλ νληνηήηωλ έρνπλ κεηαηξαπεί ζε ζρέζεηο. Πνηα είλαη απηά; (επόκελε δηαθάλεηα) 5-8
Γηάγξακκα ER κε πζρεηίζεηο (Γλσξίζκαηα πνπ Αλαπαξηζηώληαη σο ρέζεηο) Φ Φ Φ Φ Φ Φ 5-9
1 1 Γνκηθνί Πεξηνξηζκνί ζε πζρεηίζεηο (Structural Constraints on Relationships) Γνκηθνί Πεξηνξηζκνί (Structural Constraints) Ν Μ ή 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): ΚΑΘΔ ζηνηρείν κηαο νληόηεηαο Α ζπζρεηίδεηαη κε ηελ νληόηεηα Β 5-10
Αλάγλσζε ER κε Γνκηθνύο Πεξηνξηζκνύο (Ζ Δξώηεζε Σνπιάρηζην / Μέρξη) Φ Y κέρξη X ηνπιάρηζην X κέρξη Y ηνπιάρηζην Υ Δξώηεζε Τνπιάρηζην (At least) Δξώηεζε Μέρξη (At-most) Μνλή Γξακκή => Σνπιάρηζην 0 (δελ αλαθέξεηαη) x:1 => Μέρξη 1 Γηπιή Γξακκή=> Σνπιάρηζην 1 x:n => Μέρξη Ν. * ην x ππνδειεί ην νηηδήπνηε εκείσζε: ΠΑΝΤΑ δηαβάδνπκε ηε ζρέζε θαη πξνο ηηο δπν θαηεπζύλζεηο * Γνθηκάζηε λα δηαβάζεηε ην δηάγξακκα 5-11
Αλαδξνκηθόο Σύπνο πζρέηηζεο (Recursive Relationship Type) Αλαδξνκηθόο Τύπνο Σπζρέηηζεο: Έλαο ηύπνο ζπζρέηηζεο ν όπνηνο έρεη ηνλ ίδην ηύπν νληόηεηαο ζε επί κέξνπο ξόινπο Π.ρ., ε ζπζρέηηζε SUPERVISION, όπνπ EMPLOYEE ζπκκεηέρεη δηπιά ζε επί κέξνπο ξόινπο: 1) supervisor (or boss): ξόινο πξντζηακέλνπ 2) supervisee (or subordinate): ξόινο πθηζηάκελνπ Σρέζε = ( Πξνϊζηάκελν, Υθηζηάκελν ) r1=(e5,e1) r2=(e1,e2) r3=(e1,e3) r4=(e5,e4) r5=(e4,e6) r6=(e4,e7). 5-12
Αλαδξνκηθόο Σύπνο πζρέηηζεο (Recursive Relationship Type) Γηαγξακκαηηθή Απεηθόληζε Αλαδξνκηθήο Σρέζεο : supervisor (or boss): ξόινο πξντζηακέλνπ supervisee (or subordinate): ξόινο πθηζηάκελνπ 1 Emp. δηεπζύλεη N Employees 1 Emp. δηεπζύλεηαη από 1 Employee * * * Ζ ξεηή αλαθνξά EPL342: ζηνπο Databases επί κέξνπο - ξόινπο Demetris είλαη Zeinalipour απαξαίηεηε (University γηα λα είλαη of μεθάζαξε Cyprus) ε ζρέζε 5-13
Αζζελείο Σύπνη Οληνηήησλ (Weak Entity Types) Αζζελήο Οληόηεηα (Weak Entity): Μηα νληόηεηα ε νπνία δελ έρεη θιεηδί. DEPENDENT Απηέο νη νληόηεηεο νξίδνληαη από θάπνην άιιν ηύπν νληνηήησλ (ηνλ πξνζδηνξίδνληα owner entity type). πγθεθξηκέλα, νξίδνληαη από ηνλ αθόινπζν ζπλδπαζκό: Έλα κεξηθό θιεηδί (partial key) ηεο αζζελήο νληόηεηαο Σν (πξσηεύσλ) θιεηδί ηνπ πξνζδηνξίδνληα Παξάδεηγκα: Ζ νληόηεηα DEPENDENT νξίδεηαη από ην dependent s first name, και το κλειδί ηης ζχέζης EMPLOYEE (κε ηνλ νπνίν/α ζπζρεηίδεηαη ε/ν DEPENDENT) (EMPLOYEE.SSN, DEPENDENT.Name) γίλεηαη ην θιεηδί ηεο ζρέζεο DEPDENDENT 5-14
Αζζελείο Σύπνη Οληνηήησλ (Weak Entity Types) Ζ αζζελήο νληόηεηα DEPENDENT Κιεηδί DEPENDENT: (Emp.SSN, Dep.Name) 5-15
Γλσξίζκαηα ζε Σύπνπο πζρεηίζεσλ Μηα ζπζρέηηζε κπνξεί λα θέξεη δηάθνξα γλσξίζκαηα: Π.ρ., Hours ζηε ζπζρέηηζε WORKS_ON ην νπνίν πεξηγξάθεη πόζεο ώξεο δνπιεύεη έλαο EMPLOYEE ζε έλα PROJECT. ηηο πιείζηεο πεξηπηώζεηο, ηα γλώξηζκα εκθαλίδνληαη ζηηο M:N ζπζρεηίζεηο. Γηαηί; Γηόηη ζηηο ππόινηπεο πεξηπηώζεηο κπνξεί λα κεηαθεξζεί ην γλώξηζκα ζε θάπνηα από ηηο νληόηεηεο κε ηελ αθόινπζε ινγηθή A) 1:1. Tν γλώξηζκα κπνξεί λα κεηαθεξζεί πξνο νπνηαδήπνηε από ηηο δπν νληόηεηεο πνπ ζπκκεηέρνπλ (πξνηηκόηεξν πξνο νιηθή ζπκκεηνρή) B) 1:N, N:1. Σν γλώξηζκα κπνξεί λα κεηαθεξζεί πξνο ην N κέξνο ηεο ζπζρέηηζεο. Π.ρ., hours Mgr_start_ date A B 5-16
ρεζηαθό ρήκα (όπσο ζα νξηζηεί ζε εξρόκελεο δηαιέμεηο) Σεκείωζε: Γελ ρξεηάδεηαη λα θαηαιάβεηε αθόκε πσο αθξηβώο πξνέθπςε ην πην θαησ ρεζηαθό ρήκα. Απιά παξαηεξήζηε ηελ ζρέζε ησλ γλσξηζκάησλ κεηαμύ ηνπ ER δηαγξάκκαηνο (αξηζηεξά) θαη ηνπ ρεζηαθνύ ρήκαηνο (δεμηά). Γ) Α) Α) Β) Β) Γ) Δ) Γ) Γ) Δ) Ε) Ε) 5-17
ER-Γηαγξάκκαηα (ύλνςε εκεηνγξαθίαο) Ονηόηηηα (Δσναηή, Κανονική) ταρακηηριζηικό Πλειόηιμο (Multivalue) ταρακηηριζηικό A πρωηεύων κλειδί (primary key) Σύνθεηο (Composite) ταρακηηριζηικό Υπολογιζμένο ταρακηηριζηικό A A εναλλακηικό κλειδί (candidate key) Διεσκρινιζηικό μερικό κλειδί (partial key) Σα πην πάλσ παξνπζηαζηήθαλ ζηε πξνεγνύκελε δηάιεμε 5-18
ER-Γηαγξάκκαηα (ύλνςε εκεηνγξαθίαο) Αζθενής Ονηόηηηα N M Πληθσκόηηηες (1:1, 1:N, N:1, M:N) ζύνολο ζσζτεηίζεων Σσμμεηοτή μερική/ολική προζδιορίζων ζύνολο ζσζτεηίζεων για αζθενή ονηόηηηα l:h min:max Πληθσκόηηηες με όρια (θα μελεηηθούν ζε λίγο) 5-19
Οινθιεξσκέλν Γηάγξακκα ER (Γηαηππώζηε ην Γηάγξακκα θαη ηε Γνκή ηνπ) 5-20
Δλαιιαθηηθή εκεηνγξαθία (min, max) (γηα δηαηύπσζε δνκηθώλ πεξηνξηζκώλ) Έλαο ελαιιαθηηθόο ηξόπνο δηαηύπωζεο δνκηθώλ πεξηνξηζκώλ ζε έλα δηάγξακκα ER είλαη κε ηελ ρξήζε (min, max) πεξηνξηζκώλ. Δπί ηεο νπζίαο, απηή ε ζεκεηνγξαθία δελ δηαθέξεη από ηελ πξνεγνύκελε αθνύ θαη εθεί νξίδακε άλσ θαη θάησ όξηα (δει., ηνπιάρηζην/κέρξη) Ζ βαζηθή δηαθνξά είλαη όηη κε ηελ ρξήζε (min, max) επηηξέπεηαη λα νξίζνπκε αθξηβέζηεξα ηελ Πιεζπθόηεηα. Γειαδή, αληί 0 ή1 ζηνλ πεξηνξηζκό ζπκκεηνρήο (δει., κνλή ή δηπιή γξακκή) κπνξνύκε λα ρξεζηκνπνηήζνπκε όπνηα αθέξαηα ηηκή επηζπκνύκε. Γεο επόκελε δηαθάλεηα γηα παξαδείγκαηα 5-21
Δλαιιαθηηθή εκεηνγξαθία (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 5-22
Δλαιιαθηηθή εκεηνγξαθία (min, max) (Οινθιεξσκέλν Γηάγξακκα ER) 5-23