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?

  1. A.

    A → B, B → CD

  2. B.

    A → B, B → C, C → D

  3. C.

    AB → C, C → AD

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

Explore the full course: Gate Guidance By Sanchit Sir