# Lossless Decomposition in DBMS

• Difficulty Level : Hard
• Last Updated : 15 Nov, 2021

Lossless join decomposition is a decomposition of a relation R into relations R1, R2 such that if we perform a natural join of relation R1 and R2, it will return the original relation R. This is effective in removing redundancy from databases while preserving the original data…

In other words by lossless decomposition, it becomes feasible to reconstruct the relation R from decomposed tables R1 and R2  by using Joins.

In Lossless Decomposition, we select the common attribute and the criteria for selecting a common attribute is that the common attribute must be a candidate key or super key in either relation R1, R2, or both.

Decomposition of a relation R into R1 and R2 is a lossless-join decomposition if at least one of the following functional dependencies are in F+ (Closure of functional dependencies)

```
R1 ∩ R2 → R1
OR
R1 ∩ R2 → R2```

Question 1:
Let R (A, B, C, D) be a relational schema with the following functional dependencies:

```A → B, B → C,
C → D and D → B.

The decomposition of R into
(A, B), (B, C), (B, D)```

(A) gives a lossless join, and is dependency preserving
(B) gives a lossless join, but is not dependency preserving
(C) does not give a lossless join, but is dependency preserving
(D) does not give a lossless join and is not dependency preserving

Refer to this for a solution.

Question 2
R(A,B,C,D) is a relation. Which of the following does not have a lossless join, dependency preserving BCNF decomposition?
(A) A->B, B->CD
(B) A->B, B->C, C->D