Re: Sixth normal form

From: Brian Selzer <brian_at_selzer-software.com>
Date: Sat, 18 Aug 2007 07:26:37 GMT
Message-ID: <Naxxi.49919$YL5.48952_at_newssvr29.news.prodigy.net>


"Jan Hidders" <hidders_at_gmail.com> wrote in message news:1187391299.353682.322830_at_w3g2000hsg.googlegroups.com...
> On 17 aug, 19:15, "Brian Selzer" <br..._at_selzer-software.com> wrote:
>>
>> [... big snip ...]
>>
>> If the goal is a database schema that can represent exactly the same
>> information content, then the cyclical interrelational constraint is
>> required; if the goal is a schema that can represent additional
>> information
>> without contradicting the closure of the set of FDs and INDs for all
>> schemata that are equivalent to the less normalized schema, then the
>> cyclical interrelational constraint is not always required, except, of
>> course, when moving from 5NF to 6NF.
>
> *sigh* You already said this, and I already explained that under the
> usual definitions of those terms they are *never* required, including
> when going from 5NF to 6NF. You replied that you are using other
> definitons but apart from some informal examples you never gave a good
> definition nor a good motivation why that should be the definition. I
> think the onus is on you here to show why you want to depart from
> rather well-established terminology.
>

It all boils down to the domain closure assumption, which states that the only individuals that exist are represented by values in the body of the database, and the identity relation, =, which guarantees that no matter how many times a value appears, there is only one individual represented by that value. If you have a database schema consisting of a single relation schema that satisfies the functional dependency A --> B, then due to the domain closure assumption, the existence of an individual that is represented by a value for A depends upon the existence of a specific individual that is represented by a value for B. So if the values a1 and b1, for A and B respectively, appear in the same tuple, then a denial of the existence of the individual represented by b1 denies the existence of the individual represented by a1, but a denial of the existence of the individual represented by a1 does not necessarily deny the existence of the individual represented by b1, since there could be another tuple that has the values a2 and b1.

Now suppose that the relation schema also satisfies the functional dependency B --> C. Then if the values a1, b1 and c1, for A, B and C respectively, appear in the same tuple, then a denial of the existence of the individual represented by c1 denies the existence the individual represented by b1 and transitively the existence of the individual represented by a1. When the relation schema is decomposed into a family of relation schemata such that A and B appear in one relation schema and B and C appear in another, then the denial of the existence of the individual represented by c1 no longer denies the existence of the individuals represented by b1 and a1. This is the problem. This is why I think that an inclusion dependency is required.

This issue is not limited to database schemata with only one relation schema, but if you limit the scope to the decomposition of a single relation schema into a family of relation schemata, then it follows from the above two paragraphs that if the relation schema satisfies the functional dependency A --> B then the appearance of an individual that is represented by a value for A depends upon the appearance of a specific individual that is represented by a value for B. Thus it also follows that the denial of the appearance in the family of relations of the individual represented by c1 no longer denies the appearance in the familiy of relations of the individuals represented by b1 and a1.

The issue is also not limited to decomposition due to transitive functional dependencies. If a relation schema satisfies the functional dependency A --> BC, then the appearance of an individual represented by a value for A depends upon the existence of both the individual represented by a value for B and the individual represented by a value for C. When the relation schema is decomposed into a family of relation schemata such that A and B appear in one relation schema and A and C appear in another, then if the values a1, b1 and c1, for A, B and C respectively, appear in the same tuple of the original relation, then in the family of relations the denial of the appearance of the individual represented by c1 no longer denies the appearance of the individual represented by a1 and the denial of the appearance of the individual represented by b1 no longer denies the appearance of the individual represented by a1. This is why I think that in this case a circular inclusion dependency is required.

I would argue that the requirement for an inclusion dependency that is due to the failure for a denial of the dependent to deny the determinant is differs from the other interrelational constraints that would be required for a goal of equivalence in that the one describes a 1:1 relationship, and the absence of the inclusion dependency changes the relationship to 1:0..1; whereas the other interrelational constraints are similar to "whenever there is a value for X, there must be at least one value for Y," which describes a 1:1..n relationship, and the absence of one of those other interrelational constraints changes the relationship to 1:0..n.

I'm not sure if the last paragraph is coherent. I'm a little bit tired right now.

> -- Jan Hidders
>
Received on Sat Aug 18 2007 - 09:26:37 CEST

Original text of this message