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

From: Dawn M. Wolthuis <dwolt_at_tincat-group.comREMOVE>
Date: Mon, 7 Feb 2005 20:27:33 -0600
Message-ID: <cu9830$5pm$1_at_news.netins.net>


"Alan" <not.me_at_rcn.com> wrote in message news:36qgdfF55p592U1_at_individual.net...
>
> "Dawn M. Wolthuis" <dwolt_at_tincat-group.comREMOVE> wrote in message
> news:cu8dbm$ks5$1_at_news.netins.net...
>> "Alan" <alan_at_erols.com> wrote in message
>> news: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).
>>
>> BECAUSE of Date & Darwin's (relatively) new definition of 1NF. Can you
> not
>> see from Date's new definitions that now a relation can be in 1NF even if
>> there is a list, queue, stack, set, relation, linked list, hash table, or
>> ... as the value of an attribute in that relation?
>
> No. As shown elsewhere, what you are talking about is not the Relational
> Model- it is the NFNF model. It is NOT the same model.
>
> Date adds somewhere
>> (maybe that is in the "legal value" def?) that the only such data
> structures
>> he would accept would be relations, but even if his definition of 1NF
>> only
>> permits that construct, it changes the meaning of 1NF significantly,
> right?
>
> No. As shown elsewhere, what you are talking about is not the Relational
> Model- it is the NFNF model. It is NOT the same model.
>
>
>> How many practitioners today would say that they are putting a relation
>> in
>> 1NF and then proceed to leave nested relations in the model?
>
> Three. Dawn, Roy, and Alfredo

No, No, No! My definition of 1NF is the same as yours! I would say that I was NOT putting the relation in 1NF and skipping ahead to 2 & 3nf, for example (recognizing these are typically defined to include 1NF, so I'll toss that part of their defs out).

> That muddies
>> the water a lot from my perspective, with the work I am doing. Make
>> sense?
>
> Not in the least, but I am not surprised.

Nor I, at this point. ;-)
--dawn Received on Tue Feb 08 2005 - 03:27:33 CET

Original text of this message