Re: BCNF: superkey or candidate key ?
Date: Fri, 22 Sep 2006 04:02:13 GMT
Message-ID: <9fJQg.3491$vJ2.1728_at_newssvr12.news.prodigy.com>
"Database In Depth," Page 140:
Relvar R is in BCNF if and only if, for every nontrivial FD A --> B satisfied by R, A is a superkey for R.
This appears different from the definition in "An Introduction to Database Systems, Seventh Edition," Page 366:
A relvar is in BCNF if and only if every nontrivial, left-irreducible FD has a candidate key as its determinant.
But upon close examination, the definitions are equivalent:
If A is a superkey, there is a set of attributes C (possibly empty) in A such that A - C is a candidate key for R.
So by definition, (A - C) --> B holds for R.
Conversely,
(A - C) --> B implies A --> BC (augmentation)
and A --> BC implies A --> B (decomposition).
"Jan Hidders" <hidders_at_gmail.com> wrote in message
news:1158852248.305329.131550_at_h48g2000cwc.googlegroups.com...
>
> masong_at_sbcglobal.net wrote:
>> C.J. Date in a recent text defines BCNF in terms of superkey.
>> ... every nontrivial FD A -> B satisfied by R, A is a superkey for R.
>>
>> Previously he (and others) defined it where A had to be a candidate key
>> (which is irreducible).
>
> Really? Could you give a reference where Date (or someone else) wrote
> that? Sometimes you will find definitions that say something like "if
> every non-trivial left-irreducible FD has a candidate key as its
> determinant" but I've never seen it without the "left-irreducible"
> requirement (or the assumption that your set if FDs is irreducible) and
> that would in fact be incorrect.
>
> So as far as I know the defintions have remained equivalent.
>
> -- Jan Hidders
>
Received on Fri Sep 22 2006 - 06:02:13 CEST