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.
■ 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.
ER-to-Relational Mapping Algorithm (contd.) ■ 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}.
■ 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. ■ 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}.
■ 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. ■ 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}
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