R(A, B, C, D) is a relation. Which of the following does not have a lossless…
2001
R(A, B, C, D) is a relation. Which of the following does not have a lossless join, dependency preserving BCNF decomposition?
- A.
A → B, B → CD
- B.
A → B, B → C, C → D
- C.
AB → C, C → AD
- D.
A → BCD
Attempted by 148 students.
Show answer & explanation
Correct answer: C
To determine which set of functional dependencies does not allow a lossless join, dependency-preserving BCNF decomposition, we must check each option for BCNF violations and assess whether a decomposition can preserve all dependencies while maintaining lossless join.
BCNF requires that for every functional dependency X → Y, X must be a superkey.
Option 0: A → B, B → CD
A is not a superkey (A+ = {A,B,C,D} only if B → CD holds, but B is not a superkey). B is not a superkey (B+ = {B,C,D}). Both dependencies violate BCNF. Decomposing to preserve dependencies may break lossless join.
Option 1: A → B, B → C, C → D
A is not a superkey. B is not a superkey. C is not a superkey. All dependencies violate BCNF. No single decomposition can preserve all dependencies and maintain lossless join.
Option 2: AB → C, C → AD
AB → C: AB is a superkey (AB+ = all attributes), so this is valid. C → AD: C is not a superkey (C+ = {C,A,D}), so this violates BCNF. Any BCNF decomposition will break dependency preservation or lose lossless join.
Option 3: A → BCD
A → BCD: A is a superkey (A+ = all attributes), so this is in BCNF. No other dependencies. A single relation suffices, preserving dependencies and ensuring lossless join.
Thus, the option that does not allow a lossless join, dependency-preserving BCNF decomposition is the one where BCNF violation prevents both goals from being achieved simultaneously.
A video solution is available for this question — log in and enroll to watch it.