Compute the closure of the following set of functional dependencies for relation schema .

List the candidate keys for .


Note: It is not reasonable to expect students to enumerate all of . Some shorthand representation of the result should be acceptable as long as the nontrivial members of are found.

Starting with , we can conclude that: and .

Since and , (decomposition, transitive)

Since and , (union, decomposition, transitive)

Since , we have from the above steps (reflexive, union)

Since , (transitive)

Since , (transitive)

Since and , (augmentative, transitive)

Also, , , , etc.

Therefore, any functional dependency with or on the left-hand side of the arrow is in , no matter which other attributes appear in the functional dependency. Allow to represent any set of attributes in , the is , , , , , , , , and all functional dependencies of the form , , , where is any subset of . The candidate keys are , , , and .