Re: looking for old Datamation poster on Normalizing
- From: "Jan Hidders" <hidders@xxxxxxxxx>
- Date: 28 Aug 2006 03:01:52 -0700
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
.
- References:
- Re: looking for old Datamation poster on Normalizing
- From: -CELKO-
- Re: looking for old Datamation poster on Normalizing
- From: David Cressey
- Re: looking for old Datamation poster on Normalizing
- From: Jon Heggland
- Re: looking for old Datamation poster on Normalizing
- Prev by Date: Re: Relation Schemata vs. Relation Variables
- Next by Date: Re: integer id columns for all tables
- Previous by thread: Re: looking for old Datamation poster on Normalizing
- Next by thread: Re: looking for old Datamation poster on Normalizing
- Index(es):