Re: NULLs: theoretical problems?

From: David Portas <REMOVE_BEFORE_REPLYING_dportas_at_acm.org>
Date: Thu, 9 Aug 2007 22:25:51 +0100
Message-ID: <KrOdna4V_eT9GybbRVnyugA_at_giganews.com>

```> Hugo Kornelis wrote:
```

>> On Wed, 08 Aug 2007 20:42:52 GMT, paul c wrote:
>>
>>> Hugo Kornelis wrote:
>>>> ...
>>>> The ANSI standard defines NULL as follows:
>>>>
>>>> "null value: A special value that is used to indicate the
>>>> absence of any data value."
>>>>
>>>> Thus, the only concept collapsed into NULL is that of "no value here".
>>>> ...
```> ...
```

>> <nitpicking>
>> The ANSI text doesn't define "the null value" (as they call it) as a
>> value that conveys that the value is not _a_ value, but as a _special_
>> value that conveys that there is no _data_ value.
>> </nitpicking>
>>
>> Personally, I never call NULL a value, and I prefer to describe NULL as
>> a "marker that indicates the absence of any value". But I couldn't
>> really write that and still claim to be citing ANSI, eh?
>> ...
```>
> I noticed in your blog you said that the table with a null-able birthday
> column was in 2NF.  If saying that is right, I suppose we must be careful
> to regard functional dependencies as determining values sometimes and
> non-values other times.

```

"A relation I over U satisfies X -> Y, if for each pair s, t of tuples in I, s{X} = t{X} implies s{Y} = t{Y}."

Since null = null is not true, no attribute with nulls satisfies any FD, not even the trivial one {A}->{A}!

"Let A1, A2,., An be subsets of the heading of relvar r. Then r satisfies the join dependency (JD) *{A1,A2,.,An} if and only if every relation that's a legal value for R is equal to the join of its projections on A1, A2,., An."

```--
David Portas
```
Received on Thu Aug 09 2007 - 23:25:51 CEST

Original text of this message