RELATIONAL
Textbook:
8.1-8.2
or 9.1-9.2
separate schema
Include primary key
for each
Include foreign key
constraints
Staff(ssn, name)
Technician(ssn, skill)
Salesman(ssn, product)
Staff
Name
SSN
Technician
Salesman
Skill
Product
Staff(ssn, name)
Technician(ssn, skill)
Salesman(ssn, product)
CarUsage(rego, ssn)
Staff
Name
Technician
SSN
Salesman
1
Skill
Product
Uses
N
Rego
Car
be an actual ssn-value in Salesman. It is not enough for this ssnvalue to be an ssn-value in Staff, because Cars are only related to
Salesman !
Staff
Name
SSN
Full-time
Part-time
Salary
Schedule
disjointness
constraint
Staff
Name
Salary
SSN
Part-time
Schedule
Staff
Name
Technician
Skill
Staff(ssn, name, skill, product, jobType)
jobType is one of {Technician, Salesman}
SSN
Salesman
Product
Staff
Name
Technician
Skill
Staff(ssn, name, skill, product, jobType)
SSN
Salesman
Product
and Salesman
Staff
Name
SSN
Manager
Engineer
Level
Grade
Staff
Name
Manager
SSN
Engineer
Level
Grade
Staff(ssn, name, level, grade, isManager, isEngineer)
Works also for NULL values
usage patterns
We propose that the first mapping choice is the cleanest