Re: 3 value logic. Why is SQL so special?

From: David Portas <REMOVE_BEFORE_REPLYING_dportas_at_acm.org>
Date: 12 Sep 2006 11:59:41 -0700
Message-ID: <1158087581.800435.221650_at_b28g2000cwb.googlegroups.com>


Paul wrote:
>
> Now, if the field "Actual_Departure_Time" is not null, then it has to
> be something - yes?

I think you did not read or understand JOG's reply. If the entity does not have an Actual_Departure_Time attribute then it should be represented by a table that does not have an Actual_Departure_Time attribute. Your alternative is unsound in several ways.

>
> That "something" is normally some arbitrary value - i.e. 01/01/1970 or
> whatever - the point is any application programmer has to take that
> system defined arbitrary value into account when writing code against
> the system.
>
> *_WHEN_* the value used is <null>, then the programmer doesn't need
> any special knowledge of the system - i.e. "By the way, the date for
> planes which haven't taken off yet is xxx/yyy/zzzz" - just a simple,
> "Oh, that's null until the VR is filed".
>
>
> What could be simpler or more logical?

Put like that, almost anything. You have made the mistake of thinking that Null is a value. It is not. Nulls break everything that is logical, including such simple matters as assignment, the Information Rule and Data Independence.

-- 
David Portas
Received on Tue Sep 12 2006 - 20:59:41 CEST

Original text of this message