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
dep_id
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
The Process - Overview
4
Step 1: Handling Strong Entity Types
5
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
dep_id
Step 1: Result for Example ERD
7
IDNum
bDate
fName
midInitial
lName
address
salary
Employee
deptID
name
Department
projID
name
location
Project
Step 2: Handling Weak Entity Types
8
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
dep_id
Step 2: Result for Example ERD
10
IDNum
bDate
fName
midInitial
lName
address
salary
Employee
deptID
name
Department
projID
name
location
Project
IDNum
dep_id
name
relationship
bDate
Dependent
Step 3 - Handling Binary 1:1 Relationships
General Idea: Foreign Key used to map the relationship
11
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
dep_id
Step 3: Result for Example ERD
13
IDNum
bDate
fName
midInitial
lName
address
salary
Employee
deptID
name
mgrIDNum
mgrStartDate
Department
projID
name
location
Project
Dependent
IDNum:mgrIDNum
IDNum
dep_id
name
relationship
bDate
Step 4: Handling Binary 1:N Relationships
14
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
dep_id
Step 4: Result for Example ERD
16
IDNum
bDate
fName
midInitial
lName
address
salary
supIDNum
deptID
Employee
deptID
name
mgrIDNum
mgrStartDate
Department
projID
name
location
deptID
Project
Dependent
IDNum:mgrIDNum
empIDNum
dep_id
name
relationship
bDate
IDNum:supIDNum
IDNum:empIDNum
Step 5: Handling Binary M:N Relationships
17
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
dep_id
Step 5: Result for Example ERD
19
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
20
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
dep_id
Step 5: Result for Example ERD
22
IDNum
bDate
fName
midInitial
lName
address
salary
supIDNum
deptID
Employee
deptID
name
mgrIDNum
mgrStartDate
Department
projID
name
location
deptID
Project
Dependent
IDNum:mgrIDNum
empIDNum
dep_id
name
relationship
bDate
IDNum:supIDNum
IDNum:empIDNum
IDNum
projID
hoursAssigned
Emp_Proj
deptID
location
Dept_Locs
Review
23