Chapter 9 ER- and EER-to-Relational Mapping. Relational Database Design Using ER-to-Relational...

35
Chapter 9 ER- and EER-to-Relational Mapping

Transcript of Chapter 9 ER- and EER-to-Relational Mapping. Relational Database Design Using ER-to-Relational...

Page 1: Chapter 9 ER- and EER-to-Relational Mapping. Relational Database Design Using ER-to-Relational Mapping.

Chapter 9

ER- and EER-to-Relational Mapping

Page 2: Chapter 9 ER- and EER-to-Relational Mapping. Relational Database Design Using ER-to-Relational Mapping.

Relational Database Design Using ER-to-Relational Mapping

Page 3: Chapter 9 ER- and EER-to-Relational Mapping. Relational Database Design Using ER-to-Relational Mapping.
Page 4: Chapter 9 ER- and EER-to-Relational Mapping. Relational Database Design Using ER-to-Relational Mapping.

ER-to-Relational Mapping Algorithm (1/7)

• STEP 1– For each regular (strong) entity type E in the ER schema, create a

relation R that includes all the simple attributes of E.

– Include only the simple component attributes of a composite attribute.

– Choose one of the key attributes of E as 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.

Page 5: Chapter 9 ER- and EER-to-Relational Mapping. Relational Database Design Using ER-to-Relational Mapping.

ER-to-Relational Mapping Algorithm (2/7)

• STEP 2– 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); this takes care of the identifying relationship type of W.

– 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.

Page 6: Chapter 9 ER- and EER-to-Relational Mapping. Relational Database Design Using ER-to-Relational Mapping.

ER-to-Relational Mapping Algorithm (3/7)

• STEP 3– 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.

– Choose one of the relations—S, say—and include as 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.

– Include all the simple attributes (or simple components of composite attributes) of the 1:1 relationship type R as attributes of S.

Page 7: Chapter 9 ER- and EER-to-Relational Mapping. Relational Database Design Using ER-to-Relational Mapping.

ER-to-Relational Mapping Algorithm (4/7)

• STEP 4– For each regular binary 1:N relationship type R, identify the

relation S that represents 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; this is because each entity instance on the N-side is related to at most one entity instance on the 1-side of the relationship type.

– Include any simple attributes (or simple components of composite attributes) of the 1:N relationship type as attributes of S.

Page 8: Chapter 9 ER- and EER-to-Relational Mapping. Relational Database Design Using ER-to-Relational Mapping.

ER-to-Relational Mapping Algorithm (5/7)

• STEP 5– For each 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.

Page 9: Chapter 9 ER- and EER-to-Relational Mapping. Relational Database Design Using ER-to-Relational Mapping.

ER-to-Relational Mapping Algorithm (6/7)

• STEP 6– 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 or 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.

Page 10: Chapter 9 ER- and EER-to-Relational Mapping. Relational Database Design Using ER-to-Relational Mapping.

ER-to-Relational Mapping Algorithm (7/7)

• STEP 7– For each n-ary relationship type R, where n > 2, create a new relati

on S to represent R. – Include as foreign key attributes in S the primary keys of the relatio

ns 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. – The primary key of S is usually a combination of all the foreign ke

ys that reference the relations representing the participating entity types.

– However, if the cardinality constraints on any of the entity types E participating in R is 1, then the primary key of S should not include the foreign key attribute that references the relation E’ corresponding to E.

Page 11: Chapter 9 ER- and EER-to-Relational Mapping. Relational Database Design Using ER-to-Relational Mapping.

Mapping EER Model Concepts to Relations

Page 12: Chapter 9 ER- and EER-to-Relational Mapping. Relational Database Design Using ER-to-Relational Mapping.

Superclass/Subclass Relationships and Specialization (or Generalization) (1/6)

• STEP 8: – Convert each specialization with m subclasses {S1, S2, . . ., Sm} an

d (generalized) superclass C, where the attributes of C are {k, a1, . .

., an} and k is the (primary) key, into relation schemas using one o

f the four following options:

Page 13: Chapter 9 ER- and EER-to-Relational Mapping. Relational Database Design Using ER-to-Relational Mapping.

Superclass/Subclass Relationships and Specialization (or Generalization) (2/6)

• Option 8A– Create a relation L for C with attributes Attrs(L) = {k, a1, . . ., an} a

nd PK(L) = k.

– Create a relation Li for each subclass Si, 1 i m, with the attribu

tes Attrs(Li) = {k} {attributes of Si} and PK(Li) = k.

– An EQUIJOIN operation on the primary key between any Li and L

produces all the specific and inherited attributes of the entities in Si

.

– Option 8A works for any constraints on the specialization: disjoint or overlapping, total or partial.

Page 14: Chapter 9 ER- and EER-to-Relational Mapping. Relational Database Design Using ER-to-Relational Mapping.
Page 15: Chapter 9 ER- and EER-to-Relational Mapping. Relational Database Design Using ER-to-Relational Mapping.
Page 16: Chapter 9 ER- and EER-to-Relational Mapping. Relational Database Design Using ER-to-Relational Mapping.

Superclass/Subclass Relationships and Specialization (or Generalization) (3/6)

• Option 8B– Create a relation Li for each subclass Si, 1 i m, with the attribu

tes Attrs(Li) = {attributes of Si} {k, a1, . . ., an} and PK(Li) = k.

– This option works well only when both the disjoint and total constraints hold.

– With option 8B, no relation holds all the entities in the superclass C; consequently, we must apply an OUTER UNION (or FULL OUTER JOIN) operation to the Li relations to retrieve all the entities

in C.

Page 17: Chapter 9 ER- and EER-to-Relational Mapping. Relational Database Design Using ER-to-Relational Mapping.
Page 18: Chapter 9 ER- and EER-to-Relational Mapping. Relational Database Design Using ER-to-Relational Mapping.
Page 19: Chapter 9 ER- and EER-to-Relational Mapping. Relational Database Design Using ER-to-Relational Mapping.

Superclass/Subclass Relationships and Specialization (or Generalization) (4/6)

• Option 8C– Create a single relation L with attributes Attrs(L) = {k, a1, . . ., an}

{attributes of S1} . . . {attributes of Sm} {t} and PK(L) =

k.

– This option is for a specialization whose subclasses are disjoint, and t is a type (or discriminating) attribute that indicates the subclass to which each tuple belongs, if any.

– This option has the potential for generating a large number of null values.

Page 20: Chapter 9 ER- and EER-to-Relational Mapping. Relational Database Design Using ER-to-Relational Mapping.
Page 21: Chapter 9 ER- and EER-to-Relational Mapping. Relational Database Design Using ER-to-Relational Mapping.
Page 22: Chapter 9 ER- and EER-to-Relational Mapping. Relational Database Design Using ER-to-Relational Mapping.

Superclass/Subclass Relationships and Specialization (or Generalization) (5/6)

• Option 8D– Create a single relation schema L with attributes Attrs(L) = {k, a1, .

. ., an } {attributes of S1} . . . {attributes of Sm} {t1, t2, . .

., tm} and PK(L) = k.

– This option is for a specialization whose subclasses are overlapping (but will also work for a disjoint specialization), and each ti, 1

i m, is a Boolean attribute indicating whether a tuple belongs to subclass Si.

Page 23: Chapter 9 ER- and EER-to-Relational Mapping. Relational Database Design Using ER-to-Relational Mapping.
Page 24: Chapter 9 ER- and EER-to-Relational Mapping. Relational Database Design Using ER-to-Relational Mapping.
Page 25: Chapter 9 ER- and EER-to-Relational Mapping. Relational Database Design Using ER-to-Relational Mapping.

Superclass/Subclass Relationships and Specialization (or Generalization) (6/6)

• When we have a multilevel specialization (or generalization) hierarchy or lattice, we do not have to follow the same mapping option for all the specializations. Instead, we can use one mapping option for part of the hierarchy or lattice and other options for other parts.

Page 26: Chapter 9 ER- and EER-to-Relational Mapping. Relational Database Design Using ER-to-Relational Mapping.
Page 27: Chapter 9 ER- and EER-to-Relational Mapping. Relational Database Design Using ER-to-Relational Mapping.
Page 28: Chapter 9 ER- and EER-to-Relational Mapping. Relational Database Design Using ER-to-Relational Mapping.

Mapping of Shared Subclasses

• A shared subclass is a subclass of several superclasses.

• These classes must all have the same key attribute; otherwise, the shared subclass would be modeled as a category.

• We can apply any of the options discussed in step 8 to a shared subclass, although usually option 8A is used.

Page 29: Chapter 9 ER- and EER-to-Relational Mapping. Relational Database Design Using ER-to-Relational Mapping.
Page 30: Chapter 9 ER- and EER-to-Relational Mapping. Relational Database Design Using ER-to-Relational Mapping.
Page 31: Chapter 9 ER- and EER-to-Relational Mapping. Relational Database Design Using ER-to-Relational Mapping.

Mapping of Categories (1/3)

• A category is a subclass of the union of two or more superclasses that can have different keys because they can be of different entity types.

Page 32: Chapter 9 ER- and EER-to-Relational Mapping. Relational Database Design Using ER-to-Relational Mapping.

Mapping of Categories (2/3)

• For mapping a category whose defining superclasses 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.

Page 33: Chapter 9 ER- and EER-to-Relational Mapping. Relational Database Design Using ER-to-Relational Mapping.
Page 34: Chapter 9 ER- and EER-to-Relational Mapping. Relational Database Design Using ER-to-Relational Mapping.
Page 35: Chapter 9 ER- and EER-to-Relational Mapping. Relational Database Design Using ER-to-Relational Mapping.

Mapping of Categories (3/3)

• For a category whose superclasses have the same key, there is no need for a surrogate key.