BCNF is not used for cases where a relation has

20072007

BCNF is not used for cases where a relation has

  1. A.

    Two (or more) candidate keys

  2. B.

    Two candidate keys and composite

  3. C.

    The candidate key overlap

  4. 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.

Explore the full course: Isro