Re: looking for old Datamation poster on Normalizing




Jon Heggland wrote:
David Cressey wrote:
PMFJI. I've allways been disturbed by the presentation of 4NF in the
"puppies & tricks" poster. It seems to me that there's a misprint,
somewhere, or that the key of one of the tables has undergone a shift
between the 3NF example and the 4NF example. Am I the only one who sees a
problem, or has this been discussed before?

The keys (assuming /italics/ indicate keys) are wrong. It would make
more sense if the key for the initial allegedly non-4NF "Puppy Tricks"
were { Puppy Number, Trick ID, Costume }, and the the key for "Puppy
Costumes" were { Puppy Number, Costume }, but the explanation is still
bad. As presented, it looks more like an example of 2NF than 4NF.

Indeed. I completely agree. But I think there is a real 4NF problem
hidden in there, which probably is why the author made the mistake. I
read the description as follows:

PT(pnr, tid, twl, sl, cst)
dependencies:
- pnr, tid -> twl
- pnr, tid -> sl
- pnr ->> cst | tid, twl, sl

So, there is only one CK and that is {pnr, tid, cst} so we are indeed
not in 2NF. After splitting off twl and sl as usual together we get:

PT2(pnr, tid, twl, sl) PC(pnr, tid, cst)

PT2 has one CK {pnr, tid} and is in 5NF, PC however has CK {pnr, tid,
cst} and is therefore in 3NF but not in 4NF.

-- Jan Hidders

.