Tom Kelliher, CS 318
Apr. 1, 2002
Read 8.7--8.
Sample end-to-end application due Friday.
Each group must demonstrate its relations are in BCNF or 3NF (or show how to decompose the relations into BCNF or 3NF --- no need to implement) by the end of the semester.
Entailment checking.
Synthesis/decomposition of BCNF and 3NF.
Normal forms eliminate degrees of redundancy.
Example relation: (SSN, Name, Address, Hobby). FDs?
Example decomposed relation: (SSN, Name, Address), (SSN, Hobby).
A relational schema
is in BCNF if for
every FD
either of the
following is true:
.
is a superkey of
.
A relational schema
is in BCNF if for
every FD
either of the
following is true:
.
is a superkey of
.
for some key
of
.
A decomposition of
is a set of schemas:

such that the following hold:
.
entails
for all i.

Why? Consider the ``ultimate'' redundancy eliminating ``decomposition'' of the example relation.

Why?

.
.
AccountNumber
OfficeId

How do we show this?
and one of the schemas
of the decomposition:
. We define:

The idea is to use this projection to define
.
!
A problem in update-intensive environments.
Otherwise, consider using 3NF.