If a relation with a schema R is decomposed into two relations R1 and R2 such…

2012

If a relation with a schema R is decomposed into two relations R1 and R2 such that (R1 ∪ R2) = R, then which one of the following is to be satisfied for a lossless join decomposition (→ indicates functional dependency)?

Answer: A. R1 ∩ R2 → R1 or R1 ∩ R2 → R2ConceptA decomposition of a schema R into two fragments R1 and R2, with R1 ∪ R2 = R, is called lossless (non-additive) when the natural join R1 ⋈ R2 returns…

  1. A.

    R1 ∩ R2 → R1 or R1 ∩ R2 → R2

  2. B.

    R1 ∩ R2 → R1

  3. C.

    R1 ∩ R2 → R2

  4. D.

    R1 ∩ R2 → R1 and R1 ∩ R2 → R2

Attempted by 102 students.

Show answer & explanation

Correct answer: A

Concept

A decomposition of a schema R into two fragments R1 and R2, with R1 ∪ R2 = R, is called lossless (non-additive) when the natural join R1 ⋈ R2 returns exactly the original relation — no spurious tuple is created.

The standard test is stated on the shared attributes: the decomposition is lossless if and only if the common attribute set R1 ∩ R2 functionally determines the whole of at least one fragment. As a functional dependency, at least one of R1 ∩ R2 → R1 and R1 ∩ R2 → R2 must be implied by F+; equivalently, R1 ∩ R2 must be a superkey of R1 or a superkey of R2.

Applying it to this decomposition

  1. The natural join is computed over the shared attributes R1 ∩ R2, so those attributes are the only link between the two fragments.

  2. Suppose R1 ∩ R2 → R2 holds. Then any value of the shared attributes occurs in at most one tuple of R2, so each tuple of R1 finds at most one partner there and the join cannot manufacture extra combinations.

  3. The argument is symmetric: if instead R1 ∩ R2 → R1 holds, each tuple of R2 finds at most one partner in R1, and the join is again exact.

  4. Either dependency on its own is therefore sufficient, so the condition to be satisfied is the disjunction R1 ∩ R2 → R1 or R1 ∩ R2 → R2.

Cross-check with an example

Take R(A, B, C) with the single dependency A → B, decomposed into R1(A, B) and R2(A, C). Here R1 ∩ R2 = {A}.

  • A → B gives A → AB, so A → R1 holds and the join over A reconstructs R exactly.

  • A → R2, that is A → AC, need not hold, because C is not determined by A.

  • So a decomposition can be lossless while only one of the two dependencies is present: demanding both would wrongly reject this valid case, and naming one fixed side would wrongly reject the mirror-image case in which the shared attributes are a superkey of the other fragment instead.

Hence the condition required for a lossless join decomposition is R1 ∩ R2 → R1 or R1 ∩ R2 → R2.

Explore the full course: Nta Ugc Net Paper 2

Loading lesson…