# Entailment of Functional Dependencies

Tom Kelliher, CS 318

Mar. 8, 2002

### Announcements

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

### From Last Time

Introduction to functional dependencies.

### Outline

1. Demonstrating entailment.

2. Entailment checking algorithm.

3. Entailment checking example.

Midterm review.

# Demonstrating Entailment

Using Armstrong's Axioms:

• .

• entails .

• and entail .

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 .

Why?

3. Attribute closure algorithm:

closure :=
repeat
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