Re: Proposal: 6NF

From: Sampo Syreeni <decoy_at_iki.fi>
Date: Sat, 7 Oct 2006 12:45:57 +0300
Message-ID: <Pine.SOL.4.62.0610061114300.10457_at_kruuna.helsinki.fi>


On 2006-10-05, Hugo Kornelis wrote:

> In that case, you should model it as such - in a relational table, you
> add a column "CanLayEggs" with a domain consisting of the values Yes
> and No.

After that you have a form of redundancy in the table, because only knowing CanLayEggs=No allows you to fully determine eggs_laid. From the point of view of information content, fields that are fully determined are not informative and they shouldn't be included. Or, from another point of view, you've essentially made eggs_laid optional, i.e. a repeating group which occurs from zero to one times. Even if that doesn't formally make the table non-1NF, in spirit you still have polymorphic records which is almost as bad.

Also, how do you then enforce the constraint that camels always have CanLayEggs=No?

> Don't try to make NULL mean "there may not be a value here" - it
> doesn't mean that. The *only* meaning NULL has is "value is missing".

That depends on whom you ask, how many different kinds of nulls you think there really are, and whether you're happy with using a "value missing" null in a union view where the base relations couldn't have a value for a given field.

-- 
Sampo Syreeni, aka decoy - mailto:decoy_at_iki.fi, tel:+358-50-5756111
student/math+cs/helsinki university, http://www.iki.fi/~decoy/front
openpgp: 050985C2/025E D175 ABE5 027C 9494 EEB0 E090 8BA9 0509 85C2
Received on Sat Oct 07 2006 - 11:45:57 CEST

Original text of this message