Re: Base Normal Form
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
