Re: Can we solve this -- NFNF and non-1NF at Loggerheads

From: Alan <alan_at_erols.com>
Date: Mon, 7 Feb 2005 13:30:32 -0500
Message-ID: <36pqeaF5445hpU1_at_individual.net>


"Dawn M. Wolthuis" <dwolt_at_tincat-group.comREMOVE> wrote in message news:cu8bh5$kjv$1_at_news.netins.net...
> "Alan" <alan_at_erols.com> wrote in message
> news:36pnitF4v4623U1_at_individual.net...
> >
> > "Paul" <paul_at_test.com> wrote in message
> > news:42079da8$0$34063$ed2e19e4_at_ptn-nntp-reader04.plus.net...
> >> Alan wrote:
> >> >> Roy Hann wrote:
> >> >>
> >> >>> 1NF does not "mean values are simple or indivisible". It just
> >> >>> says that for the purpose of the relational theory, the
> >> >>> divisibility (or internal structure) of values of a given type is
> >> >>> of no interest or use within the theory. The theory does not
> >> >>> make use nor reference to the internal structure of a value of
> >> >>> any type. The theory therefore does not need to define what
> >> >>> atomic means. The term "atomic" is a just a narrative short-hand
> >> >>> that Codd used to say, "That's stuff I don't care about, so
> >> >>> forget about it from now on as you read this paper." I can't
> >> >>> think of any other theory where a precise definition is demanded
> >> >>> for things that are *intended* not to be discussed. Plane
> >> >>> geometry isn't required to define colour for the purpose of
> >> >>> excluding it from discussion.
> >> >>>
> >> >>> There is nothing in RT that *prevents* values from being
> >> >>> divisible, there never was, and it would plainly be stupid to
> >> >>> want it that way.
> >> >>
> >> >> This sounds to me like an excellent summary of what "1NF" and
> >> >> "atomic" means. I can't believe we go round in circles discussing
> >> >> this point when it really is this simple!
> >> >
> >> > Okay, I will cite a well respected source supporting my position,
then
> > you
> >> > do the same. From "Fundamentals of Database Systems, Third Edition",
> >> > Elmasri/Navathe, pages 485-487 Addison-Wesley, 2000:
> >>
> >> I don't see a conflict between the extract below and what Roy said
> >> above. Just that the text below is a bit on the verbose and practical
> >> side, and the above is a more abstract, concise and clear version.
> >
> > Then you better re-read the "more abstract, concise, and clear"
inaccuracy
> > that Paul wrote. Here, I'll make it easy:
> >
> > Paul:
> > "There is nothing in RT that *prevents* values from being
> > divisible, there never was, and it would plainly be stupid to
> > want it that way."
> >
> > Alan, via Elmasri/Navathe:
> > "...it was defined to disallow multivalued
> > attributes, composite attributes, and their combinations. It states that
> > the
> > domain of an attribute must include only atomic (simple, indivisible)
> > values..."
> >
> > There is no way to interpret other than how it was written.
> >
> > What Paul and everyone else is talking about, but can't articulate, is
> > that
> > there is another theory/model, with the (in?)formal name of "Nested
> > Relational Model", or NFNF (Non First Normal Form). This is the
> > model/theory
> > where the restriction of 1NF is _removed_, not redefined (Elmasri, page
> > 459).

>

> Yes, that is correct -- the NF2 folks do not redefine 1NF, but claim it to
> be unnecessary. So, until recently, both "strict relational theorists"
and
> those employing an NF2 model were in agreement on the terms, while
> disagreeing on the preferred model. When one group claims 1NF is required
> and another claims NF2 is preferred, then redefining 1NF so that NF2 fits
> into it is obviously going to cause confusion with 1NF = First Normal Form

> and NF2 = Non-First Normal Form.

>
> What Date & Darwin are doing is *almost* like saying that the NF2 folks
are

> right, so we will redefine 1NF to include their approach to modeling. It
is
> great for them to admit to such an error, but changing the meaning of
terms
> so that the words in relational theory are still correct to them, but mean

> something different than they used to and different from what the agreed
> upon meaning has been is really doing a disservice to the industry.
>

> >>
> >> I don't think most of the people here actually disagree with the
basics,
> >> just that there is a problem with expressing the ideas in written
> >> language such that they aren't misinterpreted.
> >
> > Nonsense. Of course they disagree, that's what we've been arguing about.
> > I've cited well-respected, published proof of my argument, and until
> > someone
> > can present well-respected published proof (and not just on the internet
> > where one could find "proof" of little green men from Mars) of their
> > argument, they should keep quiet. Or apologize.
>

> From "An Introduction to Database Systems" 8th edition, C.J. Date, Addison
> Wesley, 2004
>

> p. 149
> "...every tuple contains exactly one value for each of its attributes;
thus,
> it certainly follows that every tuple in every relation contains exactly
one
> value for each of its attributes; thus it certainly follows that every
tuple
> in every relation contains exactly one value for each of its attributes.
A
> relation that satisfies this property is said to be normalized, or
> equivalently to be in first normal form, 1NF"
>

> [Note, he has already defined "relation" so that there is no chance of a
> non-1NF relation, however, the mathematical definition that Codd started
> with does not define it that way, which is why it would make sense to take
a
> relation and put it in 1NF, if you thought that important for the model]
>

> p. 152
> "...any type whatsoever can be used as the basis for defining relational
> attributes, in general. It follows that relation types in particular,
since
> they are certainly types, can be used as the basis for defining attributes

> of relations; in other words, attributes can be relation-valued, meaning
we
> can have relations with attributes whose values are relations in turn. In
> other words, we can have relations that have other relations nested inside
> themselves."
>

> The formal definition he gives of 1NF on p.358
>
> "First normal form: A relvar is in 1NF if and only if, in every legal
value
> of that relvar, every tuple contains exactly one value for each
attribute."
>

> I recognize that this requires the def of "relvar" and "legal value" and
> perhaps even "tuple" since he embellishes the mathematical definitions of
> both tuple and relation, but in any case, this definition permits any type
> of collection to be the domain of an attribute. For example, if the
domain
> of an attribute is the set "Lists of Valid E-mail Addresses" then if there
> is a list of valid e-mail addresses as the value of that attribute in a
> particular tuple, it can be a valid tuple in that relation and, by his
> definition, that relation would still be in first normal form.
>
> Did that help? --dawn

Only to confuse things :) In light of the recent discussions, I think it's fair to go with the explantion that there is 1NF in the Relational Model, and there is NFNF in the Nested Relational Model (which is different than the plain Relational Model). That seems to sum it up and end the confusion, at least to me. 1NF <> NFNF to put it really briefly (and obviously, which makes we wonder why this discussion even started).

>

> >>
> >> Paul.
> >>
> >> > "First normal form (1NF) is now considered to be part of the formal
> >> > definition of a relation in the basic (flat) relational model
(Footnote
> > 11:
> >> > This condition is removed in the nested relational model and in
> >> > object-relational systems (ORDBMSs), both of which allow unnormalized
> >> > relations.); historically, it was defined to disallow multivalued
> >> > attributes, composite attributes, and their combinations. It states
> >> > that
> > the
> >> > domain of an attribute must include only atomic (simple, indivisible)
> > values
> >> > and that the value of any attribute in a tuple must be a single value
> > from
> >> > the domain of that attribute. Hence, 1NF disallows having a set of
> > values, a
> >> > tuple of values, or a combination of both as an attribute value for a
> > single
> >> > tuple. In other words, 1NF disallows "relations within relations" or
> >> > "relations as attributes of tuples." The only attribute values
> >> > permitted
> > by
> >> > 1NF are single atomic (or indivisible) values. ...
> >> > The first normal form also disallows multivalued attributes that are
> >> > themselves composite. These are called nested relations because each
> > tuple
> >> > can have a relation within it..."
> >> >
> >> > Your _opinion_ is not solicited. Cite some facts from a published
> > source.
>
> Received on Mon Feb 07 2005 - 19:30:32 CET

Original text of this message