Consider a relation R(A,B,C,D,E,F,G) with a set of functional dependencies:…
Consider a relation R(A,B,C,D,E,F,G) with a set of functional dependencies:
F={AD→BF, CD→EGC, BD→F, E→D, F→C, D→F}
The relation R is decomposed into the following two relations after finding the minimal cover for the above set of functional dependencies: R1(A,B,C,D,E), R2(A,D,F,G)
Use the functional dependencies in the minimal cover to determine the nature of this decomposition and find the correct statement below:
Answer: D. Decomposition is lossless and not dependency preserving — Check lossless join: Common attributes between R1(A,B,C,D,E) and R2(A,D,F,G): {A, D}. Compute closure of {A, D}: From AD → B,F add B and F. From F → C add C.…
- A.
Decomposition is lossless and dependency preserving
- B.
Decomposition is lossy and dependency preserving
- C.
Decomposition is lossy and not dependency preserving
- D.
Decomposition is lossless and not dependency preserving
Attempted by 20 students.
Show answer & explanation
Correct answer: D
Check lossless join:
Common attributes between R1(A,B,C,D,E) and R2(A,D,F,G): {A, D}.
Compute closure of {A, D}:
From AD → B,F add B and F.
From F → C add C.
With C and D, CD → E,G adds E and G.
Thus AD+ = {A, B, C, D, E, F, G} (all attributes). Therefore AD is a key and the decomposition is lossless.
Check dependency preservation:
Relevant minimal set of dependencies (after splitting right-hand sides and removing redundant FDs): AD → B, D → F, F → C, CD → E, CD → G, E → D.
Project these onto R1(A,B,C,D,E): AD → B, CD → E, E → D (F → C and D → F are not inside R1).
Project these onto R2(A,D,F,G): D → F (AD → B, CD → E, etc. are not inside R2).
Union of projected dependencies contains AD → B and D → F, so AD → B,F can be derived. However, F → C is not present in the union: computing F+ under the union gives only {F} (no rule with LHS F), so C cannot be derived.
Therefore the dependency F → C is not preserved by the decomposition.
Final conclusion:
The decomposition is lossless (AD is a key) but not dependency preserving (F → C cannot be enforced from the projected dependencies).