Re: NULLs: theoretical problems?
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.