Minimal Cover

Two sets of functional dependencies F and G are equivalent if and only if F+=G+

Set of dependencies F is minimal if it satisfies the following conditions:

  1. Every right-hand side of a dependency in F is a single attribute
  2. For no XA is the set F{XA} equivalent to F
  3. For no XA and ZX is the set F{XA}{ZA} equivalent to F
Theorem

For every set of dependencies F there is an equivalent minimal set of dependencies called a minimal cover

Computation

Given a set of function dependencies apply each step until it no longer succeeds in updating F

  1. Replace XYZ with the pair XY and XZ
  2. Replace XA from F if AcomputeX+(X,F{XA})
  3. Remove A from left-hand side of XB in F if B is in computeX+(X{A},F)
  4. Replace XY, XZ in F by XYZ