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.