Skip to main content

Lossless and dependency preserving check 5

Short answer

Lossless (common C is key for R2) and dependency preserving: all FDs A→B, B→C, C→D are retained in R1 and R2.

R (A, B, C, D), R1 = (A, B, C), R2 = (C, D). F = {A → B, B → C, C → D}. Check whether the decomposition is lossless and dependency preserving.

R = (A, B, C, D), R1 = (A, B, C), R2 = (C, D), F = {A → B, B → C, C → D}.

Lossless join test

R1 ∩ R2 = {C}. C⁺ = {C, D} = R2, so C → R2 holds: C is a key of R2. The condition (R1 ∩ R2) → R1 or R2 is satisfied.

Chase table:

ABCD
R1aaab
R2bbaa

C → D: both rows have C = a, so D in R1 becomes a. R1 is now all "a".

The decomposition is lossless.

Dependency preservation test

Projections:

  • F1 on (A, B, C): A → B, B → C (and A → C by transitivity)
  • F2 on (C, D): C → D

F1 ∪ F2 contains A → B, B → C and C → D, which are exactly the three FDs of F.

The decomposition is dependency preserving.

Answer: lossless and dependency preserving. Each FD can be checked inside one relation, without a join.

✓ Answer checked by Claude Opus 5.5 (high effort)

All Database Management System chapter 4 questions →