You are on page 1of 17

Week

3B:

More on:
Mapping EER-to-Rela1onal Model
Dr. Sarah Al-Shareef
saashareef@uqu.edu.sa

Department of Computer Science
Umm Al-Qura University

Acknowledgment: All course slides are either referenced to Elmasri. & Navathe Book online presenta=ons, Dr. Salahadin
Mohammed Adam & Ms. Mashael Alkadi (with certain amendments) or are personally developed by the instructor.
Discussion and Summary of Mapping
for ER Model Constructs

1437/1438 - First Semester Advanced Database Systems 1


1437/1438 - First Semester Advanced Database Systems 2
Mapping of Specializa1on or Generaliza1on
•  Step 8:
–  There are four op1ons for mapping superclass and its
subclasses into rela1onal model.

Let’s :
C : superclass
AUr(C) = {k, a1, a2, …}
PK(C) = k
S1, S2, …, Si: subclasses of C
AUr(Si) = {aUr of Si}

1437/1438 - First Semester Advanced Database Systems 3


Op1on 8A: Mul1ple rela1ons – sup/subclasses
1.  Create a rela1on L for C; where:
§  AUr(L) = {k, a1, a2, …}
§  PK(L) = k
2.  Create a rela1on Li for each Si:
§  AUr(Li) = {k} U {aUr of Si}
§  PK(Li) = k

Example: Person & its subclasses in UNIVERSITY
•  Person(Ssn, Name, Sex, Address, Birth_Date)
•  Employee (Ssn, Salary)
•  Alumnus(Ssn); Degree(Ssn, Year, Degree, Major)
•  Student(Ssn, Major_Dept)

1437/1438 - First Semester Advanced Database Systems 4


Op1on 8B: Mul1ple rela1ons –subclasses
1.  Create a rela1on Li for each Si:
§  AUr(Li) = {k, a1, a2, …} U {aUr of Si}
§  PK(Li) = k

Example: Person & its subclasses in UNIVERSITY
•  Employee (Ssn, Name, Sex, Address, Birth_Date, Salary)
•  Alumnus(Ssn, Name, Sex, Address, Birth_Date);
Degree(Ssn, Year, Degree, Major)
•  Student(Ssn, Name, Sex, Address, Birth_Date, Major_Dept)

1437/1438 - First Semester Advanced Database Systems 5
Op1on 8C: Single rela1on with one type aUribute

1.  Create a rela1on L; where:


§  AUr(L) = {k, a1, a2, …} U {aUr of S1} U … U {aUr of Si} U {t}
§  PK(L) = k
§  Domain(t) = {S1, S2, …, Si, NULL}


Example: Person & its subclasses in UNIVERSITY
•  Person (Ssn, Name, Sex, Address, Birth_Date, Salary,
Major_Dept, Person_type)
Degree(Ssn, Year, Degree, Major)

1437/1438 - First Semester Advanced Database Systems 6
Op1on 8D: Single rela1on with mul1ple type flags

1.  Create a rela1on L; where:


§  AUr(L) = {k, a1, a2, …} U {aUr of S1} U … U {aUr of Si} U
{t1, t2,…,ti}
§  PK(L) = k
§  Domain(t) = {True, False}


Example: Person & its subclasses in UNIVERSITY
•  Person (Ssn, Name, Sex, Address, Birth_Date, Salary,
Major_Dept, isEmployee, isAlumnus, isStudent)
Degree(Ssn, Year, Degree, Major)

1437/1438 - First Semester Advanced Database Systems 7
Summary
Op?on 8A Op?on 8B Op?on 8C Op?on 8D
# Rela1ons
Disjoint
Overlapping
Total
Par1al

1437/1438 - First Semester Advanced Database Systems 8


Step 8 Op1ons Summary
Op?on 8A Op?on 8B Op?on 8C Op?on 8D
# Rela1ons #subclasses+1 #subclasses 1 1
Disjoint Yes Yes Yes Yes
Overlapping Yes duplica1ons No Yes
Total Yes Yes Yes Yes
Par1al Yes No Can have NULL Yes

•  Specializa1on Hierarchy and lance:


–  You don’t have to follow the same op1ons for all
levels.
•  Shared class:
–  You can use any of the four op1ons discussed.
1437/1438 - First Semester Advanced Database Systems 9
1437/1438 - First Semester Advanced Database Systems 10
Mapping to rela1onal model

1437/1438 - First Semester Advanced Database Systems 11


Mapping of Categories (Union Types)
§  Step 9: Mapping of Union Types (Categories)
§  If superclasses have different keys:
§  Specify a new key aUribute at each superclasses (aka:
Surrogate key)
§  Create a rela1on for the category with the surrogate key and
its specific aUributes.

§  Example: {Person,Bank,Company}/Owner
§  Person(Ssn, Driver_Licens_no, Name, Address, Owner_id)
§  Bank(Bname, Baddress, Owner_id)
§  Company(Cname, Caddress, Owner_id)
§  Owner(Owner_id)

1437/1438 - First Semester Advanced Database Systems 12


Mapping of Categories (Union Types)
§  Step 9: Mapping of Union Types (Categories)
§  If superclasses have same key:
§  Used that key directly
§  Create a rela1on for the category with the key and its
specific aUributes.

§  Example: {Car,Truck}/Registered_Vechicle
§  Car (Vechicle_id, Cstyle, Cmake, Cmodel, Cyear)
§  Truck(Vechicle_id, Tmake, Cmodel, Tonnage, Tyear)
§  Registered_Vehicle(Vechicle_id, License_plate_number)

1437/1438 - First Semester Advanced Database Systems 13


1437/1438 - First Semester Advanced Database Systems 14
1437/1438 - First Semester Advanced Database Systems 15
Part 2

IN-CLASS PARTICIPATION
ACTIVITIES
1437/1438 - First Semester Advanced Database Systems 16

You might also like