Search code examples
functional-dependencies

How to prove functional dependencies can't be derived?


I have relvar R={A, B, C, D, E, F, G, H} And FDs:

 1. A  -> B
 2. CH -> A
 3. B  -> E
 4. BD -> C
 5. EG -> H
 6. DE -> F

I have tried to derive BFG -> AE and ACG -> DH from those 6, and I think it is not possible.

How to prove that?


Solution

  • I found a way to do this.

    Find a closure of set of attributes of BFG (notation BFG+). If there is A and E, it can be derived, otherwise it can't.

    Same for ACG.

    Example:

        7. BFG+ = BFG   (trivially)
        8. BFG+ = BFGE  (from 3.)
        9. BFG+ = BFGEH (from 5. and 8., EG -> H)
    

    There is nothing else we can do and there is not A, so it can't be derived.