Re: multivalued dependency definition

From: Josh Hewitt <lajos.nagy_at_gmail.com>
Date: 22 Sep 2004 15:45:06 -0700
Message-ID: <1c92edeb.0409221445.490f05ce_at_posting.google.com>


"Mikito Harakiri" <mikharakiri_at_iahu.com> wrote in message news:<fw54d.60$jy1.194_at_news.oracle.com>...
> Or should I title it "question to Jan?"
>
> Could standard definition
>
> FORANY t1,t2 t1.x=t2.x -->
> EXISTS t3,t4 t3.x=t4.x=t2.x & t3.y=t1.y & t3.z=t2.z & t4.y = t2.y &
> t4.z=t1.z
>
> be reduced to just
>
> FORANY t1,t2 t1.x=t2.x -->
> EXISTS t3 t3.x=t2.x & t3.y=t1.y & t3.z=t2.z
>
> ?

Yes, it can be.

Short explanation:

If the second definition holds for the relation that means that it is true for *any* pair of tuples t1 and t2. You can get the first version by exchanging the roles of t1 and t2.

Longer explanation:
Let's suppose that the second version holds for a relation R with attributes x (Course), y (Day), z (Student). If I choose t1 to stand for the tuple (which is in R, of course) {x:Math, y:Mon, z:Allen} and t2 to stand for {x:Math, y:Wed, z:Smith} then there is a t3 in R such that it is equal to {x:Math, y:Mon, z:Smith}.

Since the definition holds for all tuples in the relation we can exchange the instatiations of t1 and t2. So let t1 be {x:Math, y:Wed, z:Smith} and t2 be {x:Math, y:Mon, z:Allen}. If the definition is true then there must be a t3 {x:Math, y:Wed, z:Allen} in R.

You might have noticed that the 'second' t3 is exactly t4 from the first version of the definition. (The second version implies the first.)

Thank Dr. Ullman and his Principles of Database Systems :)

Regards,

Josh Hewitt

From Ullman: Principles of Database Systems Received on Thu Sep 23 2004 - 00:45:06 CEST

Original text of this message