Re: Proposal: 6NF
From: Bob Badour <bbadour_at_pei.sympatico.ca>
Date: Sat, 07 Oct 2006 12:22:44 GMT
Message-ID: <o_MVg.1602$cz.23912_at_ursa-nb00s0.nbnet.nb.ca>
>
>
> 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?
>
> 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.
Date: Sat, 07 Oct 2006 12:22:44 GMT
Message-ID: <o_MVg.1602$cz.23912_at_ursa-nb00s0.nbnet.nb.ca>
Sampo Syreeni wrote:
> 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?
With a well-formed formula. Duh.
>> 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.
The idea that a single indicator can handle every case is just plain stupid, which is what ultimately undermines your whole position. Received on Sat Oct 07 2006 - 14:22:44 CEST