Search code examples
database-designfunctional-dependenciestransitive-dependency

Transitive dependency involving more than 3 attributes


Given the following set of function dependencies

A -> B 
B -> C
B -/> A     (B doesn't functionally determine A) 

if A->C exist, it is a transitive dependency

What if we are given the following 2 situations, are they transitive dependency too?

First situation

A -> B
B -> C
C -> D
B -/> A
C -/> B

is A->D a transitive dependency?

Second situation

A -> B
B -> C
C -> D
B -/> A
C -> B

is A->D a transitive dependency?


Solution

  • The example is trivial. You don't even need to clarify when something is NOT a TD. It is assumed that nothing is a TD but the TDs you explicitly define. So the first step is to remove the redundancy of all

    X -/> Y
    

    Now, given:

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

    The following are transitive dependencies:

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

    Adding any other dependencies won't change the current transitive dependencies