ER → Relational Mapping
Mark Fontenot, PhD
Northeastern University
emp_dep
(depends on)
locations
Department
Employee
Project
Dependent
name
fName
midInitial
lName
bDate
IDNum
address
salary
locations
deptID
name
location
projID
name
name
bDate
relationship
dept_emp
(houses)
dept_mgr
(manages)
emp_proj
(works_on)
dept_proj
(controls)
hours
startDate
emp_dep
(depends on)
emp_mgr
(supervises)
supervisor
supervisee
1…1
0…N
1…1
0…N
1…1
1…N
1…1
0…1
0…M
0…N
1…1
0…N
Dependent
How We Will Describe Tables
3
SSN
FName
LName
BDate
Employee
SSN
SeqNum
Salary NOT NULL
From
To
SalaryInfo
Table Name
Underline PK Attributes
Arrows for relationships point from child table to parent table.
If the names of the FK/PK columns are different between the two tables, label the arrow with which columns are involved (as in a DataGrip diagram)
Indicate any additional constraints you know from the design process
Step 1: Handling Strong Entity Types
4
emp_dep
(depends on)
locations
Department
Employee
Project
Dependent
name
fName
midInitial
lName
bDate
IDNum
address
salary
locations
deptID
name
location
projID
name
name
bDate
relationship
dept_emp
(houses)
dept_mgr
(manages)
emp_proj
(works_on)
dept_proj
(controls)
hours
startDate
emp_dep
(depends on)
emp_mgr
(supervises)
supervisor
supervisee
1…1
0…N
1…1
0…N
1…1
1…N
1…1
0…1
0…M
0…N
1…1
0…N
Dependent
Step 1: Result for Example ERD
6
IDNum
bDate
fName
midInitial
lName
address
salary
Employee
deptID
name
Department
projID
name
location
Project
Step 2: Handling Weak Entity Types
7
emp_dep
(depends on)
locations
Department
Employee
Project
Dependent
name
fName
midInitial
lName
bDate
IDNum
address
salary
locations
deptID
name
location
projID
name
name
bDate
relationship
dept_emp
(houses)
dept_mgr
(manages)
emp_proj
(works_on)
dept_proj
(controls)
hours
startDate
emp_dep
(depends on)
emp_mgr
(supervises)
supervisor
supervisee
1…1
0…N
1…1
0…N
1…1
1…N
1…1
0…1
0…M
0…N
1…1
0…N
Dependent
Step 2: Result for Example ERD
9
IDNum
bDate
fName
midInitial
lName
address
salary
Employee
deptID
name
Department
projID
name
location
Project
IDNum
name
relationship
bDate
Dependent
Step 3 - Handling Binary 1:1 Relationships
General Idea: Foreign Key used to map the relationship
10
emp_dep
(depends on)
locations
Department
Employee
Project
Dependent
name
fName
midInitial
lName
bDate
IDNum
address
salary
locations
deptID
name
location
projID
name
name
bDate
relationship
dept_emp
(houses)
dept_mgr
(manages)
emp_proj
(works_on)
dept_proj
(controls)
hours
startDate
emp_dep
(depends on)
emp_mgr
(supervises)
supervisor
supervisee
1…1
0…N
1…1
0…N
1…1
1…N
1…1
0…1
0…M
0…N
1…1
0…N
Dependent
Step 3: Result for Example ERD
12
IDNum
bDate
fName
midInitial
lName
address
salary
Employee
deptID
name
mgrIDNum
mgrStartDate
Department
projID
name
location
Project
Dependent
IDNum:mgrIDNum
IDNum
name
relationship
bDate
Step 4: Handling Binary 1:N Relationships
13
emp_dep
(depends on)
locations
Department
Employee
Project
Dependent
name
fName
midInitial
lName
bDate
IDNum
address
salary
locations
deptID
name
location
projID
name
name
bDate
relationship
dept_emp
(houses)
dept_mgr
(manages)
emp_proj
(works_on)
dept_proj
(controls)
hours
startDate
emp_dep
(depends on)
emp_mgr
(supervises)
supervisor
supervisee
1…1
0…N
1…1
0…N
1…1
1…N
1…1
0…1
0…M
0…N
1…1
0…N
Dependent
Step 4: Result for Example ERD
15
IDNum
bDate
fName
midInitial
lName
address
salary
supIDNum
deptID
Employee
deptID
name
mgrIDNum
mgrStartDate
Department
projID
name
location
deptID
Project
Dependent
IDNum:mgrIDNum
empIDNum
name
relationship
bDate
IDNum:supIDNum
IDNum:empIDNum
Step 5: Handling Binary M:N Relationships
16
emp_dep
(depends on)
locations
Department
Employee
Project
Dependent
name
fName
midInitial
lName
bDate
IDNum
address
salary
locations
deptID
name
location
projID
name
name
bDate
relationship
dept_emp
(houses)
dept_mgr
(manages)
emp_proj
(works_on)
dept_proj
(controls)
hours
startDate
emp_dep
(depends on)
emp_mgr
(supervises)
supervisor
supervisee
1…1
0…N
1…1
0…N
1…1
1…N
1…1
0…1
0…M
0…N
1…1
0…N
Dependent
Step 5: Result for Example ERD
18
IDNum
bDate
fName
midInitial
lName
address
salary
supIDNum
deptID
Employee
deptID
name
mgrIDNum
mgrStartDate
Department
projID
name
location
deptID
Project
Dependent
IDNum:mgrIDNum
empIDNum
name
relationship
bDate
IDNum:supIDNum
IDNum:empIDNum
IDNum
projID
hoursAssigned
Emp_Proj
Step 6 - Handling MultiValued Attributes
19
emp_dep
(depends on)
locations
Department
Employee
Project
Dependent
name
fName
midInitial
lName
bDate
IDNum
address
salary
locations
deptID
name
location
projID
name
name
bDate
relationship
dept_emp
(houses)
dept_mgr
(manages)
emp_proj
(works_on)
dept_proj
(controls)
hours
startDate
emp_dep
(depends on)
emp_mgr
(supervises)
supervisor
supervisee
1…1
0…N
1…1
0…N
1…1
1…N
1…1
0…1
0…M
0…N
1…1
0…N
Dependent
Step 5: Result for Example ERD
21
IDNum
bDate
fName
midInitial
lName
address
salary
supIDNum
deptID
Employee
deptID
name
mgrIDNum
mgrStartDate
Department
projID
name
location
deptID
Project
Dependent
IDNum:mgrIDNum
empIDNum
name
relationship
bDate
IDNum:supIDNum
IDNum:empIDNum
IDNum
projID
hoursAssigned
Emp_Proj
deptID
location
Dept_Locs
Review
22