Re: 3vl 2vl and NULL
Date: Mon, 26 Dec 2005 14:07:37 GMT
Message-ID: <JOSrf.944$yx.423_at_trndny01>
"Hugo Kornelis" <hugo_at_pe_NO_rFact.in_SPAM_fo> wrote in message news:h6cuq1ht2fgsd2cop0fra4gvilurtqepmo_at_4ax.com...
> No NIAM person and no SQL person would (or rather: should) ever think of
> using just one proposition and choose to interpret NULL as "Age
> unknown". That would be storing two data points (age in years and age
> known/unknown status) in one column - a clear violation of 1NF.
Hugo,
I'll wait patiently for your response. Hope you had a nice rest!
Consider the following two propositions:
There exists a family member, known as Uncle Fred, about whose age (if any) nothing has been said.
AND Every family member has an age.
I claim that the following proposition follows logically from the above:
Uncle Fred's age is unknown.
But notice that it's an inference, and not necessarily a message communicated by the author of the NULL.
I'm going to claim that the first of the two propositions is a correct reading of a NULL in the age column, in the row uniquely determined by "Uncle Fred".
I'm going to claim that the second proposition is a fact about the model of the universe of discourse, and not a fact within the universe of discourse. In other words, to assert a proposition that conflicts with "every family member has an age" is tantamount to altering the model of the universe of discourse.
I'm going to suggest that, in the "real world" of SQL (or any other such tool), "every family member has an age" is reflected in one of two ways:
As metadata in the database.
OR
As a tacit convention (perhaps documented somewhere) among all the software that manages data about ages.
If you alter this metadata, or alter the tacit convention, you are altering the model of the universe of discourse. Received on Mon Dec 26 2005 - 15:07:37 CET