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

From: Barry <BarryJJ_at_ATTGlobal.Net>
Date: Wed, 7 Feb 2001 23:40:12 -0500
Message-ID: <3a822541_4_at_news1.prserv.net>


Jan Hidders wrote:

> Barry wrote:
> > Jan Hidders wrote:
> >
> > > Barry wrote:
> > > > Jan Hidders wrote:
> > > > > Barry wrote:
> > > > > > Jan Hidders wrote:
> > > > > > > Barry wrote:
> > > > > > > >
> > > > > > > > The classic example used to be
> > > > > > > > lives_at( person ) -> current_address
> > > > > > > > and
> > > > > > > > lives_at( person ) -> current_home_ph#
> > > > > > > > but
> > > > > > > > lives_at( person ) -/-> current_salary
> > > > > >
> > > > > > I'd intended {person} as the candidate key, and (unstated)
> > > > > >
> > > > > > earns( person ) -> current_salary
> > > > >
> >
> > So does that mean that each of { person } ->> { current_address } and
> > { person } ->> { current_salary } are independent MVDs since we've
> > already said that there is no connection between current_address
> > values and current_salary value?
>
> Yes, it does. For completeness I will give you the formal definition:
>
> For a relation R with attributes H the MVD X->>Y (with X and Y subsets
> of H) holds if
>
> for every two tuples t1 and t2 in R such that t1[X]=t2[X] there is
> also a tuple t1[H-Y]+t2[Y] in R.
>
> Where "+" is the tuple concatenation, "-" the set difference and t[X]
> the projection of the tuple t on the attribute set X. What it basically
> says is that the Y part of two tuples is interchangeable if the X parts
> are the same.
>
> Checking that this applies to the dependencies you mentioned is left to
> the reader as an exercise. :-)

I find myself forced to come full-circle. I originally offered my vaguely-recalled expression of 4NF as:

  Given key k, non-key attributes of a and b, and f(k)->a, then f(k)->b for   {k,a,b} to be in 4NF.

In other words, if g(k)->b (i.e., the relationship of attribute b to the key is different to that of a), then {k,a,b} must be decomposed to {k,a} and {k,b} to satisfy 4NF.

I'm still feeling that the differences between the way you've written it and the way I'm trying to remember it is one of those "calculus" v. "algebra" things; i.e., a different way of saying the same thing.

As I said way back in the thread, it's been a long time since I came to terms with this stuff, and I've spent 20+ years with it becoming sort of "second nature" (i.e., the ability to recite the formalisms has become hazy).

But I do remember struggling with the ... dare I say it? ... Date formulations of Normalisation, and then bumping into statements of each more in the terms I cite above, and finding it much easier to understand.

At this rate, I may have to unpack my boxes to find "that book" before I move out of my transient office at work ... :-)

Thanks for helping me get my brain back into gear ... Barry J. Received on Thu Feb 08 2001 - 05:40:12 CET

Original text of this message