Lossless Join & Dependency Preservation in DBMS: Simple Examples & Differences

DBMS Chapter 17 · Decomposition Quality Lab
Lossless Join & Dependency Preservation in DBMS: Simple Examples & Differences

Lossless join and dependency preservation are two checks used after decomposing a relation. A decomposition is lossless when the smaller relations can be joined back to reproduce exactly the original valid relation without creating spurious tuples. A decomposition is dependency-preserving when the original functional dependencies can still be enforced using the smaller relations without joining them first. This chapter explains both concepts from zero, including tests, examples, BCNF and 3NF connections, solved questions and common mistakes.

Lossless vs lossyDependency preservationBinary testInteractive verifierBCNF trade-offChecked: 19 September 2026
Quick answer first

Lossless Join and Dependency Preservation in Simple Words

Lossless Join & Dependency Preservation in DBMS: Simple Examples & Differences

Lossless Join

It protects the data. After splitting a table, joining the smaller tables should give exactly the original valid information.

Dependency Preservation

It protects the rules. Functional dependencies should still be enforceable by checking the smaller tables directly.

One-line memory trick

Lossless = preserve data · Dependency preservation = preserve rules

These ideas come after normalization and BCNF. Revise Normalization in DBMS, Functional Dependency in DBMS and BCNF in DBMS if those basics are not clear yet.

Start with decomposition

What Is Decomposition in DBMS?

Decomposition means splitting one relation into smaller relations to reduce redundancy or satisfy a normal form while trying to keep the original information and constraints intact.

Original relation

R(Student_ID, Student_Name, Dept_ID, Dept_Name)

Smaller relations

STUDENT(Student_ID, Student_Name, Dept_ID)
DEPARTMENT(Dept_ID, Dept_Name)

A decomposition is not automatically good just because the tables are smaller. We must check its quality.

Part 01 · lossless join

What Is Lossless Join Decomposition?

A decomposition is lossless when joining the decomposed relations gives exactly the original valid relation. No valid information should disappear, and no false combinations should be created.

R(A, B, C)

Decompose into:
R1(A, B)
R2(B, C)

If R1 JOIN R2 reconstructs exactly R, the decomposition is lossless.

R1 JOIN R2 = original R
What can go wrong

Lossy Decomposition and Spurious Tuples

A decomposition is lossy when joining the smaller relations does not reconstruct the original relation correctly. A common problem is the creation of extra false rows.

Spurious tuples are extra rows produced by a join that were not valid tuples of the original relation.

Lossless

The join gives the intended original information only.

Lossy

The join can create incorrect combinations called spurious tuples.

Most important exam test

Binary Lossless Join Test

If relation R is decomposed into R1 and R2, the decomposition is lossless with respect to F when the common attributes functionally determine all attributes of at least one decomposed relation.

(R1 ∩ R2) → R1
or
(R1 ∩ R2) → R2

R1 ∩ R2 means the attributes common to both relations.

Shortcut

Common attributes must determine one complete side
Solved lossless example

Lossless Join Example Step by Step

R(A, B, C)
F = { A → B }

R1(A, B)
R2(A, C)
Find the common attributesR1 ∩ R2 = {A}.
Use the functional dependenciesA → B is given.
Check one whole sideA already contains A and determines B, so A → AB.
Give the verdictA determines all attributes of R1, so the decomposition is lossless.
Compare with a failing case

Lossy Join Example

R(A, B, C)
F = { A → B }

R1(A, C)
R2(B, C)

The common attribute is C. But C does not determine all attributes of R1 or R2 under the given FD set.

Verdict

Lossy with respect to the given functional dependencies
Interactive visual practice

Decomposition Quality Verifier

Case 1: Good on both tests

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

Verdict

Lossless and dependency-preservingB is common and B→C makes B determine R2. Also A→B stays in R1 and B→C stays in R2.
PASS BOTH TESTS
Part 02 · preserve functional dependencies

What Is Dependency Preservation?

A decomposition is dependency-preserving when the original functional dependencies can be enforced using the decomposed relations individually, without joining them first.

R(A, B, C)
F = { A → B, B → C }

R1(A, B)
R2(B, C)

A → B can be checked inside R1 and B → C can be checked inside R2. Therefore the decomposition preserves the dependencies.

Can every important rule still be checked locally?
Formal idea made simple

Projected Functional Dependencies

After decomposition, each smaller relation keeps the functional dependencies that involve only attributes available in that relation. These are called projected dependencies.

F1 = projection of F on R1
F2 = projection of F on R2
...
Fn = projection of F on Rn

In formal terms, a decomposition is dependency-preserving when the projected dependencies together imply the original functional dependencies.

(F1 ∪ F2 ∪ ... ∪ Fn)+ = F+

For most beginner questions, the practical method is easier: check whether each original FD can be enforced directly or derived from the projected FDs.

Preserving example

Dependency-Preserving Decomposition Example

R(A, B, C)
F = { A → B, B → C }

R1(A, B)
R2(B, C)
Original FDCan be checked inPreserved?
A → BR1(A,B)Yes
B → CR2(B,C)Yes

Both original rules remain local, so the decomposition is dependency-preserving.

When a rule gets separated

Non-Dependency-Preserving Example

R(A, B, C)
F = { A → B, B → C }

R1(A, B)
R2(A, C)

A → B can be checked in R1. Because A → B and B → C, A → C is also implied and can appear in the projection on R2.

But B → C cannot be derived from the projected dependencies without combining information across the decomposed relations.

Verdict

Not dependency-preserving
Core comparison

Lossless Join vs Dependency Preservation

PointLossless JoinDependency Preservation
Main concernInformationFunctional-dependency rules
Main questionCan we join back exactly?Can we enforce FDs locally?
Failure causesWrong reconstruction or spurious tuplesSome rules require joining relations
Typical testCommon attributes determine one sideProjected dependencies imply original FDs
PriorityEssentialHighly desirable
Lossless protects data · Dependency preservation protects rules
Important independence

Can a Decomposition Be Lossless but Not Dependency-Preserving?

Yes. A decomposition may reconstruct the original relation correctly but still separate an original functional dependency across two relations.

This is an important trade-off in BCNF. BCNF decomposition is lossless, but dependency preservation is not guaranteed.

Connection with BCNF

BCNF Example: Lossless but Not Dependency-Preserving

R(A, B, C)
F = { AB → C, C → B }

BCNF decomposition using C → B gives:

R1(C, B)
R2(A, C)

The common attribute is C, and C determines all of R1, so the decomposition is lossless.

But the original dependency AB → C is not contained inside either smaller relation and is not enforceable locally from their projected dependencies. So dependency preservation is lost.

For the full BCNF rule, revise BCNF in DBMS: 3NF vs BCNF.

Why 3NF still matters

3NF and Dependency Preservation

The standard 3NF synthesis method can produce a dependency-preserving decomposition. It can also be made lossless by ensuring that a relation containing a candidate key is present when needed.

3NF

Slightly less strict, but dependency-preserving decomposition is achievable.

BCNF

Stronger control of dependency-based redundancy, but dependency preservation may be lost.

All four quality outcomes

Possible Decomposition Results

Lossless + PreservingBest case: both data and rules are safe.
Lossless + Not PreservingData is safe, but some rules need joins to check.
Lossy + PreservingRules may remain local, but reconstruction is unsafe.
Lossy + Not PreservingBoth reconstruction and rule enforcement are poor.
Essential propertyLossless join should not be sacrificed.
Desirable propertyDependency preservation makes constraint checking simpler.
Advanced note

What Is the Chase Test?

For decompositions involving more than two relations, textbooks may use the chase or tableau test to test losslessness. It uses symbolic rows and repeatedly applies functional dependencies to see whether the decomposition can reconstruct a valid original row.

You normally do not need the chase for simple two-relation questions because the intersection test is much easier.

Exam-solving method

How to Test a Decomposition Step by Step

Write R and all FDsNever test decomposition without the dependency set.
Write R1, R2 and other decomposed relationsKeep their attributes clear.
Test losslessnessFor two relations, find the common attributes and check whether they determine one complete side.
Project the FDsIdentify which dependencies hold entirely inside each smaller relation.
Test dependency preservationCheck whether projected dependencies can imply every original FD.
Write separate verdictsDo not combine the two properties into one statement.
Solved question

Complete Solved Example

Given:

R(A, B, C)
F = { A → B, B → C }

Decomposition:
R1(A, B)
R2(B, C)

Lossless test

The common attribute is B. Since B → C, B determines all attributes of R2. Therefore the decomposition is lossless.

Dependency-preservation test

A → B is in R1 and B → C is in R2. Therefore both original dependencies can be enforced locally.

Final verdict: Lossless + Dependency-preserving
Common errors

Mistakes to Avoid

Thinking lossless means no rows were deletedLossless is about correct reconstruction after decomposition.
Ignoring spurious tuplesExtra false tuples are a sign of a lossy decomposition.
Checking intersection without FDsThe common attributes must functionally determine one side.
Confusing the two propertiesLossless protects data; dependency preservation protects rules.
Looking only at direct projected FDsUse inference and closure when needed.
Assuming BCNF preserves every dependencyIt does not always.
Accepting lossy decompositionEven preserved FDs do not make lossy reconstruction acceptable.
Giving one verdict onlyState both results separately.
Write according to marks

How to Write This Topic in Semester Exams

2 marks

Definitions

Define lossless join and dependency preservation in one or two lines.

5 marks

Rule + example

Write the binary lossless condition and one dependency-preservation example.

8-10 marks

Full answer

Explain lossy join, spurious tuples, FD projection, BCNF trade-off and solve one complete decomposition.

For answer presentation, use How to Write High-Scoring Answers in University Semester Exams. For revision priority, use the previous-year-paper method.

Practice with answers

Practice Questions With Answers

1. What is lossless join decomposition?

It is a decomposition in which joining the smaller relations reconstructs exactly the original valid relation without creating spurious tuples.

2. What is dependency preservation?

It means the original functional dependencies can be enforced using the decomposed relations individually.

3. What are spurious tuples?

They are incorrect extra tuples created when decomposed relations are joined after a lossy decomposition.

4. What is the binary lossless join condition?

The common attributes of R1 and R2 must functionally determine all attributes of R1 or all attributes of R2.

5. Can a decomposition be lossless but not dependency-preserving?

Yes. This can happen in BCNF decomposition.

6. What is a projected functional dependency?

It is a dependency that holds using only attributes of one decomposed relation.

7. Does BCNF always preserve dependencies?

No. BCNF decomposition may be lossless while failing to preserve some original dependencies locally.

8. Why is 3NF useful if BCNF is stronger?

3NF can preserve dependencies while still removing most important redundancy.

9. Which property is essential?

Lossless join is essential because the decomposition must preserve the original information correctly.

10. What should I study next?

Study multivalued dependency, 4NF, join dependency and 5NF.

60-second revision

One-Minute Revision Sheet

DecompositionSplit one relation into smaller relations.
Lossless JoinJoin reconstructs exactly the original valid information.
Lossy JoinReconstruction can create wrong results.
Spurious TupleFalse tuple created by a bad join.
Binary TestCommon attributes determine one whole relation.
Dependency PreservationOriginal FDs remain locally enforceable.
ProjectionFDs applicable inside a smaller relation.
BCNFLossless but may not preserve all dependencies.
3NFDependency-preserving decomposition is achievable.
Best goalLossless first, dependency-preserving when possible.
Lossless asks “Can I rebuild the data?” · Dependency preservation asks “Can I still enforce the rules?”
Frequently asked questions

Frequently Asked Questions

What is lossless join in DBMS in simple words?

A lossless join means that after splitting a relation, joining the smaller relations reproduces the original valid relation without adding false tuples.

What is dependency preservation in DBMS?

Dependency preservation means the original functional dependencies can still be checked and enforced using the decomposed relations individually.

What is the lossless join test for two relations?

The common attributes must functionally determine all attributes of R1 or all attributes of R2.

What is the difference between lossless join and dependency preservation?

Lossless join protects information, while dependency preservation protects the ability to enforce functional-dependency rules locally.

Can BCNF decomposition lose dependency preservation?

Yes. BCNF decomposition can be lossless while some original dependencies are no longer enforceable inside a single decomposed relation.

What should I study after this topic?

Continue with multivalued dependency, Fourth Normal Form, join dependency and Fifth Normal Form.

Next chapter

What Should You Learn Next?

Tags

Post a Comment

0 Comments
* Please Don't Spam Here. All the Comments are Reviewed by Admin.
Join Telegram Exam updates and free resources