Re: Sixth normal form
From: Brian Selzer <brian_at_selzer-software.com>
Date: Sun, 19 Aug 2007 04:03:16 GMT
Message-ID: <8iPxi.28363$RX.22026_at_newssvr11.news.prodigy.net>
>> "Jan Hidders" <hidd..._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.
Date: Sun, 19 Aug 2007 04:03:16 GMT
Message-ID: <8iPxi.28363$RX.22026_at_newssvr11.news.prodigy.net>
"JOG" <jog_at_cs.nott.ac.uk> wrote in message news:1187485136.226999.22730_at_w3g2000hsg.googlegroups.com...
> On Aug 18, 8:26 am, "Brian Selzer" <br..._at_selzer-software.com> wrote:
>> "Jan Hidders" <hidd..._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.
> > > Does anyone else understand any of this? Am I losing the plot -' > Individuals', 'denial of existence', etc, etc... what on earth does > any of this have to do with the price of fish? Sigh, I remember the > good ol' days of logical models. Propositions with roles and values. > Predicates describing which of these propositions were acceptable. > Looks like they've gone the way of betamax, walkmans, and those darned > talented kids from Fame. I wonder if they ever did learn how to fly. >
To deny the existence of an individual represented by a particular value, one need only issue a delete or a multiple delete that targets every tuple in which that particular value appears. I would have thought this obvious, but it appears I am mistaken.
The balance of your post does not make any sense. In what way does what I posted deny the import or applicability of propositions, predicates or logical models? Received on Sun Aug 19 2007 - 06:03:16 CEST