Re: NULLs: theoretical problems?

From: Brian Selzer <brian_at_selzer-software.com>
Date: Sat, 18 Aug 2007 13:48:30 GMT
Message-ID: <OMCxi.33891$2v1.16469_at_newssvr14.news.prodigy.net>


"V.J. Kumar" <vjkmail_at_gmail.com> wrote in message news: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.
>

FYI: I pulled "feature outside Core SQL" from the heading of Table 32 in ISO/IEC 9075-2:1999 and Table 35 in ISO/IEC 9075-2:2003.

> 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 - 15:48:30 CEST

Original text of this message