Entailment of Functional Dependencies

Tom Kelliher, CS 318

Mar. 8, 2002



Return homework Monday. Midterm review Monday. Midterm will cover Chapters 1--7.


From Last Time

Introduction to functional dependencies.


  1. Demonstrating entailment.

  2. Entailment checking algorithm.

  3. Entailment checking example.

Coming Up

Midterm review.

Demonstrating Entailment

Using Armstrong's Axioms:

show that
  1. and entail . (Union)

  2. entails and . (Decomposition)

So What?

  1. Generally, when normalizing, we're interested in knowing if .

  2. Armstrong's axioms are sound and complete.

    Therefore, an algorithm exists to do entailment checking.

Entailment Checking Algorithm

  1. Suppose we want to see if .

  2. We check this by seeing if is in the attribute closure of with respect to .
    1. This closure is defined:

    2. implies for each .

      By the union property then, .

    3. Note that .


  3. Attribute closure algorithm:

    closure :=
    old := closure
    if there is an FD such that then
    closure :=
    until old = closure
    return closure

    Correctness. Use induction. (Not the entire proof.)
    1. Basis. .

      Observe . Why?

      By decomposition, .

    2. Inductive step. Assume .

      Suppose we have where . Justify each of the following steps.

      Observe .

      So .

      Therefore .

Entailment Checking Example

Suppose we have , where and contains

Check whether or not entails and .

Thomas P. Kelliher
Thu Mar 7 18:46:49 EST 2002
Tom Kelliher