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 12:51:23 -0600
Message-ID: <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? 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? How many practitioners today would say that they are putting a relation in 1NF and then proceed to leave nested relations in the model? That muddies the water a lot from my perspective, with the work I am doing. Make sense? --dawn Received on Mon Feb 07 2005 - 19:51:23 CET

Original text of this message