[Tut/Lab Sessions]   [Tut/Lab Sessions Schedule] [Course Information]   [COMP2400/6240 Home]
Coloured Line

Tutorial 3

Solution Notes

Coloured Line

ER to Relational Conversion

Apply the COMP2400/6240 Algorithm for Converting an ER Diagram into a Relational Schema to each of the following ER diagrams. Show all the steps in the algorithm.


Coloured Line

First ER Diagram

Task Machine


STEP 1

TASK (Proj-id, Task-no, [pk] Supervisor, Phone)

MACHINE (Mach-no [pk] Type, Location)


STEP 2

USES (Proj-id [fk1], Task-no [fk1], Mach-no [fk2], [pk] Hours)


STEP 3

Not Applicable


STEP 4

Change USES to TASK-MACHINE
TASK-MACHINE (Proj-id [fk1], Task-no [fk1], Mach-no [fk2], [pk] Hours)

Change Mach-no to Machine-no
Change Type to Machine-type
MACHINE (Machine-no [pk] Machine-Type, Location)
TASK-MACHINE (Proj-id [fk1], Task-no [fk1], Machine-no [fk2], [pk] Hours)

STEP 5

Final Relational Schema

TASK (Proj-id, Task-no, [pk] Supervisor, Phone)

TASK-MACHINE (Proj-id [fk1], Task-no [fk1], Machine-no [fk2], [pk] Hours)

MACHINE (Machine-no [pk] Machine-Type, Location)

A Common Problem

Running STEPs 4 and 5 together:

STEP 1

TASK (Proj-id, Task-no, [pk] Supervisor, Phone)

MACHINE (Mach-no [pk] Type, Location)


STEP 2

USES (Proj-id [fk1], Task-no [fk1], Mach-no [fk2], [pk] Hours)


STEP 3

Not Applicable


Final Relational Schema

TASK (Proj-id, Task-no, [pk] Supervisor, Phone)

TASK-MACHINE (Proj-id [fk1], Task-no [fk1], Mach-no [fk2], [pk] Hours)

MACHINE (Machine-no [pk] Machine-Type, Location)

Coloured Line

Second ER Diagram

Employee Qualification


STEP 1

EMPLOYEE

(Payroll-no, [pk] Name, Position-held, Track-record)

QUALIFICATION

(Payroll-no, Qual-no, [pk] Date-acquired, Awarding-body)

STEP 2

Not Applicable

STEP 3

We do not need to add Payroll-no to QUALIFICATION, but we do need to designate Payroll-no as a foreign key.

QUALIFICATION

(Payroll-no [fk], Qual-no, [pk] Date-acquired, Awarding-body)

STEP 4

Change Name in EMPLOYEE to Employee-name.
Change Track-record in EMPLOYEE to Performance-rating

EMPLOYEE

(Payroll-no, [pk] Employee-name, Position-held, Performance-rating)

STEP 5

Final Relational Schema

EMPLOYEE

(Payroll-no, [pk] Employee-name, Position-held, Performance-rating)

QUALIFICATION

(Payroll-no [fk], Qual-no, [pk] Date-acquired, Awarding-body)



Coloured Line

Third ER Diagram

Project


STEP 1

PROJECT

(Project-id, [pk] Manager, Budget)

ACTIVITY

(Project-id, Activity-no, [pk] Supervisor, Expected-duration)

EMPLOYEE

(Payroll-no, [pk] Date-hired)


STEP 2

ASSIGNED-TO

(Project-id [fk1], Payroll-no [fk2], [pk] Date-assigned-to)

WORKED-ON

(Project-id [fk1], Activity-no [fk1], Payroll-no [fk2], [pk] Hours-worked)


STEP 3

ACTIVITY

(Project-id [fk], Activity-no, [pk] Supervisor, Expected-duration)


STEP 4 (Some Possibilities)

Rename ASSIGNED-TO to PROJECT-EMPLOYEE.

Rename WORKED-ON to TIMESHEET.

Rename Budget to Project-budget.

Rename Date-assigned-to to Date-assigned-to-project.

Rename Expected-duration to Expected-duration-of-activity.

Assuming that Managers and Supervisors are Employees:

Rename Manager to Manager-payroll-no and show it as a foreign key.

Rename Supervisor to Supervisor-payroll-no and show it as a foreign key.

Assuming that Managers and Supervisors are not Employees:

Assume that Manager exists as a primary key elsewhere in the database and show it as a foreign key (perhaps as Manager-id).

Assume that Supervisor exists as a primary key elsewhere in the database and show it as a foreign key (perhaps as Supervisor-id).


STEP 5

Final Relational Schema (One Possibility)

ACTIVITY

(Project-id [fk]<, Activity-no, [pk] Expected-duration-of-activity, Supervisor-payroll-no [fk])

TIMESHEET

(Project-id [fk1], Activity-no [fk1], Payroll-no [fk2], [pk] Hours-worked)

EMPLOYEE

(Payroll-no, [pk] Date-hired)

PROJECT

(Project-id, [pk] Project-budget, Manager-id [fk])

PROJECT-EMPLOYEE

(Project-id [fk1], Payroll-no [fk2], [pk] Date-assigned-to-project)



Common Problems

Doing STEP 3 in STEP 1

ACTIVITY

(Project-id [fk], Activity-no, [pk] Supervisor, Expected-duration)

Designating foreign keys incorrectly in STEP 2

WORKED-ON

(Project-id, Activity-no [fk1], Payroll-no [fk2], [pk] Hours-worked)

WORKED-ON

(Project-id [fk1], Activity-no [fk2], Payroll-no [fk3], [pk] Hours-worked)

Adding Project-id in STEP 3

ACTIVITY

(Project-id [fk], Activity-no, [pk] Supervisor, Expected-duration Project-id  [fk])



Coloured Line

Fourth ER Diagram

Machine Shop

STEP 1

Map each entity to a relation:

SHOP (Shop-name, [pk] Floor-area)
MACHINE (Serial-no, [pk] Condition, Date-purchased)
SKILL (Skill-id, [pk] Bonus)
OPERATOR (Operator-id, [pk] Name, Base-wage)

STEP 2

Map each many-to-many relationship to a relation:

CONNECTS-WITH (Shop-name-#1 [fk1], Shop-name-#2 [fk2], [pk])
REQUIRES (Serial-no [fk1], Skill-id [fk2], [pk])
HAS (Operator-id [fk1], Skill-id [fk2], [pk] Date-acquired)

STEP 3

Incorporate each one-to-many (many-to-one) relationship into the schema:

MACHINE (Serial-no, [pk] Condition, Date-purchased, Shop-name [fk])

STEP 4

Review the schema:

Rename the relations mapped from the many-to-many relationships.

CONNECTS-WITH given a more meaningful name:

SHOP-CONNECTIONS (Shop-name-#1 [fk1], Shop-name-#2 [fk2], [pk])

REQUIRES and HAS renamed used the convention of concatenating the names of the entities at either end of the relationship:

MACHINE-SKILL (Serial-no [fk1], Skill-id [fk2], [pk])
OPERATOR-SKILL (Operator-id [fk1], Skill-id [fk2], [pk] Date-acquired)

Attributes given more explicit names

Condition changed to Machine-condition and Serial-no changed to Machine-serial-no:

MACHINE (Machine-serial-no, [pk] Machine-condition, Date-purchased, Shop-name [fk])

Bonus changed to Skill-bonus:

SKILL (Skill-id, [pk] Skill-bonus)

Name changed to Operator-name:

OPERATOR (Operator-id, [pk] Operator-name, Base-wage)

STEP 5

Final Relational Schema

MACHINE (Machine-serial-no, [pk] Machine-condition, Date-purchased, Shop-name [fk])
MACHINE-SKILL (Serial-no [fk1], Skill-id [fk2] [pk])
OPERATOR (Operator-id, [pk] Operator-name, Base-wage)
OPERATOR-SKILL (Operator-id [fk1], Skill-id [fk2], [pk] Date-acquired)
SHOP (Shop-name, [pk] Floor-area)
SHOP-CONNECTIONS (Shop-name-#1 [fk1], Shop-name-#2 [fk2], [pk])
SKILL (Skill-id, [pk] Skill-bonus)

[Top]

Coloured Line

Carol Edmondson   <carol@cs.anu.edu.au>
URL: http://computer/student/comp2400.2006/tutlabs/tut3/SolnNotes.shtml
Last modified: Monday, 28-Aug-2006 11:06:27 EST