Lossless Join Condition for Decomposition of R(A,B,C)R(A,B,C) into R1(A,B)R_1(A,B) and R2(B,C)R_2(B,C)

Lossless Join Condition for Decomposition of R(A,B,C)R(A,B,C) into R1(A,B)R_1(A,B) and R2(B,C)R_2(B,C)

Verified Sources
Sep 12, 2026

Lossless Join Decomposition (BCNF/3NF) - Functional Dependencies & Chase

Let R(A,B,C)R(A,B,C) be decomposed into R1(A,B)R_1(A,B) and R2(B,C)R_2(B,C). The decomposition is lossless join iff the common attribute(s) across the two projections (here, BB) satisfy a condition implied by the functional dependencies (FDs) of RR.

Key theorem (lossless join test): for decomposition into R1(X,Y)R_1(X,Y) and R2(Y,Z)R_2(Y,Z), the join R1R2R_1 \Join R_2 is lossless w.r.t. RR iff the FD(s) (equivalently the implied join dependency) ensure that the shared attributes can determine the “other” attributes under the chase procedure. This is commonly expressed via: either the shared attribute(s) determine the remaining attributes, or—more generally—chase produces a row with all equalities consistent with a chase “success” state.

In our specific case:

  • R1(A,B)R_1(A,B) has attributes (A,B)(A,B)
  • R2(B,C)R_2(B,C) has attributes (B,C)(B,C)
  • The overlap is BB.

So the lossless condition will depend on FDs that let you derive enough equality to prevent spurious tuples.

We’ll connect the choices (i)–(iv) directly to the FD conditions for lossless join.

**keyword="A decomposition where R=πX(R)πY(R)R = \pi_X(R) \Join \pi_Y(R) (no spurious tuples) under FDs/constraints of RR."[Joindependency]def="Aconstraintensuringanaturaljoinofprojectionsrecoverstheoriginalrelation" Join dependency Functional dependency[Chasealgorithm]def="ProceduretotestlosslessjoinbypropagatingequalitiesusingFDs" Chase algorithm

Determine which FD choice guarantees lossless join for $R(A,B,C) \to R_1(A,B), R_2(B,C)$

  1. 1
    Step 1

    The intersection of attribute sets is R1R2={B}R_1 \cap R_2 = \{B\}.

  2. 2
    Step 2

    A standard sufficient condition for lossless join here is: if either shared attribute BB determines the other attribute(s) enough to prevent ambiguity, i.e., either BAB \rightarrow A or BCB \rightarrow C (or a condition that implies both AA and CC are determined through implications).

  3. 3
    Step 3

    Option (i) explicitly states BAB \rightarrow A or BCB \rightarrow C, which is directly a sufficient pattern because it forces the overlap BB to fix the missing component(s) in the join.

  4. 4
    Step 4

    Option (ii) ABA \rightarrow B and option (iii) ACA \rightarrow C and option (iv) CBC \rightarrow B are not the same as having BB determine the missing attributes across the decomposition boundary; they can still imply losslessness in some cases only if combined with other FDs, but among the given single-FD choices, only the ones that directly bind the common attribute BB to the remaining side are guaranteed.

  5. 5
    Step 5

    Therefore, the lossless decomposition is guaranteed by option (i).

Why option (i) works (intuition with spurious tuples)

When you join R1(A,B)R_1(A,B) and R2(B,C)R_2(B,C), spurious tuples would occur if there exists a BB value that can pair with inconsistent AA and CC values not truly tied together in RR.

If BAB \rightarrow A, then for each BB there is at most one AA in any legal instance respecting the FD. So any join result with a given BB must use the unique matching AA, eliminating spurious combinations. Similarly, if BCB \rightarrow C, then for each BB there is at most one CC, also preventing spurious tuples.

Thus either BAB \rightarrow A or BCB \rightarrow C is enough to ensure the join reconstructs RR without adding extra tuples.

**keyword="An extra tuple produced by joining projections that is not present in the original relation under the constraints."$

Quick rule of thumb for this specific decomposition

For R(A,B,C)R(A,B,C) decomposed as R1(A,B)R_1(A,B) and R2(B,C)R_2(B,C), look at the overlap BB. If BAB \rightarrow A or BCB \rightarrow C, the join is lossless (no spurious tuples).

Why (ii), (iii), (iv) are not the guaranteed answers as stated

Having ABA \rightarrow B, or ACA \rightarrow C, or CBC \rightarrow B does not directly ensure that the shared attribute BB uniquely determines the tuple components across the join boundary. Losslessness could still hold only if additional FDs (not listed) are implied. For multiple-choice “which one is sufficient,” (i) is the direct match.

FD options vs. overlap attribute (BB) determining missing side

Directly ties the shared attribute BB to the other attributes, giving a sufficient condition for lossless join.

How to solve any lossless-join multiple-choice fast

Find attribute overlap

1) Decompose

Compute R1R2R_1 \cap R_2 (here, it’s {B}\{B\})."

Use FD structure

2) Apply condition

Check whether the overlap attribute determines the components needed to avoid ambiguity."

Confirm with chase intuition

3) Validate

If the overlap fixes the other attributes, chase will succeed (lossless)."

Knowledge Check

Question 1 of 4
Q1Single choice

For R(A,B,C)R(A,B,C) decomposed into R1(A,B)R_1(A,B) and R2(B,C)R_2(B,C), which FD pattern guarantees a lossless join?