1. Eng.Samir Sabry
IT Instructor
Before of all we must learn and know Entit-Relaionship notation:-
We start by this example: Company database
The Company assigns an employee to one department but may work on several projects,
which are not necessarily controlled by the same department. It keeps track of the number of
hours per week that an employee works on each project. It records the direct supervisor of
each employee. It stores the dependants of each employee for insurance purposes. It keeps
each dependant’s: name, gender, birth date, and relationship to employee
3. Mapping Rules
Step 1: For each regular entity types
Create a new relation that includes Simple attributes
For a composite attribute include only the simple component attributes
Leave out multivalued attributes (to step 6)
Pick a PK
For example, we create the relations EMPLOYEE, DEPARTMENT, and
PROJECT for the regular entity types
Then, we choose SSN, DNUMBER and PNUMBER as primary keys for the
relations EMPLOYEE, DEPARTMENT, and PROJECT, respectively.
Note: Foreign keys are not included yet.
4. Step 2: weak entity types
Note: Weak entity type has no key - Related to an identifying or owner
entity type. Has total participation constraint with identifying entity.
Create a new relation with simple attributes
Include an FK to the owner entity's relation
For example, we create the relation DEPENDENT in this step.
Include the primary key SSN of the EMPLOYEE as a foreign key attribute of
DEPENDENT.
The primary key of DEPENDENT is the combination {ESSN, DEPENDENT_NAME}
because DEPENDENT_NAME is the partial key of DEPENDENT.
5. Step 3: 1:1 relationship types
Add to one of the participating relations an FK to the other relation:
It is better to add to a relation that has total participation in the relationship
Include any relationship attributes
Note: When both participations are total, we may merge the two entity types
and the relationship into a single relation.
Let’s consider the relationship type MANAGES which is total.
Include the primary key of EMPLOYEE as foreign key in the DEPARTMENT and
rename it as MGRSSN.
Include the simple attribute StartDate of the MANAGES in the DEPARTMENT
and rename it MGRSTARTDATE.
6. Step 4: 1: N relationship types
Add to the relation on the N-side an FK to the other relation.
Include any relation attributes
Let’s consider the 1:N relationships type WORKS_FOR, CONTROLS and
SUPERVISION.
For SUPERVISION, include the primary key SSN of EMPLOYEE as foreign key
in itself and call it SUPERSSN.
For WORKS_FOR, include the primary key DNUMBER of DEPARTMENT as
foreign key in EMPLOYEE and call it DNO.
For CONTROLS, include the primary key DNUMBER of DEPARTMENT as
foreign key in PROJECT and call it DNUM
7. Step 5: M: N relationship types
Create a New relation containing as FK of the primary keys of
both entity types participating relations
Include any relation attributes
Let consider the M:N relationship type WORKS_ON.
Include the primary keys of the PROJECT and EMPLOYEE relations as
foreign keys in WORKS_ON and rename them PNO and ESSN, respectively.
Include an attribute HOURS in WORKS_ON.
8. Step 6: multi-valued attribute
Create new relation for each multi-valued attribute containing FK of the
PK from the Entity
Let’s consider the attribute DLOCATION.
Create a relation DEPT_LOCATIONS.
The primary key of DEPT_LOCATIONS is the combination of {DNUMBER,
DLOCATION}.
9. Step 7: ternary relationship types
Create new relation containing a FK referencing each of the 3
entities involved
Include any relation attributes
Final result:
Notes: How many relations?
1. Entity (both regular and weak)
2. M:N relationship
3. Multi-valued attribute
4. Ternary relationship