Re: BCNF: superkey or candidate key ?

From: Bob Badour <>
Date: Mon, 25 Sep 2006 13:41:56 GMT
Message-ID: <E0RRg.38697$>

Jan Hidders wrote:

> Bob Badour wrote:

>>Jan Hidders wrote:
>>> wrote:
>>>>"Database In Depth", C.J. Date, May 2005, p.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.
>>>>"Database Modeling and Design", 4th Ed., Torey/Lightstone/Nadeau, Sep 2005,
>>>>A table R is in Boyce-Codd normal form (BCNF) if for every nontrivial FD X
>>>>-> A, X is a superkey.
>>>>"Fundamentals of Database Systems", 5th Ed., Elmasri/Navathe, May 2006,
>>>>A relation schema R is in BCNF if whenever a nontrivial functional
>>>>dependency X -> A holds in R, then X is a superkey of R.
>>>Of course, those are the standard definitions, but you claimed that you
>>>had seen one that said:
>>>"Previously he (and others) defined it where A had to be a candidate
>>>(which is irreducible)."
>>>So a definition like: A relation schema R is in BCNF if whenever a
>>>nontrivial functional
>>>dependency A -> X holds in R, then A is a candidate key of R.
>>>That would not be equivalent to the standard definitions, so I wondered
>>>where you had seen such a definition.
>>If A is a candidate key, then a functional dependency of the form B -> X
>>would hold where B is any superkey of A. Would it not?
> Yes, it would. But note that the definition above requires that *for
> all* non-trivial dependencies of the form A->X it holds that A is a
> candidate key.

Exactly, which was my point. Stating it as a candidate key generally ceates a contradiction unless we accept the unreasonable limitation that every candidate key comprises a superset of the relation's attributes. Hence the familiar definition in terms of superkeys instead. Received on Mon Sep 25 2006 - 15:41:56 CEST

Original text of this message