Re: NULLs: theoretical problems?

From: V.J. Kumar <vjkmail_at_gmail.com>
Date: Sat, 18 Aug 2007 14:45:41 +0200 (CEST)
Message-ID: <Xns999059222B985vdghher_at_194.177.96.26>


Jan Hidders <hidders_at_gmail.com> wrote in news:1187392829.704880.240820_at_a39g2000hsc.googlegroups.com:

> On 17 aug, 20:35, "Brian Selzer" <br..._at_selzer-software.com> wrote:

>> "Jan Hidders" <hidd..._at_gmail.com> wrote in message
>>
>> news:1187370029.251043.73750_at_o80g2000hse.googlegroups.com...
>>
>>
>>
>> > On Aug 17, 2:17 pm, "Brian Selzer" <br..._at_selzer-software.com>
>> > wrote:
>> >> "Jan Hidders" <hidd..._at_gmail.com> wrote in message
>>
>> >>news:1187305514.703264.214690_at_d55g2000hsg.googlegroups.com...
>>
>> >> > On 17 aug, 00:03, Hugo Kornelis
>> >> > <h..._at_perFact.REMOVETHIS.info.INVALID> wrote:
>>
>> >> >> [....big snip ...]
>>
>> >> >> And the model is extremely unstable, since it's not uncommon in
>> >> >> real businesses to see an optional proposition become mandatory
>> >> >> (e.g. ebcause
>> >> >> of legislation change) or a mandatory proposition become
>> >> >> optional (e.g.
>> >> >> because of competition). If all propositions are combined into
>> >> >> a single
>> >> >> table, this is a simple change from NULL to NOT NULL or vice
>> >> >> versa. If each proposition has its own table, this is an
>> >> >> equally simple change, the addition or removal of a constraint
>> >> >> that SQL does not currently support but that is known as
>> >> >> "equality constraint" in Object Role Modeling.
>>
>> >> > Just a minor technicality. As far as I understand it an equality
>> >> > constraint can be represented by two inclusion dependencies in
>> >> > both directions, so I would say that it *is* supported by SQL.
>> >> > Anything I'm missing?
>>
>> >> Yes. SQL doesn't support multiple assignment. In order to get
>> >> rows with new key values inserted, at least one of the constraints
>> >> needs to be disabled.
>>
>> > Or you use deferrable constraints. Present since SQL-92 and
>> > supported by most serious DBMSs, AFAIK.
>>
>> As far as I know, Sql Server doesn't. Deferrable constraints is a
>> "feature outside Core SQL" in both SQL-99 and SQL-2003.
> 
> Didn't know that. Then it is indeed not fair to say that it is really
> supported by SQL.

The full 92/2003 standard compliance does require that deferrable constraints should be implemented. The entry/intermediate compliance level does not. There is no notion of "Core SQL" in the standard.

MS is hardly a paragon of standards-compliance despite some truly nice db features (e.g. a very good optimizer in SQL Server 2000). Oracle has had deferrable constraints implemented for quite a while(since 1997), as has DB2 of course.

> 
> -- Jan Hidders
> 
Received on Sat Aug 18 2007 - 14:45:41 CEST

Original text of this message