Consider the schema and the set of functional dependencies:

Use the 3NF decomposition algorithm to generate a 3NF decomposition of , and show your work. This means:

a. A list of all candidate keys

b. A canonical cover for

c. The steps of the algorithm, with explanation

d. The final decomposition


a. A list of all candidate keys

Candidate keys that I can come up with:-

TODO: Can we prove that these are the only candidate keys?

b. A canonical cover for

Set

is extraneous in the right hand side of

is extraneous in the right hand side of . This is because can be inferred from , and Transitivity rule.

is extraneous in . This is because can be inferred from and applying Augmentation rule followed by Decomposition rule.

Since I cannot find any more extraneous attributes, the canonical cover of is:-

c. The steps of the algorithm, with explanation

Define

Define





We see that none of the schemas contains a candidate key. Thus we define as:

Then we delete since .

Thus our result is

d. The final decomposition