Re: "Armstrong's axioms" augmentation - help plz

From: Dan <guntermann_at_verizon.com>
Date: Wed, 09 Mar 2005 07:10:18 GMT
Message-ID: <ujxXd.74292$uc.57954_at_trnddc08>


"Jan Hidders" <jan.hidders_at_REMOVETHIS.pandora.be> wrote in message news:np4Xd.32216$ub7.3221532_at_phobos.telenet-ops.be...
> love boat via DBMonster.com wrote:
>> I understand the Augmentation rule:
>> { X -> Y } |= XZ -> YZ
>>
>> but I don't understand why the rule can also be stated as:
>>
>> { X -> Y } |= XZ -> Y
>>
>> Why is this?
>
> It cannot.
A simple proof by contradiction should prove that it an equivalent statement of the augmentation rule.

Suppose that X->Y holds, but XZ -> Y does not. Thus, for any two arbitrary tuples in a relation we assume,

  1. t1[X] = t2[X];
  2. t1[Y]=t2[Y];
  3. t1[XZ] = t2[XZ];
  4. but by our supposition, t1[Y] <> t2[Y].

However we see that this (4) cannot be true, since by 2) we see that t1[Y] does equal t2[Y].

Unless I'm missing something obvious, it seems to me that paul c. got this right.

*Note: my proof is a variant of a proof of augmentation given by Elmasri and Navathe, Fundamentals of Database Systems (3rd. ed) p. 479

Make sense?

If you replace the first rule with the second you will not
> derive all FDs that hold.

  1. XZ->Y (given)
  2. X->XZ (reflixivity)
  3. X->Y (transitivity)
  4. XZ-YZ (augmentation)

If we can get back to the first rule from the second, I'm not sure I understand how we will miss deriving (inferring) all FDs that would have held with just the first rule.

  • Dan

> -- Jan Hidders
Received on Wed Mar 09 2005 - 08:10:18 CET

Original text of this message