Re: 4NF is Where It Is At! [WAS Re: 1:1 relationships]

From: Jan Hidders <hidders_at_REMOVE.THIS.win.tue.nl>
Date: 14 Feb 2001 16:50:51 GMT
Message-ID: <96ed1b$ln4$1_at_news.tue.nl>


Peter Franklin wrote:
> On 14 Feb 2001 10:13:49 GMT, hidders_at_REMOVE.THIS.win.tue.nl (Jan
> Hidders) wrote:
>
> >What often works is looking at what happens if you denormalize.
> >Suppose, for instance, you have the following normalized tables:
> >
> > Is_member_of(student, class) key: {student}
> > Follows(class, course) key: {class, course}
> >
> > . . . snip . . .
> >
> > So, I hope this already helps you understand
> >MVDs a little better and also when and why they should be split out of
> >the table.
>
> Thank you for the example, Jan. I have now worked through this and
> Date's Chapter 11 and the light has dawned about MVDs.
>
> I think my problem is summed up by a note which Date made:
>
> "In practice it is usual - by separating independent repeating
> groups - to eliminate such MVDs _before_ applying [the
> normalisation rules] . . ."
>
> I have always done this under the impression that it was part of _1NF_
> and that MVDs were something much more mysterious and esoteric. So
> having got to 3NF or BCNF my relations were already in 4NF without my
> realising it. :-)

Yes, and that is the reason that for practical purposed 3NF/BCNF is usually enough; people already intuitively remove the MVDs into separate tables anyway. So, unless you have done something really silly you will be in 4NF when you have normalized to BCNF.

> Now for 5NF! <g>

Don't tempt me. :-) Actually, the math behind 5NF is much simpler than that of 4NF. And I was really baffled when I saw that Date doesn't tell how you can check if you are in 5NF because that is really quite simple. But later I found that some books (and a lot of web pages) actually do not tell this correctly. Quite amazing.

-- 
  Jan Hidders
Received on Wed Feb 14 2001 - 17:50:51 CET

Original text of this message