Re: So what's null then if it's not nothing?

From: Hugo Kornelis <hugo_at_pe_NO_rFact.in_SPAM_fo>
Date: Thu, 22 Dec 2005 00:57:46 +0100
Message-ID: <4eqjq11u90jb81gon89nlfaq6elid3n4ik_at_4ax.com>


On Thu, 15 Dec 2005 22:39:32 +0100, Jon Heggland wrote:

>In article <5fm3q11edj412gbk98h39sjagb8ksurtj0_at_4ax.com>,
>hugo_at_pe_NO_rFact.in_SPAM_fo says...
>>
>> Are you refering to the "Much ado about nothing" article on the dbdebunk
>> site (http://www.dbdebunk.com/page/page/1706814.htm)?
>
>No, I am referring to "Extending the Database Relational Model to
>Capture More Meaning".

Hi Jon,

Almost a week ago already? Boy, time sure flies....

Anyway, I found a copy of this paper and skimmed through it. I get the idea that Codd doesn't distinguish between NULL and UNKNOWN. He never explicitly states that they are to be treated the same, but he paper does include many clues that this is (or rather: was at that time) Codd's position.

I think I've made my position on this quite clear: UNKNOWN is a valid value in 3VL logic. NULL is the absence of any valid value. Therefor, NULL and UNKNOWN can never be the same, nor can they be treated the same.

The logic table Codd includes in paragraph 4.3 is equal to the logic table I would use for 3VL, if you substitute UNKNOWN for w. But (as I also expressed earlier in this thread) NULLS should always propagate.

*IF* one decides to store truth values in a database (which I don't necessary consider a good idea), then (and only then) the 3VL logic should be extended to cater for NULL. And NULL should always propagate in logic - i.e. expr1 log-oper expr2 should always result in NULL if either expr1 or expr2 is NULL, regardless of the value of the other expression and regardless of the logical operator.

Or, to make a long story a lot shorter: I disagree with Codd's views aas outline in this paper.

Best, Hugo

-- 

(Remove _NO_ and _SPAM_ to get my e-mail address)
Received on Thu Dec 22 2005 - 00:57:46 CET

Original text of this message