Re: BCNF: superkey or candidate key ?
From: Bob Badour <bbadour_at_pei.sympatico.ca>
Date: Mon, 25 Sep 2006 13:41:56 GMT
Message-ID: <E0RRg.38697$9u.331883_at_ursa-nb00s0.nbnet.nb.ca>
>>Jan Hidders wrote:
>>
>>>masong_at_sbcglobal.net 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,
>>>>p.115:
>>>>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,
>>>>p.368:
>>>>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
>>>key
>>>(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?
Date: Mon, 25 Sep 2006 13:41:56 GMT
Message-ID: <E0RRg.38697$9u.331883_at_ursa-nb00s0.nbnet.nb.ca>
Jan Hidders wrote:
> Bob Badour wrote: >
>>Jan Hidders wrote:
>>
>>>masong_at_sbcglobal.net 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,
>>>>p.115:
>>>>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,
>>>>p.368:
>>>>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
>>>key
>>>(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