Re: BCNF: superkey or candidate key ?

From: Brian Selzer <brian_at_selzer-software.com>
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

Original text of this message