BCNF is not used for cases where a relation has
20072007
BCNF is not used for cases where a relation has
- A.
Two (or more) candidate keys
- B.
Two candidate keys and composite
- C.
The candidate key overlap
- D.
Two mutually exclusive foreign keys
Attempted by 393 students.
Show answer & explanation
Correct answer: C
Not every relation can be decomposed into BCNF without cost. A dependency-preserving, lossless-join decomposition into 3NF is always achievable, but the same guarantee does not extend to BCNF -- a BCNF decomposition is always lossless-join, yet it can fail to preserve every functional dependency. This gap shows up specifically when a relation's candidate keys overlap, i.e. two or more candidate keys share at least one common attribute.
Consider a relation R(A, B, C) with functional dependencies AB → C and C → B. Here AB and AC are both candidate keys, and they overlap on A. R is in 3NF (C is part of a candidate key), but not in BCNF (C → B violates BCNF since C alone is not a superkey). Decomposing R into BCNF forces splitting off {C, B}; the dependency AB → C can then no longer be checked without rejoining the tables, so dependency preservation is lost. This overlapping-candidate-key situation is exactly the case the question describes.
None of the other listed conditions creates this conflict on its own:
Two (or more) candidate keys — having several candidate keys is ordinary, and as long as they do not overlap, it causes no dependency-preservation problem.
Two candidate keys and composite — a candidate key spanning multiple attributes (a composite key) is likewise unremarkable on its own; the difficulty needs the keys to also share an attribute.
Two mutually exclusive foreign keys — foreign keys govern references between relations, not a relation's own candidate-key structure, so they play no role in this BCNF limitation.
A video solution is available for this question — log in and enroll to watch it.