1. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
Relational Database Schema
Relational Database Schema:
A set S of relation schemas that belong to the same database.
S is the name of the whole database schema
S = {R1, R2, ..., Rn}
R1, R2, …, Rn are the names of the individual relation schemas
within the database S
Following slide shows a COMPANY database schema with 6
relation schemas
2. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 2
ER-to-Relational Mapping Algorithm
Step 1: Mapping of Regular Entity Types
Step 2: Mapping of Weak Entity Types
Step 3: Mapping of Binary 1:1 Relation Types
Step 4: Mapping of Binary 1:N Relationship Types.
Step 5: Mapping of Binary M:N Relationship Types.
Step 6: Mapping of Multivalued attributes.
Step 7: Mapping of N-ary Relationship Types.
Mapping EER Model Constructs to Relations
Step 8: Options for Mapping Specialization or Generalization.
Step 9: Mapping of Union Types (Categories).
Relational Database Design by ER
3. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
Example Attribute of a Relationship Type:
Hours of WORKS_ON
4. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 4
ER-to-Relational Mapping Algorithm
Step 1: Mapping of Regular Entity Types.
For each regular (strong) entity type E in the ER
schema, create a relation R that includes all the
simple attributes of E.
Choose one of the key attributes of E as the primary
key for R. If the chosen key of E is composite, the set
of simple attributes that form it will together form the
primary key of R.
Example: We create the relations EMPLOYEE, DEPARTMENT,
and PROJECT in the relational schema corresponding to the
regular entities in the ER diagram. SSN, DNUMBER, and
PNUMBER are the primary keys for the relations EMPLOYEE,
DEPARTMENT, and PROJECT as shown.
5. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 5
ER-to-Relational Mapping Algorithm (cont)
Step 2: Mapping of Weak Entity Types
For each weak entity type W in the ER schema with owner
entity type E, create a relation R and include all simple
attributes (or simple components of composite attributes)
of W as attributes of R.
In addition, include as foreign key attributes of R the
primary key attribute(s) of the relation(s) that correspond
to the owner entity type(s).
The primary key of R is the combination of the primary
key(s) of the owner(s) and the partial key of the weak
entity type W, if any.
Example: Create the relation DEPENDENT in this step to correspond to
the weak entity type DEPENDENT. Include the primary key SSN of the
EMPLOYEE relation as a foreign key attribute of DEPENDENT
(renamed to ESSN).
The primary key of the DEPENDENT relation is the combination {ESSN,
DEPENDENT_NAME} because DEPENDENT_NAME is the partial key
of DEPENDENT.
6. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 6
ER-to-Relational Mapping Algorithm (cont)
Step 3: Mapping of Binary 1:1 Relation Types
For each binary 1:1 relationship type R in the ER schema, identify the
relations S and T that correspond to the entity types participating in R.
There are three possible approaches:
(1) Foreign Key approach: Choose the relations with total participation in R –
say S-- and include T’s primary key in S.
Example: 1:1 relation MANAGES is mapped by choosing the participating
entity type DEPARTMENT to serve in the role of S, because its participation in
the MANAGES relationship type is total.
(2) Merged relation option: An alternate mapping of a 1:1 relationship type is
possible by merging the two entity types and the relationship into a single
relation. This may be appropriate when both participations are total.
(3) Cross-reference or relationship relation option: The third alternative is to set
up a third relation W(T.primarykey, S.primaryKey)
for the purpose of cross-referencing the primary keys of the two relations S and
T representing the entity types. (https://www.youtube.com/watch?v
=IgyNp7AGmkU )
7. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 7
ER-to-Relational Mapping Algorithm (cont)
Step 4: Mapping of Binary 1:N Relationship Types.
For each regular binary 1:N relationship type R,
identify the relation S that represent the participating
entity type at the N-side of the relationship type.
Include as foreign key in S the primary key of the
relation T that represents the other entity type
participating in R.
Include any simple attributes of the 1:N relation type
as attributes of S.
Example: 1:N relationship types WORKS_FOR, CONTROLS,
and SUPERVISION in the figure. For WORKS_FOR we include
the primary key DNUMBER of the DEPARTMENT relation as
foreign key in the EMPLOYEE relation and call it DNO.
8. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 8
ER-to-Relational Mapping Algorithm (cont)
Step 5: Mapping of Binary M:N Relationship Types.
For each regular binary M:N relationship type R, create a new
relation S to represent R.
Include as foreign key attributes in S the primary keys of the
relations that represent the participating entity types; their
combination will form the primary key of S.
Also include any simple attributes of the M:N relationship type (or
simple components of composite attributes) as attributes of S
Example: The M:N relationship type WORKS_ON from the ER diagram is
mapped by creating a relation WORKS_ON in the relational database
schema. The primary keys of the PROJECT and EMPLOYEE relations are
included as foreign keys in WORKS_ON and renamed PNO and ESSN,
respectively.
Attribute HOURS in WORKS_ON represents the HOURS attribute of the
relation type. The primary key of the WORKS_ON relation is the
combination of the foreign key attributes {ESSN, PNO}.
9. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 9
ER-to-Relational Mapping Algorithm (cont)
Step 6: Mapping of Multivalued attributes.
For each multivalued attribute A, create a new relation
R. This relation R will include an attribute
corresponding to A, plus the primary key attribute K-as
a foreign key in R-of the relation that represents the
entity type that has A as an attribute.
The primary key of R is the combination of A and K. If
the multivalued attribute is composite, we include its
simple components.
Example: The relation DEPT_LOCATIONS is created. The attribute
DLOCATION represents the multivalued attribute LOCATIONS of
DEPARTMENT, while DNUMBER-as foreign key-represents the
primary key of the DEPARTMENT relation. The primary key of R is the
combination of {DNUMBER, DLOCATION}.
10. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1
10
FIGURE 7.1
The ER conceptual
schema diagram for
the COMPANY
database.
11. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1
11
FIGURE 7.2
Result of mapping
the COMPANY
ER schema into a
relational schema.
12. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1
12
Summary of Mapping constructs and
constraints
Table 7.1 Correspondence between ER and Relational Models
ER Model Relational Model
Entity type “Entity” relation
1:1 or 1:N relationship type Foreign key (or “relationship” relation)
M:N relationship type “Relationship” relation and two foreign keys
Simple attribute Attribute
Composite attribute Set of simple component attributes
Multivalued attribute Relation and foreign key
Value set Domain
Key attribute Primary (or secondary) key