Re: circular relationships ok?

From: Brian Selzer <brian_at_selzer-software.com>
Date: Sat, 04 Mar 2006 18:59:51 GMT
Message-ID: <HslOf.36910$Jd.13643_at_newssvr25.news.prodigy.net>


"vc" <boston103_at_hotmail.com> wrote in message news:1141482283.707960.89280_at_p10g2000cwp.googlegroups.com...
>
> Brian Selzer wrote:
>> "vc" <boston103_at_hotmail.com> wrote in message
>> news:1141397694.943802.23190_at_t39g2000cwt.googlegroups.com...
>> >
>> > Brian Selzer wrote:
>> >>[...]
>> >> if a and b are values
>> >> for A and B respectively in a tuple of R, a implies b and b implies a,
>> >> therefore, a iff b.
>> >
>> > That does not make any obvious sense. What do you mean by '[value] a
>> > implies [value] b' ? Are you considering only the Boolean domain ?
>> >
>>
>> A key is a set of attribute values, or facts. A set of facts is a
>> proposition in conjuctive normal form.
>
> It's not, but let's pass on it.
>

An attribute value is a factual statement. For example, "Attribute A has value 10." Perhaps you use a different definition for conjuctive normal form, or maybe I should have reversed the order: a proposition in conjunctive normal form is a set of facts. I guess you could quibble over whether or not a fact is a statement. I guess that's one way to look at it, since a proposition is a stated fact, or rather a statement of fact, emphasizing the act of declaration. In that case, I should change the wording: A key is a set of attribute values, or factual statements. A proposition in conjuctive normal form is a set of factual statements.

>>Therefore, a functional dependency
>> is essentially a logical implication. For example, assume that a tuple
>> in a
>> relation with the attributes A, B, and C has values a, b, and c
>> respectively. Then the following statements are true: A has value a. B
>> has
>> value b. C has value c. If {A, B} is a candidate key, then the statement
>> "A
>> has value a, and B has value b." implies the statement "C has value c."
>> because by definition, the value of a candidate key determines all other
>> values in a tuple.
>
> So what you are trying to say is that since, e.g., X=10 and Y=10, we
> can write (X=10) <--> (Y=10). So why do you use the fancy notation to
> express such trivial idea ?
>
> Now, with your three relations R, S, T you have six sets representing
> columns A, B, C:
>
> Ar, Br, As, Bs, At, Bt.
>
> So while it's true that, say, As=Bs, it's not generally true that
> Br=Bs unless you stipulate so. Therefore,
>
> "Consequently, a iff b iff c."
>
> still does not make any obvious sense.
>

Because there are functional dependencies A --> B, B --> C and C --> A in R, S, and T respectively and foreign key constraints R(B) --> S(B), S(C) --> T(C) , T(A) --> R(A), the existence of a tuple in R requires that exactly one tuple exists in S that has the same value for attribute B, the existence of that tuple in S requires that exactly one tuple exists in T that has the same value for attribute C, and the existence of that tuple in T requires that exactly one tuple exists in R that has the same attribute value for A. Therefore, since the value for A determines the value for B and the value for B determines the value for C then the value for A determines the value for C, so in T, both A and C must be candidate keys. It follows then that in R, both A and B must be candidate keys, and in S, both B and C must be candidate keys. This means that a 1:1:1 relationship must exist between tuples in R, S, and T. Received on Sat Mar 04 2006 - 19:59:51 CET

Original text of this message