Department of Computer Science University of Cyprus EPL342 Databases Lecture 4: ER I Data Modeling Using the ER Model (Chapter 3.1-3.3, Elmasri-Navathe 5ED) Demetris Zeinalipour http://www.cs.ucy.ac.cy/courses/epl342 4-1
Πεξηερόκελν Γηάιεμεο Κεθάιαην 3 3) Σύλνςε Γηαδηθαζίαο Αλάπηπμεο Βάζεσλ 3.1) Χξήζε ηνπ Μνληέινπ Οληνηήησλ- Σπζρεηίζεσλ γηα ην Σρεδηαζκό Βάζεσλ Γεδνκέλσλ 3.2) Μηα Δθαξκνγή Βάζεσλ Γεδνκέλσλ- Παξάδεηγκα (Απαηηήζεηο Σπζηήκαηνο) 3.3) Τύπνη Οληνηήησλ, Σύλνια Οληνηήησλ, Γλσξίζκαηα θαη Κιεηδηά 4-2
Γηαδηθαζία Αλάπηπμεο Βάζεσλ Γηα ηελ αλάπηπμε κηαο Σρεζηαθήο Βάζεο δεδνκέλσλ αθνινπζνύληαη ηα αθόινπζα βήκαηα A. Αλάιπζε Απαηηήζεσλ (Requirement Analysis): Ο Αλαιπηήο ηνπ ζπζηήκαηνο πξνεηνηκάδεη έλα έγγξαθν απαηηήζεσλ κε ηελ βνήζεηα ηνπ πειάηε. Τη δεδνκέλα λα απνζεθεύνληαη θαη πνπ; Τη εθαξκνγέο ζα ρηηζηνύλ πάλσ από ηα δεδνκέλα; Πνηεο πξάμεηο/δηαδηθαζίεο πξέπεη λα ππνζηεξηρζνύλ θαη κε ηη απαηηήζεηο επίδνζεο; B. Δλλνηνινγηθή ρεδίαζε Βάζεο (Conceptual Database Design): O DB Designer εηνηκάδεη έλα ER δηάγξακκα ην νπνίν κπνξεί λα γίλεη αληηιεπηό ζην πειάηε (γηα επηθύξσζε) Τν δηάγξακκα απηό πξέπεη λα νξζό, πιήξεο θαη απνδνηηθό γηα λα είλαη εύθνιε ε κεηαηξνπή ζην επόκελν ζηάδην. 4-3
Γηαδηθαζία Αλάπηπμεο Βάζεσλ C. Λνγηθή ρεδίαζε Βάζεο (Logical Database Design): Μεηαηξνπή ηνπ ER δηαγξάκκαηνο ζε έλα (Σρεζηαθό) Σρήκα Βάζεο. Μπνξεί λα γίλεη θαη απηόκαηα κε θάπνην αιγόξηζκν / εξγαιείν D. Δθιέπηπλζε ρήκαηνο (Schema Refinement): Αλάιπζε ζρήκαηνο γηα εληνπηζκό ελδερόκελσλ πξνβιεκάησλ π.ρ., Student(ssn, vehicleid, motorid). Απνθπγή πνιιώλ θελώλ ηηκώλ π.ρ., Ο Κώζηαο ΓΔΝ έρεη απηνθίλεην δεκηνπξγεί ηελ κε επηζπκεηή εγγξαθή (111, NULL, NULL); E. Φπζηθόο ρεδηαζκόο Βάζεο (Physical Database Design) Έιεγρνο όηη ε βάζε ζα ηθαλνπνηεί ηηο απαηηήζεηο επίδνζεο/θόξηνπ θηι. ηα νπνία επηβάιινπλ νη απαηηήζεηο ηνπ εγγξάθνπ αλάιπζεο. Δάλ δελ ηθαλνπνηνύληαη ηνηε ζε απηό ην ζηάδην ιακβάλνληαη δηνξζσηηθά κέηξα (π.ρ., πξνζζήθε επξεηεξίσλ, θηι). F. Τινπνίεζε Δθαξκνγήο θαη Μεραληζκώλ Αζθάιεηαο (Application & Security Design) 4-4
Γηαδηθαζία Αλάπηπμεο Βάζεσλ (Γηαγξακκαηηθή) Μiniworld Αλάιπζε Απαηηεζεσλ Δλλνηνινγηθή ρεδίαζε (ER) Λνγηθή ρεδίαζε (ER2Rel Mapping) Φπζηθή ρεδίαζε (Δπξεηήξηα, θηι) 4-5
Γηαδηθαζία Αλάπηπμεο Βάζεσλ (Α. Αλάιπζε Απαηηήζεσλ) Θεσξήζηε ηηο αθόινπζέο Απαηηήζεηο (Requirements) κηαο ππνζεηηθήο βάζεο COMPANY γηα ηελ νπνία πξέπεη λα θάλνπκε ηελ Δλλνηνινγηθή ρεδίαζε: Η COMPANY νξγαλώλεηαη ζε DEPARTMENTs. Κάζε department έρεη ηα αθόινπζα πεδία: name, number θαη έλα manager πνπ δηαρεηξίδεηαη ην department, start date ηνπ department manager. Κάζε department κπνξεί λα έρεη πνιιαπιά locations. Κάζε department ειέγρεη έλα αξηζκό από PROJECTs. Κάζε project έρεη έλα κνλαδηθό name, κνλαδηθό number θαη βξίζθεηαη ζε κηα κόλν ηνπνζεζία (location). 4-6
Γηαδηθαζία Αλάπηπμεο Βάζεσλ (Α. Αλάιπζε Απαηηήζεσλ) Γηα θάζε EMPLOYEE απνζεθεύνπκε ην social security number (SSN ηαπηόηεηα), address, salary, sex, θαη birthdate. Κάζε employee δνπιεύεη γηα έλα department αιιά κπνξεί λα εξγάδεηαη πάλσ ζε πνιιά projects. Γηα θάζε project θαηαγξάθνπκε ηνλ ρξόλν (number of hours per week) ηα νπνία αθηεξώλεη έλαο employee πάλσ ζε θάζε project. Δπίζεο θαηαγξάθνπκε ηνλ πξντζηάκελν (direct supervisor) θάζε employee. Κάζε employee κπνξεί λα έρεη έλα αξηζκό από Δμαξηώκελα (DEPENDENTs), δει., παηδηά. Γηα θάζε depend, θξαηνύκε ην name, sex, birthdate, θαη ηνλ ηύπν ηεο ζρέζεο (relationship) κε ηνλ employee. 4-7
Γηαδηθαζία Αλάπηπμεο Βάζεσλ (Β. Δλλνηνινγηθή Σρεδίαζε) Απνηέιεζκα: Γηάγξακκα ER * Λεπηνκέξεηεο ζα κειεηεζνύλ ζε απηή θαη ηηο εξρόκελεο δηαιέμεηο. 4-8
Γηαδηθαζία Αλάπηπμεο Βάζεσλ (C. Λνγηθή Σρεδίαζε) Απνηέιεζκα: ρεζηαθό ρήκα * Λεπηνκέξεηεο γηα απηή θαη ηηο άιιεο θάζεηο (Δθιέπηπλζε, Φπζηθή Σρεδίαζε, θηι) ζα δνύκε ζε εξρόκελεο δηαιέμεηο. 4-9
Γηαδηθαζία Σρεδίαζεο Τώξα ζα κειεηήζνπκε αλαιπηηθόηεξα ηε θάζε ηεο ζρεδίαζεο γηα ηελ νπνία ππάρνπλ δπν βαζηθέο δηαδηθαζίεο: ρεδηαζκόο Βάζεο (Database design) ρεδηαζκό Δθαξκνγήο (Applications design) Ο ζηόρνο καο ζε απηή ηελ ελόηεηα επηθεληξώλεηαη ζην πξώην. δει., επηθέληξσζε ζην ζρεδηαζκό ηνπ ελλνηνινγηθνύ ζρήκαηνο κηαο βάζεο. Έλα ηέηνην ζρήκα ζα αληηθαηνπηξίδεη ηηο πξνδηαγξαθέο ηνπ ρξήζηε (πειάηε) όπσο απηέο έρνπλ πξνθύςεη από ηελ αλάιπζε απαηηήζεσλ. Ο ζρεδηαζκόο ηεο εθαξκνγήο θαη ησλ ζπζηεκάησλ δηαπξνζσπείαο γεληθά κειεηάηαη ζην πιαίζην ηεο Σερλνινγίαο Λνγηζκηθνύ. 4-10
ER Γηαγξάκκαηα Δηαγξάκκαηα ηα νπνία ρξεζηκνπνηνύληαη γηα ηελ εννοιολογική αναπαράσταση δεδνκέλωλ. Οξίδεηαη ην 1976 από ηνλ Prof. Peter Chen The Entity-Relationship Model--Toward a Unified View of Data, ACM Transactions on Database Systems, Vol. 1, No. 1, March 1976, Pages 9 36 Θα αλαθεξζνύκε ζε απηά ηα δηαγξάκκαηα ωο Δηάγξακκα Οληνηήηωλ Σπζρεηίζωλ (ΔΟΣ) ή ER Diagram (ERD) Υπάξρνπλ δηάθνξoη (όκνηνη) ζπκβνιηζκνί νη νπνίνη ρξεζηκνπνηνύληαη. Σην κάζεκα (εξγαζίεο, εμεηάζεηο, θηι) ζα ρξεζηκνπνηήζνπκε ηελ ζεκεηνγξαθία (notation) ηνπ βηβιίνπ. Παξαιιαγέο ηέηνηωλ δηαγξακκάηωλ ρξεζηκνπνηνύληαη ζε δηάθνξα εκπνξηθά εξγαιεία γηα ηελ αλάπηπμε βάζεωλ δεδνκέλωλ. 4-11
Έλλνηεο ηνπ ER Model (Οληόηεηεο, Σρέζεηο θαη Γλσξίζκαηα) 1) Οληόηεηεο θαη Γλσξίζκαηα Οληόηεηεο (Entitities): είλαη ζπγθεθξηκέλα αληηθείκελα COURSE Name ηνπ mini-world πνπ αλαπαξηζηώληαη από ηελ βάζε. Π.ρ., Ο EMPLOYEE Γηάλλνο Ισάλλνπ, Τν DEPARTMENT Πιεξνθνξηθήο, ην COURSE ΔΠΛ342 Attributes (Γλσξίζκαηα, Πεδία ή Υαξαθηεξηζηηθά): είλαη ηδηόηεηεο πνπ πεξηγξάθνπλ κηα νληόηεηα. Π.ρ., Μηα νληόηεηα EMPLOYEE έρεη ηα γλσξίζκαηα Name, SSN (Social Security Number Ταπηόηεηα), Address, Sex, BirthDate Κάζε γλώξηζκα έρεη θάπνην ηύπν δεδνκέλσλ (data type), integer, string, binary, bit, θηι. 2) πζρεηίζεηο (Relationships) ζα κειεηεζνύλ ηελ επόκελε δηάιεμε 4-12
Έλλνηεο ηνπ ER Model (Οληόηεηεο θαη Γλσξίζκαηα) Μηα νληόηεηα έρεη ηηκέο γηα ηα πεδία ηεο: Π.ρ., Οληόηεηα EMPLOYEE Α: Name='John Smith', SSN='123456789', Address = 16, Ιθηγελείαο, 1890 Λεπθσζία', Sex='M', BirthDate='09-JAN-55 Γηαγξακκαηηθά, ηα γλσξίζκαηα ζπλδένληαη κε ηελ νληόηεηα κέζσ αθκώλ Name SSN Address Sex EMPLOYEE Birthdate 4-13
Έλλνηεο ηνπ ER Model (Γλσξίζκαηα) Απιά (ή Μνλόηηκα Simple) To γλώξηζκα έρεη απιή ηηκή π.ρ., SSN= 123456 or Sex= M ύλζεηα (Composite) Σν γλώξηζκα πεξηέρεη πνιιαπιά πεδία: Address(Apt#, House#, Street, City, State, ZipCode, Country), ή Name(FirstName, MiddleName, LastName). Η ζύλζεζε κπνξεί λα δεκηνπξγήζεη κηα ηεξαξρία όπνπ θάπνηα γλσξίζκαηα είλαη θαη απηά ζύλζεηα (εάλ θαη όπσο ζα δνύκε αξγόηεξα ζα απνθεύγεηαη απηή ε ινγηθή) Πιεηόηηκα (Multi-valued) Σν γλώξηζκα κπνξεί λα πάξεη πνιιαπιέο απιέο ηηκέο Π.ρ., Χξώκα Απηνθηλήηνπ: {red, white}. Πξνεγνύκελα Πηπρία Αηόκνπ: { }, {bsc,msc}, {bsc,phd}, 4-14
Έλλνηεο ηνπ ER Model (Τύπνη Οληνηήησλ θαη Κιεηδηά) Σύπνη Οληνηήησλ (Entity Types): Τν ζρήκα (δνκή) κηαο νληόηεηαο. Π.ρ., STUDENT(SSN, name, age) ύλνιν Οληνηήησλ (Entity Set ή Entity State) Έλα ζύλνιν νληνηήησλ κε ηα ίδηα ραξαθηεξηζηηθά π.ρ., {Student1, Student2, } θηι. ENTITY Σύπνη Οληνηήησλ ύλνιν Οληνηήησλ Σπλήζσο ζα αλαθεξόκαζηε θαη ζηα: Οληόηεηα, Σύπνο Οληόηεηαο, ύλνιν Οληόηεηαο σο Οληόηεηα (εθηόο θαη εάλ γίλεηαη ξεηή δηαθνξνπνίεζε) 4-15
Έλλνηεο ηνπ ER Model (Κιεηδηά) Κάζε Οληόηεηα ΠΡΔΠΔΙ λα έρεη έλα ραξαθηεξηζηηθό ην νπνίν ζα καο επηηξέπεη λα ην αλαγλσξίδνπκε ΜΟΝΑΓΙΚΑ Π.ρ., SSN γηα Student. Τν πεδίν πνπ αλαγλσξίδεη κνλαδηθά κηα Οληόηεηα νλνκάδεηαη Κιεηδί ηεο Οληόηεηαο (Key) Έλα θιεηδί (key) κπνξεί λα είλαη ζύλζεην Π.ρ., VehicleTagNumber = (Number, State) Απηόο ν πεξηνξηζκόο ηζρύεη γηα νρήκαηα ζηηο ΗΠΑ θαη ηνλ δηαηεξνύκε γηα ιόγνπο ζπκβαηόηεηαο κε ην βηβιίν Έλα θιεηδί ππνγξακκίδεηαη ζην δηάγξακκα Άιιεο Λεπηνκέξεηεο: Μηα νληόηεηα κπνξεί λα έρεη πάλσ από 1 θιεηδηά, π.ρ.,: Ο Αξηζκόο Πιαηζίνπ ηνπ Απηνθηλήηνπ (VehicleIdentificationNumber) ή Ο Αξηζκόο Πηλαθίδαο ηνπ Απηνθηλήηνπ (VehicleTagNumber) (Number, State). key 4-16
Έλλνηεο ηνπ ER Model (Κιεηδηά) Πξσηεύσλ Κιεηδί (Primary Key): Έλα από ηα θιεηδηά ηα νπνία επηιέγεηαη από ηνλ ζρεδηαζηή γηα λα αληηπξνζσπεύζεη ηε ζρέζε (SSN) key Unique Key (Μνλαδηθό Κιεηδί): Όκνηα έλλνηα αιιά δελ εθαξκόδεη ηνλ πεξηνξηζκό NOT NULL ν νπνίνο ηζρύεη εμνξηζκνύ ζην πξσηεύσλ θιεηδί. Τπνςήθην Κιεηδί (Candidate Key) ή Δλαιιαθηηθά θιεηδηά: ηα ελαπνκείλαληα θιεηδηά Π.ρ., StudentID αληί SSN key Τν πξωηεύωλ θιεηδί είλαη ππνγξακκηζκέλν, ηα ελαιιαθηηθά θιεηδηά είλαη over-lined Τπεξθιεηδί (SuperKey): Έλα ζύλνιν ραξαθηεξηζηηθώλ πνπ πεξηιακβάλνπλ ηνπιάρηζην 1 θιεηδί ηεο ζρέζεο. Π.ρ., (SSN, Name) ή (StudentID, Name, Age), θηι. 4-17
ER-Γηαγξάκκαηα (Σύλνςε ηεο κέρξη ηώξα Σεκεηνγξαθίαο) Ονηόηηηα χαρακηηριζηικό Πλειόηιμο (Multivalue) χαρακηηριζηικό A πρωηεύων κλειδί A (primary key) εναλλακηικό κλειδί Σύνθεηο (Composite) χαρακηηριζηικό Α B (candidate key) Υπολογιζμένο χαρακηηριζηικό Α B Σύνθεηο κλειδί (Composite key) Οη ππόινηπνη ζπκβνιηζκνί (γηα ζπζρεηίζεηο) ζα παξνπζηαζηνύλ ζηελ επόκελε δηάιεμε key 4-18
Παξάδεηγκα ER Γηαγξάκκαηνο (Οληόηεηα κε δπν θιεηδηά) Γηάγξακκα ER Σύπνο Οληόηεηαο ύλνιν Οληόηεηαο 4-19
Σρεδίαζε Τύπσλ Οληνηήησλ: EMPLOYEE, DEPARTMENT, PROJECT, DEPENDENT Βάζε ησλ πξνδηαγξαθώλ δηαθξίλνπκε ηέζζεξηο ηύπνπο νληνηήησλ γηα ηελ βάζε COMPANY: DEPARTMENT PROJECT EMPLOYEE DEPENDENT Τν πξώην ζηάδην ηεο ζρεδίαζεο πεξηιακβάλεη ηελ δηαγξακκαηηθή απεηθόληζε ησλ νληνηήησλ καδί κε ηα επί κέξνπο γλσξίζκαηα ηνπο (όπσο απηά δίλνληαη από ηηο πξνδηαγξαθέο). Αθνινπζεί αλαιπηηθή απεηθόληζε 4-20
Σρεδίαζε Τύπσλ Οληνηήησλ: EMPLOYEE, DEPARTMENT, PROJECT, DEPENDENT Πξνδηαγξαθή Ι: Κάζε Department έρεη ηα αθόινπζα πεδία: α) Μνλαδηθό Name, β) Μνλαδηθό Number θαη έλα γ) Manager πνπ δηαρεηξίδεηαη ην department, δ) Start date ηνπ department manager. Κάζε department κπνξεί λα έρεη ε) πνιιαπιά Locations. α) β) ή Number ε) γ) Πιεηόηηκν (Multivalue) δ) 4-21
Σρεδίαζε Τύπσλ Οληνηήησλ: EMPLOYEE, DEPARTMENT, PROJECT, DEPENDENT Πξνδηαγξαθή ΙΙ: α) Κάζε department ειέγρεη έλα αξηζκό από PROJECTs. β) Κάζε project έρεη έλα κνλαδηθό name, γ) κνλαδηθό number θαη βξίζθεηαη ζε κηα δ) κόλν ηνπνζεζία (location). δ) β) γ) α) 4-22
Σρεδίαζε Τύπσλ Οληνηήησλ: EMPLOYEE, DEPARTMENT, PROJECT, DEPENDENT Πξνδηαγξαθή ΙΙΙ: Γηα θάζε EMPLOYEE απνζεθεύνπκε ην α) social security number (SSN ηαπηόηεηα), β) address, γ) salary, δ) sex, θαη ε) birthdate. Κάζε employee δ) δνπιεύεη γηα έλα department αιιά κπνξεί λα ε) εξγάδεηαη πάλσ ζε πνιιά projects. ζ) Γηα θάζε project θαηαγξάθνπκε ηνλ ρξόλν (num of hours per week) ηα νπνία αθηεξώλεη έλαο employee πάλσ ζε θάζε project. η) Δπίζεο θαηαγξάθνπκε ηνλ πξντζηάκελν (direct supervisor) θάζε employee αιιά θαη ην όλνκα ηνπ Employee Σύλζεην (Composite) - Μεηά από ζπλελλόεζε κε ηνλ πειάηε (αθνύ δελ ήηαλ αξρηθή απαίηεζε λα είλαη ζύλζεην) θ) δ) ε) α) δ) γ) β) Θ1) Θ2) η) ε) Πιεηόηηκν & Σύλζεην (Multivalue & Composite) 4-23
Σρεδίαζε Τύπσλ Οληνηήησλ: EMPLOYEE, DEPARTMENT, PROJECT, DEPENDENT Πξνδηαγξαθή IV: α) Κάζε employee κπνξεί λα έρεη έλα αξηζκό από Δμαξηώκελα (DEPENDENTs), δει., παηδηά. Γηα θάζε depend, θξαηνύκε ην β) name, γ) sex, δ) birthdate, θαη ε) ηνλ ηύπν ηεο ζρέζεο (relationship) κε ηνλ employee. ε) δ) γ) α) β) 4-24
Σρεδίαζε Τύπσλ Οληνηήησλ: EMPLOYEE, DEPARTMENT, PROJECT, DEPENDENT Σηελ εξρόκελε δηάιεμε ζα εθιεπηύλνπκε ν δηάγξακκα καο εηζάγνληαο ηελ έλλνηα ζπζρεηίζεσλ κεηαμύ ησλ νληνηήησλ 4-25