Re: Proposal: 6NF

From: Hugo Kornelis <hugo_at_perFact.REMOVETHIS.info.INVALID>
Date: Fri, 13 Oct 2006 00:36:49 +0200
Message-ID: <3fgti2tqqp6jaitr0ntpp6jn4bus8p8mtm_at_4ax.com>


On Wed, 11 Oct 2006 06:18:18 GMT, Frank Hamersley wrote:

>Hugo Kornelis wrote:
(snip)
>> Sybase disallowing NULL in a column unless stated otherwise, violates
>> the ANSI standards.
>
>Yes I considered that and I did scratch around to see if the standard(s)
>were explicit on this - without much joy. There was a hint of being
>able to establish default settings (MS) for an implied NULL/NOT NULL
>clause but nothing concrete in the ANSI SQL syntax.
>
>Do you perchance have a fast track to said explicitness?

Hi Frank,

If you check the SQL:2003 documents, you'll see that a NOT NULL constraint is defined, but a NULL "unconstraint" (or whatever Sybase calls it) is not part of the specification.

There's also this, in ISO/IEC 9075-2:2003(E), 4.13 (Columns, fields, and attributes):

"Every column has a nullability characteristic that indicates whether the value from that column can be the null value. A nullability characteristic is either known not nullable or possibly nullable.

"Let C be a column of a base table T. C is known not nullable if and only if at least one of the following is true: — There exists at least one constraint NNC that is not deferrable and that simply contains a <search condition> that is a <boolean value expression> that is a known-not-null condition for C. (...)"

>BTW I prefer the Sybase behaviour as the alternate can only lead to
>sloppiness in the hands of the unwashed!

If there was any chance to get this changed, I'd favor a mandatory inclusion of explicit NULL or NOT NULL for every column.

Best, Hugo Received on Fri Oct 13 2006 - 00:36:49 CEST

Original text of this message