Let R(A,B,C,D) be a relational schema with the following functional…

2023

Let R(A,B,C,D) be a relational schema with the following functional dependencies:A→B, B→C, C→D, and D→B

The decomposition of R into(A,B), (B,C), (B,D)

  1. A.

    gives a lossless join, and is dependency preserving

  2. B.

    gives a lossless join, but is not dependency preserving

  3. C.

    does not give a lossless join, but is dependency preserving

  4. D.

    does not give a lossless join and is not dependency preserving

Attempted by 263 students.

Show answer & explanation

Correct answer: A

Conclusion: The decomposition into (A,B), (B,C), (B,D) gives a lossless join and is dependency preserving.

Lossless-join proof:

  • Join (A,B) and (B,C): the common attribute is B. Since B→C holds, B is a key for (B,C), so the join is lossless and yields (A,B,C).

  • Join (A,B,C) with (B,D): the common attribute is B. B→D follows from B→C and C→D, so B is a key for (B,D) and this join is lossless, yielding (A,B,C,D).

Therefore the full decomposition is lossless.

Dependency preservation:

  • A→B is preserved directly in the (A,B) relation.

  • B→C is preserved directly in the (B,C) relation.

  • D→B is preserved directly in the (B,D) relation.

  • C→D is preserved by the union of projected dependencies: from the original set C→D and D→B we get C→B, which appears in the projection onto (B,C); B→D appears in the projection onto (B,D). Combining C→B (from (B,C)) and B→D (from (B,D)) yields C→D, so the original dependency is preserved by the projected FDs.

Because every original functional dependency is either present in a single decomposed relation or is implied by the union of projected dependencies, the decomposition is dependency preserving.

A video solution is available for this question — log in and enroll to watch it.

Explore the full course: Mppsc Assistant Professor