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)
- A.
gives a lossless join, and is dependency preserving
- B.
gives a lossless join, but is not dependency preserving
- C.
does not give a lossless join, but is dependency preserving
- 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.