Re: BCNF: superkey or candidate key ?
Date: 26 Sep 2006 00:56:06 -0700
> "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,
> 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.
- Jan Hidders