Cơ sở dữ liệu - Chapter 5: Relational database design by er - And eer - to - relational mapping
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
36 trang |
Chia sẻ: huyhoang44 | Lượt xem: 690 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Cơ sở dữ liệu - Chapter 5: Relational database design by er - And eer - to - relational mapping, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Chapter 5 Relational Database Design
by ER- and EER-to-Relational Mapping
Chapter Outline
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).
Step 1: Mapping of Regular Entity
Types
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.
ER DIAGRAM
FIGURE 7.2
Result of mapping the COMPANY ER schema into a relational
schema.
Step 1: Mapping of Regular Entity
Types
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.
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 & include all
simple attributes (or simple components of composite
attributes) of W as attributes of R.
◦ Also, 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.
Step 2: Mapping of Weak Entity
Types
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
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.
Step 3: Mapping of Binary 1:1 Relation
Types
◦ Foreign Key approach: Choose one of the
relations-say S-and include a foreign key in S the
primary key of T. It is better to choose an entity
type with total participation in R in the role of 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.
ER DIAGRAM
FIGURE 7.2
Result of mapping the COMPANY ER schema into a relational
schema.
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.
Step 4: Mapping of Binary 1:N
Relationship Types
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.
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.
Step 5: Mapping of Binary M:N
Relationship Types
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}.
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 of relationship
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.
Step 6: Mapping of Multivalued
attributes
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}.
Step 7: Mapping of N-ary
Relationship Types
◦ For each n-ary relationship type R, where n>2, create
a new relationship S to represent R.
◦ Include as foreign key attributes in S the primary keys
of the relations that represent the participating entity
types.
◦ Also include any simple attributes of the n-ary
relationship type (or simple components of
composite attributes) as attributes of S.
Step 7: Mapping of N-ary
Relationship Types
Example: The relationship type SUPPY
in the ER on the next slide.
◦ This can be mapped to the relation SUPPLY
shown in the relational schema, whose primary
key is the combination of the three foreign keys
{SNAME, PARTNO, PROJNAME}
Step 7: Mapping of N-ary
Relationship Types
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
n-ary relationship type “Relationship” relation and n 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
Mapping EER Model Constructs to
Relations
◦ Step 8: Options for Mapping Specialization or
Generalization.
◦ Step 9: Mapping of Union Types (Categories).
Step8: Options for Mapping
Specialization or Generalization
Option 8A: Multiple relations-Superclass and
subclasses
Option 8B: Multiple relations-Subclass relations only
Option 8C: Single relation with one type attribute
Option 8D: Single relation with multiple type
attributes
Option 8A: Multiple relations-
Superclass and subclasses
Step8: Options for Mapping
Specialization or Generalization
Option 8A: Multiple relations-Superclass
and subclasses
◦ Create a relation L for C with attributes Attrs(L) =
{k,a1,an} and PK(L) = k. Create a relation Li for each
subclass Si, 1 < i < m, with the attributesAttrs(Li) = {k}
U {attributes of Si} and PK(Li)=k. This option works for
any specialization (total or partial, disjoint of over-
lapping).
Option 8B: Multiple relations-
Subclass relations only
Step8: Options for Mapping
Specialization or Generalization
Option 8B: Multiple relations-Subclass
relations only
◦ Create a relation Li for each subclass Si, 1 < i < m, with
the attributes Attr(Li) = {attributes of Si} U {k,a1,an}
and PK(Li) = k. This option only works for a
specialization whose subclasses are total (every entity in
the superclass must belong to (at least) one of the
subclasses.
Option 8C: Single relation with
one type attribute
Step8: Options for Mapping
Specialization or Generalization
Option 8C: Single relation with one
type attribute
◦ Create a single relation L with attributes
Attrs(L) = {k,a1,an} U {attributes of S1} UU
{attributes of Sm} U {t} and PK(L) = k. The
attribute t is called a type (or discriminating)
attribute that indicates the subclass to which
each tuple belongs
Option 8D: Single relation with
multiple type attributes
Step8: Options for Mapping
Specialization or Generalization
Option 8D: Single relation with
multiple type attributes
◦ Create a single relation schema L with
attributes Attrs(L) = {k,a1,an} U {attributes of
S1} UU {attributes of Sm} U {t1, t2,,tm} and
PK(L) = k. Each ti, 1 < I < m, is a Boolean type
attribute indicating whether a tuple belongs to
the subclass Si.
Step 9: Mapping of Union Types
(Categories)
For mapping a category whose defining
superclass have different keys, it is
customary to specify a new key attribute,
called a surrogate key, when creating a
relation to correspond to the category
Step 9: Mapping of Union Types
(Categories)
Step 9: Mapping of Union Types
(Categories)
◦ In the example below we can create a relation
OWNER to correspond to the OWNER
category and include any attributes of the
category in this relation. The primary key of
the OWNER relation is the surrogate key,
which we called OwnerId.
Step 9: Mapping of Union Types
(Categories)
Các file đính kèm theo tài liệu này:
- chapter_5_mapping_er_to_rm_6536.pdf