Let's say we have the following functional dependencies:
A->B, B->C, C->B, and A->C
Where the functional dependency A->C
is explicit, i.e. you don't have to go through B to get to C from A.
Is there a transitive dependency between A and C? If I was wanting to use this to build my relation and have the relation satisfy third normal form, would I have to break it up into two relations?:
A* B
B* C
(where * means primary key, and each line is the header of a relation)
Or would keeping it as:
A* B C
still satisfy 3NF?
Explicitly my question is given the functional dependencies: A->B, B->C, C->B, and A->C
Is A->C
a transitive dependency and why/why not?
A->C is not a transitive dependency. A->B->C is a transitive dependency.
The term "transitive" just means the dependency has more than one part to it. Note that a relation may satisfy 3NF while still having transitive dependencies. In this case however, to satisfy 3NF you need to decompose A,B,C into at least two relations with A,B and C all being candidate keys.