Search code examples
databasefunctional-dependencies

Find if a given functional dependency is implied from a set of functional dependencies


For : A→BC,CD→E,E→C,D→AEH,ABH→BD,DH→BC

Check : BCD→H

I am not understanding which axiom rule should I apply here to check. Do anyone know how to solve this.


Solution

  • There are two ways of checking if the dependency BCD -> H holds: the first one is by applying the Armstrong’s axioms and see if we can prove the validity of the dependency. The second one is by computing the closure of the determinant (BCD), and see if it contains the determinate (H). Consult any good book on databases to see way these two methods are equivalent.

    Let’s try the first method.

    1. D -> AEH (given)
    2. D -> H (applying the decomposition rule to 1)
    3. BCD -> D (applying the reflexivity rule)
    4. BCD -> H (by transitivity rule on 3 and 2)
    

    Let’s try the second method.

    1. BCD+ = BCD
    2. BCD+ = BCDAEH (using the dependency D -> AEH)
    

    So H is contained in BCD+ and so BCD -> H holds.