Skip to content
Related Articles
Lossless Decomposition in DBMS
• Difficulty Level : Hard
• Last Updated : 02 Jun, 2021

Lossless join decomposition is a decomposition of a relation R into relations R1,R2 such that if we perform  natural join of two smaller relations it will return the original relation. 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 element and the criteria for selecting common element is that the common element must be a candidate key or super key in either of 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 this for 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
(C) AB->C, C->AD
(D) A ->BCD

Refer this for solution.

Below is the Quiz of previous year GATE Questions

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above

Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up