Search code examples
relational-algebrafunctional-dependencies

How to specify a set of equivalent Functional Dependencies for a given relation


enter image description here

We've been told that the FD are:

A->B
B->C
C->A

But with the transitive rule, since A->B and B->C this also means:

A->C

I worked out that:

A->BC is true, since A->B and A->C are FD. I can split A->BC to A->B, A->C with the splitting rule

C->AB is true, since C->A and due to transit rule: C->B is true (where C->A, A->B means C->B)

Can someone tell me the correct answer and why my answer is wrong. I can't get my head round the given answer.


Solution

  • The discussion of why your answer is wrong can be found in the comments.

    The correct answer is #4: only in this answer A, B and C are superkeys as in the original set of functional dependencies. In #1 A is not a superkey (e.g., A -> B does not hold), in #3 C is not a superkey (e.g., C -> B does not hold).