Re: BCNF: superkey or candidate key ?

From: Jan Hidders <>
Date: 26 Sep 2006 00:56:06 -0700
Message-ID: <> wrote:
> "An Introduction to Database Systems", 8th Ed., C.J. Date, Jul 2003, p.368:
> A relvar in in BCNF if and only if every nontrivial, left-irreducible FD has
> a candidate key as its determinant.
> Or less formally:
> A relvar is in BCNF if and only if every determinant is a candidate key.

The less formal version is not correct, it should mention somehow that the determinant is somehow irreducible, otherwise it can be very misleading. This thread proves that. :-)

> To me the first definition dismisses the case where there are NO nontrivial
> FDs and the relation schema should be deemed BCNF.

All correct definitions consider that case to be in BCNF.

> The ones that seem most
> appealing are those such as the following (I think these come originally
> from Zaniolo).
> "Database System Concepts", 5th Ed, Silberschatz/Korth/Sudarshan, May 2005,
> p.272:
> A relation scheme R is in BCNF with respect to a set F of function
> dependencies if, for all functional dependencies in F+ of the form A ->B,
> where A is a subset of R and B is a subset of R, at least one of the
> following holds:
> (a) A -> B is a trivial functional dependency (that is, B is a supset of A).
> (b) A is a superkey for schema R.

This one's equivalent with all the others you gave. You can see in Brian's post why.

> So an R that has only a two-field primary key, is in BCNF.

I assume you are talking about the case where R has only two columns. Indeed, then it has only trivial FDs and is in BCNF. All the definitions agree on that, of course, because they are equivalent.

  • Jan Hidders
Received on Tue Sep 26 2006 - 09:56:06 CEST

Original text of this message