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

From: Gene Wirchenko <>
Date: Tue, 29 Nov 2005 10:57:19 -0800
Message-ID: <>

On 28 Nov 2005 17:46:15 -0800, wrote:

>Gene Wirchenko wrote:
>> On 25 Nov 2005 01:49:04 -0800, wrote:
>> [snip]
>> >something. We can know something is empty. We can't know anything about
>> >something that doesn't exist. We have no facts about it. We have no
>> >data.
>> We can know that it does not exist.

>If what does not exist? You think we should have some special value to

     The "something" under discussion.

>represent the "fact" that something doesn't exist? Go on then - be fair



  1. It does not get recorded since a database is statements of what we know, or
  2. The statement is that we know that we do not know something. This is a simple boolean value.

>about it... Please choose a small file in your database. Now please
>list all of the things it doesn't know anything about. I could, if
>challenged, tell you exactly which things are empty, or NULL, in any of
>the files here - if I was allowed to.

     The point of a DBMS is that it should know what the data means. That is the point of constraints.

>Really there are two reasons for NULL as we now know it. One of them is
>perfectly acceptable in any context, the other a mere excuse for a
>deficiency in a model.

     There is no need for NULL.

>NULL, as defined in mathematics and according to the root meaning for
>the word in the dictionary, is, properly, an empty set or "not any".
>That is the perfectly acceptable reason for NULL. There is no 3VL with
>this NULL. There is no distinction between two NULL values. Things are
>either distinct or not distinct - never unknown.

    I really do not care about your muddle with NULL or anyone else's. We can argue the concept until the cows come home. It will be still be an argument, and nothing will be settled.

>The mere excuse for the deficiency in a model, is when it's used as a
>"placeholder" because the model insists that every "row" must have the
>same number of "columns" - even though that might not be true in the
>real world. This is inappropriate, misleading and the source of great
>confusion. If you (SQL) need a special value for this then use
>something else - use "UNKNOWN" or whatever you like, but don't corrupt
     That NULL is supposedly needed means that you have not finished decomposing into relations.


Gene Wirchenko Received on Tue Nov 29 2005 - 19:57:19 CET

Original text of this message