Re: Base Normal Form

From: dawn <dawnwolthuis_at_gmail.com>
Date: 7 Jul 2005 13:30:47 -0700
Message-ID: <1120768247.546278.21990_at_z14g2000cwz.googlegroups.com>


Jan Hidders wrote:
> dawn wrote:
> > David Cressey wrote:
> >
> >>I'd like to suggest a new Normal Form definition, one that I'm calling Base
> >>Normal Form, for lack of a better term.
> >>
> >>The purpose is NOT to advance theory any further. It's to make it easier to
> >>teach introductory database design.
> >>
> >>Here it is:
> >>
> >>
> >>A table is in base normal form if and only if it has at least one candidate
> >>key.
> >
> > I think that what you are describing is a mathematical function
> > (sometimes referred to as a mapping), perhaps?
>
> I think that would be very confusing. First, his table actually has
> ordering, functions don't.

The elements of mathematical relations are also ordered tuples, correct? One problem might be that the def of relation and, subsequently, function is often written in terms of a binary relation, but that is because an n-ary relation can be seen as binary with domain and range where each is n dimensional.

> Second, functions are binary relations,

if I had read one more sentence fragment, I would have seen that is what you decided. Functions need not be binary any more than relations need be -- you can view them as binary if you choose, as there is no harm in doing so.

> and
> even though you could interpret every n-ary relation as a binary
> relation,

exactly -- there is no more difficultly in considering relations as n-ary than functions. Functions are just a special case of relations, right? They are relations with a mapping defined from a "domain" to a "range" -- from input to output. Very clean.

> that is different from actually being the same.

Correct, but however you want to work with relations - either binary or n-ary, you can do the same with functions.

> Finally, if
> there are multiple candidate keys then it actually represents several
> functions.

Yes, but that is not a new concept. We can lookup a person by SSN or some other ID -- two functions. Very intuitive.

> It's really not a good idea to confuse the concept of
> relation and function.

I definitely agree! A function is a specific type of relation where a relation might not be a function at all. A function is a relation that has a mapping from, for example, a candidate key value to a relation tuple (I wrote "relationValue" in my posting, which I noticed as I sent it when I intended relationElementValue or tuple, by the way).

It is important not to confuse the two as the one is a subset of the other. Similarly, we do not want to confuse a set and a relation. That is why they each have distinct definitions. Where is the problem?  Thanks --dawn

> -- Jan Hidders
Received on Thu Jul 07 2005 - 22:30:47 CEST

Original text of this message