introduction to database systems mapping er models to relational schemas
DESCRIPTION
Introduction to Database Systems Mapping ER Models to Relational Schemas. Irvanizam Zamanhuri, M.Sc Informatics (Computer Science) Study Program Syiah Kuala University http://www.informatika.unsyiah.ac.id Email: [email protected]. name. buys. Person. Product. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Introduction to Database Systems Mapping ER Models to Relational Schemas](https://reader031.vdocuments.site/reader031/viewer/2022012313/568167f3550346895ddd67ba/html5/thumbnails/1.jpg)
Introduction to Database Systems
Mapping ER Models to Relational Schemas
Irvanizam Zamanhuri, M.ScInformatics (Computer Science) Study ProgramSyiah Kuala Universityhttp://www.informatika.unsyiah.ac.idEmail: [email protected]
![Page 2: Introduction to Database Systems Mapping ER Models to Relational Schemas](https://reader031.vdocuments.site/reader031/viewer/2022012313/568167f3550346895ddd67ba/html5/thumbnails/2.jpg)
Conceptual and Logical Design
PersonbuysProduct
name
price name ssn
Conceptual Model:
Relational Model:
![Page 3: Introduction to Database Systems Mapping ER Models to Relational Schemas](https://reader031.vdocuments.site/reader031/viewer/2022012313/568167f3550346895ddd67ba/html5/thumbnails/3.jpg)
We cannot store date in an ER schema (There are no ER database management systems)
We have to translate our ER schema into a relational schema
What does “translation” mean?
Mapping an E-R Diagram to a Relational Schema
![Page 4: Introduction to Database Systems Mapping ER Models to Relational Schemas](https://reader031.vdocuments.site/reader031/viewer/2022012313/568167f3550346895ddd67ba/html5/thumbnails/4.jpg)
Mapping Entity Types to Relations For every entity type create a relation Every atomic attribute of the entity type becomes a relation
attribute Composite attributes: include all the atomic attributes Derived attributes are not included
(but remember their derivation rules) The relation is a subset of the cross product of the
domains of the attributes Omit derived attributes
name
given family
STUDENT
studno
no. of students
subject
equipcourseno
COURSE
![Page 5: Introduction to Database Systems Mapping ER Models to Relational Schemas](https://reader031.vdocuments.site/reader031/viewer/2022012313/568167f3550346895ddd67ba/html5/thumbnails/5.jpg)
Mapping Entity Types to Relations (cntd.)
STUDENT (studno, givenname, familyname)
COURSE(courseno, subject, equip)
name
given family
STUDENT
studno
no. of students
subject
equipcourseno
COURSE
![Page 6: Introduction to Database Systems Mapping ER Models to Relational Schemas](https://reader031.vdocuments.site/reader031/viewer/2022012313/568167f3550346895ddd67ba/html5/thumbnails/6.jpg)
Mapping Many:many Relationship Types to RelationsCreate a relation with the following set of attributes:
N (degree of relationship)
U primary_key(Ei) U {a1…aM}i=1
primary keys of each participating entity type in the relationship
attributes on the relationship type (if any)
exammark
no. of students
labmarkname
given family
STUDENT
studno subject
equipcourseno
COURSEENROL
![Page 7: Introduction to Database Systems Mapping ER Models to Relational Schemas](https://reader031.vdocuments.site/reader031/viewer/2022012313/568167f3550346895ddd67ba/html5/thumbnails/7.jpg)
Mapping Many:many Relationship Types to Relations (cntd.)
ENROL(studno, courseno, labmark, exammark)
exammark
no. of students
labmarkname
given family
STUDENT
studno subject
equipcourseno
COURSEENROL
![Page 8: Introduction to Database Systems Mapping ER Models to Relational Schemas](https://reader031.vdocuments.site/reader031/viewer/2022012313/568167f3550346895ddd67ba/html5/thumbnails/8.jpg)
Mapping One:many Relationship Types to Relations
Idea: “Post the primary key” Given E1 at ‘many’ end of relationship and E2 at ‘one’ end of
relationship, add to the relation for E1 Make the primary key of the entity at the ‘one’ end (the determined
entity) a foreign key in the entity at the ‘many’ end (the determining entity). Include any relationship attributes with the foreign key entity
attributes on the relationship type (if any)
E1 U primary_key(E2) U {a1…an}
relation for entity E1
primary key for E2, is now a foreign key to E2
STAFF
slot
TUTORm 1
name
given family
STUDENTstudno
roomnoname
![Page 9: Introduction to Database Systems Mapping ER Models to Relational Schemas](https://reader031.vdocuments.site/reader031/viewer/2022012313/568167f3550346895ddd67ba/html5/thumbnails/9.jpg)
Mapping One:many Relationship Types to Relations(cntd.)
STAFF
slot
TUTORm 1
name
given family
STUDENTstudno
roomnoname
The relation STUDENT (studno, givenname, familyname)is extended to STUDENT (studno, givenname, familyname, tutor, roomno,slot)and the constraint Foreign Key STUDENT(tutor,roomno) references STAFF(name,roomno)
![Page 10: Introduction to Database Systems Mapping ER Models to Relational Schemas](https://reader031.vdocuments.site/reader031/viewer/2022012313/568167f3550346895ddd67ba/html5/thumbnails/10.jpg)
Mapping one:many Relationship Types to Relations (cntd.)
STAFF name roomno kahn IT206 bush 2.26 goble 2.82 zobel 2.34 watson IT212 woods IT204 capon A14 lindsey 2.10 barringer 2.125
STUDENT studno given family tutor slot s1 fred jones bush 12B s2 mary brown kahn 12B s3 sue smith goble 10A s4 fred bloggs goble 11A s5 peter jones zobel 13B s6 jill peters kahn 12A
![Page 11: Introduction to Database Systems Mapping ER Models to Relational Schemas](https://reader031.vdocuments.site/reader031/viewer/2022012313/568167f3550346895ddd67ba/html5/thumbnails/11.jpg)
Mapping One:many Relationship Types to Relations(cntd.)
Another Idea: If the relationship type is optional to both entity types, and an instance of the relationship is rare, and there are many attributes on the relationship then…Create a new relation with the set of attributes:
attributes on the relationship type (if any)
primary_key(E1) U primary_key(E2) U {a1,…,am}
primary key for E2, is now a foreign key to E2
primary key for E1, is now a foreign key to E1;also the PK for this relation
STAFF
slot
TUTORm 1
name
given family
STUDENTstudno
roomnoname
![Page 12: Introduction to Database Systems Mapping ER Models to Relational Schemas](https://reader031.vdocuments.site/reader031/viewer/2022012313/568167f3550346895ddd67ba/html5/thumbnails/12.jpg)
Mapping One:many Relationship Types to Relations(cntd.)
TUTOR(studno, staffname, rommno, slot)
and
Foreign key TUTOR(studno) references STUDENT(studno)
Foreign key TUTOR(staffname,roomno) references STAFF(name,roomno)
STAFF
slot
TUTORm 1
name
given family
STUDENTstudno
roomnoname
Compare with the mapping of many:many
relationship types!
![Page 13: Introduction to Database Systems Mapping ER Models to Relational Schemas](https://reader031.vdocuments.site/reader031/viewer/2022012313/568167f3550346895ddd67ba/html5/thumbnails/13.jpg)
Mapping One:many Relationship Types to Relations (cntd.)
STAFF name roomno kahn IT206 bush 2.26 goble 2.82 zobel 2.34 watson IT212 woods IT204 capon A14 lindsey 2.10 barringer 2.125
STUDENT studno given family s1 fred jones s2 mary brown s3 sue smith s4 fred bloggs s5 peter jones s6 jill peters
TUTOR studno tutor slot s1 bush 12B s2 kahn 12B s3 goble 10A s4 goble 11A s5 zobel 13B s6 kahn 12A
![Page 14: Introduction to Database Systems Mapping ER Models to Relational Schemas](https://reader031.vdocuments.site/reader031/viewer/2022012313/568167f3550346895ddd67ba/html5/thumbnails/14.jpg)
Optional Participation of the Determined Entity (‘one end’)
SCHOOL(hons, faculty)STUDENT(studno, givenname, familyname, ??? )
studnoname
given family
honsSTUDENT
SCHOOLREG
facultym
1
A student entity instance must participate in a relationship instance of REG
A school entity instance does not have to participate in a relationship instance of REG
![Page 15: Introduction to Database Systems Mapping ER Models to Relational Schemas](https://reader031.vdocuments.site/reader031/viewer/2022012313/568167f3550346895ddd67ba/html5/thumbnails/15.jpg)
Optional Participation of the Determined Entity
hons can’t be NULL because it is mandatory for a student to be registered for a school
“not null” constraint
No student is registered for “mi”, so “mi” doesn’t occur as a foreign key value (but that’s no problem)
STUDENT studno given family hons s1 fred jones ca s2 mary brown cis s3 sue smith cs s4 fred bloggs ca s5 peter jones cs s6 jill peters ca SCHOOL hons faculty ca accountancy cis information systems cs computer science ce computer science mi medicine cm mathematics
![Page 16: Introduction to Database Systems Mapping ER Models to Relational Schemas](https://reader031.vdocuments.site/reader031/viewer/2022012313/568167f3550346895ddd67ba/html5/thumbnails/16.jpg)
Optional Participation of the Determinant Entity (‘many end’)
STAFF
slot
TUTORm 1
name
given family
STUDENTstudno
roomnoname
A student entity instance does not have to participate in a relationship instance of TUTOR
A staff entity instance must participate in a relationship instance of TUTOR
![Page 17: Introduction to Database Systems Mapping ER Models to Relational Schemas](https://reader031.vdocuments.site/reader031/viewer/2022012313/568167f3550346895ddd67ba/html5/thumbnails/17.jpg)
Optional Participation of the Determinant Entity (‘many end’)
1. STUDENT (studno, givenname, familyname, tutor, slot) STAFF(name, roomno)
Integrity constraint:
name,roomno STAFF – tutor,roomno STUDENT =
2. STUDENT(studno, givenname, familyname)STAFF(name, roomno)TUTOR(studno, tutor, roomno, slot)
Do we also need an integrity constraint?
![Page 18: Introduction to Database Systems Mapping ER Models to Relational Schemas](https://reader031.vdocuments.site/reader031/viewer/2022012313/568167f3550346895ddd67ba/html5/thumbnails/18.jpg)
Optional Participation of the Determinant Entity (cntd.)
STAFF name roomno kahn IT206 bush 2.26 goble 2.82 zobel 2.34 watson IT212 woods IT204 capon A14 lindsey 2.10 barringer 2.125
STUDENT studno given family tutor slot s1 fred jones bush 12B s2 mary brown kahn 12B s3 sue smith goble 10A s4 fred bloggs NULL NULL s5 peter jones zobel 13B s6 jill peters NULL NULL
![Page 19: Introduction to Database Systems Mapping ER Models to Relational Schemas](https://reader031.vdocuments.site/reader031/viewer/2022012313/568167f3550346895ddd67ba/html5/thumbnails/19.jpg)
Mapping one:one Relationship Types to Relations
Post the primary key of one of the entity types into the other entity type as a foreign key, including any relationship attributes with it
or
Merge the entity types together
Which constraintholds in this case?
YEAR
YEARTUTOR
STAFF
year
1
1
1
roomnoname STAFF name roomno year kahn IT206 NULL bush 2.26 2 goble 2.82 NULL zobel 2.34 1 watson IT212 NULL woods IT204 NULL capon A14 3 lindsey 2.10 NULL barringer 2.125 NULL
YEAR year yeartutor 1 zobel 2 bush 3 capon
![Page 20: Introduction to Database Systems Mapping ER Models to Relational Schemas](https://reader031.vdocuments.site/reader031/viewer/2022012313/568167f3550346895ddd67ba/html5/thumbnails/20.jpg)
dateofbirth
Multi-Valued Attributes (… if they are allowed)For each multi-valued attribute of Ei, create a relation with the attributes
primary_key(Ei) U multi-valued attribute
The primary key comprises all attributes
name
given family
STUDENTstudno
contact
STUDENT studno given family dateofbirth s1 fred jones 10/4/78 s2 mary brown 12/1/72
STUDENT_CONTACTS studno contact s1 Mr. Jones s1 Mrs Jones s2 Bill Brown s2 Mrs Jones s2 Billy-Jo Woods
![Page 21: Introduction to Database Systems Mapping ER Models to Relational Schemas](https://reader031.vdocuments.site/reader031/viewer/2022012313/568167f3550346895ddd67ba/html5/thumbnails/21.jpg)
Mapping Roles & Recursive Relationships
How can the entity STAFF appear in both of its roles ?
STAFFname
appraiserappraisee
APPRAISAL
1 mroomno
STAFF(name, roomno, )appraiser, approomno
![Page 22: Introduction to Database Systems Mapping ER Models to Relational Schemas](https://reader031.vdocuments.site/reader031/viewer/2022012313/568167f3550346895ddd67ba/html5/thumbnails/22.jpg)
Multiple Relationships between Entity Types
STUDENT
SUPERVISE
STAFF
EXAMINE
1
1
m
m
studno
name
given family
name
roomno
STAFF(name,roomno)
STUDENT(studno,given,family, ??? )
STUDENT(studno,given,family, ??? )EXAMINER( ??? )SUPERVISOR( ??? )
EXAMINER-SUPERVISOR( ??? )
1. Treat each relationship type separately2. Represent distinct relationships by different foreign
keys drawing on the same relation
![Page 23: Introduction to Database Systems Mapping ER Models to Relational Schemas](https://reader031.vdocuments.site/reader031/viewer/2022012313/568167f3550346895ddd67ba/html5/thumbnails/23.jpg)
Non-binary Relationship
STAFF
p
mTUTORSname
given family
STUDENT
studno
COURSE
subject
equipcourseno
STAFFname
n
roomno
slot
COURSE(courseno, subject, equip) STUDENT(studno, givenname, familyname)STAFF(staffname, roomno)TUTORS( ??? )
![Page 24: Introduction to Database Systems Mapping ER Models to Relational Schemas](https://reader031.vdocuments.site/reader031/viewer/2022012313/568167f3550346895ddd67ba/html5/thumbnails/24.jpg)
Weak Entities
orderid
CUSTOMER
1date
ORDER
m
1address
c-name
ORDERLINES
ORDER_LINE
m part
quantity
CUST-ORDER
ORDER-MAKEUP
• Weak entity• Identifying entity for ORDER_LINES
• Weak entity
• Strong Entity• Identifying entity for ORDER• Identifying entity for ORDER_LINES
![Page 25: Introduction to Database Systems Mapping ER Models to Relational Schemas](https://reader031.vdocuments.site/reader031/viewer/2022012313/568167f3550346895ddd67ba/html5/thumbnails/25.jpg)
Mapping Weak Entities to RelationsCreate a relation with the attributes:
CUSTOMER
ORDER
CUST-ORDER
1
m orderid
date
address
customer
nprimary_key(E0) U U discriminator(Ei) U {a1,…,an} i=1
Attributes of the weak entity type
Discriminators of identifying weak entity type
Primary key of identifying weak entity type
How should we choose the primary key?
![Page 26: Introduction to Database Systems Mapping ER Models to Relational Schemas](https://reader031.vdocuments.site/reader031/viewer/2022012313/568167f3550346895ddd67ba/html5/thumbnails/26.jpg)
Association Entity Types
An entity type that represents a relationship type:
labmark exammark
ENROL
studno
m
name
given family
STUDENT
1
m m
COURSE
subject
equipcourseno
1studno
m
name
given family
STUDENT
1
STUD_ENROL COURSE_ENROL
![Page 27: Introduction to Database Systems Mapping ER Models to Relational Schemas](https://reader031.vdocuments.site/reader031/viewer/2022012313/568167f3550346895ddd67ba/html5/thumbnails/27.jpg)
Mapping Association Types to Relations
labmark exammark
ENROL
studno
m
name
given family
STUDENT
1
m m
COURSE
subject
equipcourseno
1studno
m
name
given family
STUDENT
1
STUD_ENROL COURSE_ENROL
Then: ENROL(courseno, studno, labmark, exammark)
We have: COURSE(courseno, subject, equip) STUDENT(studno, givenname, familyname)
![Page 28: Introduction to Database Systems Mapping ER Models to Relational Schemas](https://reader031.vdocuments.site/reader031/viewer/2022012313/568167f3550346895ddd67ba/html5/thumbnails/28.jpg)
Translation of the University Diagram
studno name
given family
hons
slot
labmark
exammark
STUDENT
SCHOOL
YEARENROL
YEARREG
REG
TUTOR
YEARTUTOR
STAFFCOURSE
courseno
subjectequip
name
year
faculty
appraiser appraisee
APPRAISAL
TEACHm n
1 m
1
11m
n mm
1
m
1
roomno
STUDENT(studno, givenname,familyname, hons,tutor, slot, year)
ENROL(studno, courseno,labmark,exammark)
COURSE(courseno, subject, equip)
STAFF(lecturer, roomno, appraiser)
TEACH(courseno, lecturer)
YEAR(year, yeartutor)
SCHOOL(hons, faculty)
![Page 29: Introduction to Database Systems Mapping ER Models to Relational Schemas](https://reader031.vdocuments.site/reader031/viewer/2022012313/568167f3550346895ddd67ba/html5/thumbnails/29.jpg)
Exercise: Supervision of PhD StudentsA database needs to be developed that keeps track of PhD students:
For each student store the name and matriculation number. Matriculation numbers are unique.
Each student has exactly one address. An address consists of street, town and post code, and is uniquely identified by this information.
For each lecturer store the name, staff ID and office number. Staff ID's are unique.
Each student has exactly one supervisor. A staff member may supervise a number of students.
The date when supervision began also needs to be stored.
For each research topic store the title and a short description. Titles are unique.
Each student can be supervised in only one research topic, though topics that are currently not assigned also need to be stored in the database.
![Page 30: Introduction to Database Systems Mapping ER Models to Relational Schemas](https://reader031.vdocuments.site/reader031/viewer/2022012313/568167f3550346895ddd67ba/html5/thumbnails/30.jpg)
Exercise: Supervision of PhD StudentsTasks:
a) Design an entity relationship diagram that covers the requirements above. Do not forget to include cardinality and participation constraints.
b) Based on the ER-diagram from above, develop a relational database schema. List tables with their attributes. Identify keys and foreign keys.
![Page 31: Introduction to Database Systems Mapping ER Models to Relational Schemas](https://reader031.vdocuments.site/reader031/viewer/2022012313/568167f3550346895ddd67ba/html5/thumbnails/31.jpg)
ReferencesIn preparing these slides I have used several sources. The main ones are the following:
Books: A First Course in Database Systems, by J. Ullman and J.
Widom Fundamentals of Database Systems, by R. Elmasri and S.
Navathe
Slides from Database courses held by the following people: Warner Nutt (Free University of Bozen-Bolzano) Enrico Franconi (Free University of Bozen-Bolzano) Carol Goble and Ian Horrocks (University of Manchester)