Title: Mapping E/R Diagrams to Relational Database Schemas
1Mapping E/R Diagrams toRelational Database
Schemas
2E/R ? Relation Model (Example)
since
since
name
name
dname
dname
ssn
lot
budget
did
budget
did
(0,)
(1,1)
Departments
Employees
Manages
(0,)
hours_worked
(0,)
Works_In
?
?
contractid
hourly_wages
since
Contract_Emps
Hourly_Emps
3Logical DB Design ER to Relational
- 1. Entity Types to Tables.
CREATE TABLE Employees
(ssn CHAR(9), name
CHAR(20), lot INTEGER,
PRIMARY KEY (ssn))
42. Relationship Types to Tables
CREATE TABLE Works_In( ssn CHAR(9), did
INTEGER, since DATE, PRIMARY KEY (ssn,
did), FOREIGN KEY (ssn) REFERENCES
Employees, FOREIGN KEY (did)
REFERENCES Departments)
- In translating a relationship set to a relation,
attributes of the relation must include - Keys for each participating entity set (as
foreign keys). - This set of attributes forms a superkey for the
relation. - All descriptive attributes.
5Translating ER Diagrams with Key Constraints
CREATE TABLE Manages( ssn CHAR(9), did
INTEGER, since DATE, PRIMARY KEY (did),
FOREIGN KEY (ssn) REFERENCES Employees,
FOREIGN KEY (did) REFERENCES Departments)
- Map relationship to a table
- Note that did is the key now!
- Separate tables for Employees and Departments.
- Since each department has a unique manager, we
could instead combine Manages and Departments.
CREATE TABLE Dept_Mgr( did INTEGER, dname
CHAR(20), budget REAL, manager CHAR(9),
since DATE, PRIMARY KEY (did), FOREIGN
KEY (manager) REFERENCES Employees)
6Review Weak Entities
- A weak entity can be identified uniquely only by
considering the primary key of another (owner)
entity. - Owner entity set and weak entity set must
participate in a one-to-many relationship set (1
owner, many weak entities). - Weak entity set must have total participation in
this identifying relationship set.
name
cost
dname
age
ssn
lot
(1,1)
(0,)
Policy
Dependents
Dependents
Policy
Employees
Parent
7Translating Weak Entity Types
- Weak entity set and identifying relationship set
are translated into a single table --- it has a
(1,1) cardinality constraint.
CREATE TABLE Dep_Policy ( dname CHAR(20),
age INTEGER, cost REAL, parent CHAR(9)
NOT NULL, PRIMARY KEY (parent, dname),
FOREIGN KEY (parent) REFERENCES Employees,
ON DELETE CASCADE)
8Review ISA Hierarchies
name
name
ssn
lot
Employees
hours_worked
?
?
contractid
hourly_wages
- As in C, or other PLs, attributes are
inherited. - If we declare A ISA B, every A entity is also
considered to be a B entity.
Contract_Emps
Hourly_Emps
- Overlap constraints Can Joe be an Hourly_Emps
as well as a Contract_Emps entity?
(Allowed/disallowed) - Covering constraints Does every Employees
entity also have to be an Hourly_Emps or a
Contract_Emps entity? (Yes/no)
93. Translating ISA Hierarchies to Tables
- General approach
- 3 relations Employees, Hourly_Emps and
Contract_Emps. - Hourly_Emps Every employee is recorded in
Employees. For hourly emps, extra info recorded
in Hourly_Emps (hourly_wages, hours_worked, ssn)
must delete Hourly_Emps tuple if referenced
Employees tuple is deleted). - Queries involving all employees easy, those
involving just Hourly_Emps require a join to get
some attributes. - Alternative Just Hourly_Emps and Contract_Emps.
- Hourly_Emps ssn, name, lot, hourly_wages,
hours_worked. - Each employee must be in one of these two
subclasses.
10Dr. Eicks Default MappingE/R ? Relational Data
Model
- For each entity type create a relation with the
attributes associated with the entity type.
Choose a primary key for the defined relation if
the entity type is weak, delay choosing primary
keys until all identifying relationships are
mapped. - For each relationship type create a relation that
contains the roles as well as the attributes of
the relationship type. Define referential
integrity constraints with respect to the mapped
roles. Exception If there is a (1,1) cardinality
constraint do not generate a separate relation,
but rather associate the relationship information
with the relation of this participating entity
type. - For each sub-type create a relation that contains
the attributes of the entity type as well as the
primary key of the most general super class of
this entity type (which also will be the primary
key of the generated relation). Define
referential integrity constraints with respect to
the direct super class of the mapped entity type.
11name
ssn
(0,)
Male
?
occurred
husband
Person
?
wife
?
Female
(0,)
(1,1)
Wedding
Is-insured
(0,)
(0,)
Company
location
name
Con
amount
from
to
E/R Diagram to be mapped
12Mapping of the Multi-Wedding E/R Diagram to a
Relational Schema
Company(name,location)
Person(ssn,name)
Male_Person(ssn)
Female_Person(ssn)
Wedding(husband,wife,from,to)
Is-Insured(hssn,wssn,from,company, amount, Con)
Correct Syntax FOREIGN KEY (hssn,wssn,from)
REFERENCES Wedding(husband,wife,from)
13NFL E/R Design ProblemUngraded Homework Spring
2005
- Design an Entity-Relationship Diagram that models
the following objects and relationships in the
world of football (NFL) teams, players, games,
managers and contracts. Each (NFL-) team has a
unique team name, and a city it plays in. Each
person being part of the NFL-world has a unique
ssn and a name. Additionally, for players their
weight, height, position and birth dates are of
importance. Players have a contract with at most
one team and receive a salary for their services,
and teams have at least 24 and at most 99 players
under contract. Each team has one to three
managers managers can work for at most 4 teams
and receive a salary for each of their
employments. Players cannot be managers. A game
involves a home-team and visiting-team
additionally, the day of the game, and the score
of the game are of importance teams play each
other several times in a season (not on the same
day!). Moreover, for each game played we like to
know which players participated in the game and
how many minutes they played. - Â
- Indicate the cardinalities for each relationship
type assign roles (role names) to each
relationship if there are ambiguities! Use
sub-types, if helpful to express constraints!
14empl.
ssn
Sal
name
(0,4)
name
Manager
isa
(1,3)
Person
Team
isa
city
contr
(24,99)
(0,1)
Player
birthd
Home
Visit
NFL E/R Problem
(0,)
(0,)
weight
pos
height
Sal
(0,)
play
played-in.
score
min
(1,1)
(22,)
- Scoring
- Play relationship a Set 3
- Person/Player/Manager 3
- Weak Game Entity 3
- Played-in 2
- Can Only Play once on a day 1
- Contract 3
- Salary, score, min attribute 3
Game
Date
15Using Dr. Eicks E/R?Rel.-Default Mapping
Employs(team, manager, salary)
Manger(ssn)
Team(name, city)
Player(ssn, birthd, pos,)
Person(ssn, name)
Game(home, visit, day, score)
Played_in(home,visit, day, ssn, min)
16empl.
name
ssn
Sal
(0,4)
name
Manager
isa
(1,3)
Person
Team
isa
city
contr
(24,99)
(0,1)
Player
birthd
Home
Visit
(0,)
(0,)
weight
pos
height
Sal
(0,)
play
played-in.
Day
(0,)
score
min
Date
(1,1)
(22,)
- Scoring
- Play relationship a Set 3
- Person/Player/Manager 3
- Weak Game Entity 3
- Played-in 2
- Can Only Play once on a day 1
- Contract 3
- Salary, score, min attribute 3
Game
Another different Solution!