Re: looking for old Datamation poster on Normalizing
Date: 28 Aug 2006 03:01:52 -0700
Message-ID: <1156759311.988937.199140_at_h48g2000cwc.googlegroups.com>
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