Related Articles

Related Articles

Difference between Lossless and Lossy Join Decomposition
  • Difficulty Level : Medium
  • Last Updated : 16 Apr, 2020

The process of breaking up of a relation into smaller subrelations is called Decomposition. Decomposition is required in DBMS to convert a relation into specific normal form which further reduces redundancy, anomalies and inconsistency in the relation.

There are mainly two types of decompositions in DBMS-

  1. Lossless Decomposition
  2. Lossy Decomposition

Difference Between Lossless and Lossy Join Decomposition :

Lossless Lossy
The decompositions R1, R2, R2…Rn for a relation schema R are said to be Lossless if there natural join results the original relation R. The decompositions R1, R2, R2…Rn for a relation schema R are said to be Lossy if there natural join results into additon of extraneous tuples with the the original relation R.
Formally, Let R be a relation and R1, R2, R3 … Rn be it’s decomposition, the decomposition is lossless if –



 R1 ⨝ R2 ⨝ R3 .... ⨝ Rn = R
Formally, Let R be a relation and R1, R2, R3 … Rn be it’s decomposition, the decomposition is lossy if –

 R ⊂ R1 ⨝ R2 ⨝ R3 .... ⨝ Rn
There is no loss of information as the relation obtained after natural join of decompositions is equivalent to original relation.Thus, it is also referred to as non-additive join decomposition There is loss of information as extraneous tuples are added into the relation after natural join of decompositions. Thus, it is also referred to as careless decomposition.
The common attribute of the sub relations is a superkey of any one of the relation. The common attribute of the sub relation is not a superkey of any of the sub relation.

Example-1:
Example to check whether given Decomposition Lossless Join Decomposition.

Let there be a relational schema R(A, B, C). R1(A, B) and R2(B, C) be it’s decompositions.

R
A B C
a1 b1 c1
a2 b1 c1
a1 b2 c2
R1
A B
a1 b1
a2 b1
a1 b2
R2
B C
b1 c1
b1 c1
b2 c2

Now for the decomposition to be lossless,

R1 ⨝ R2 = R then, R1 ⨝ R2  is
R1 ⨝ R2
A B C
a1 b1 c1
a2 b1 c1
a1 b2 c2
As, R1 ⨝ R2 = R, 

This decomposition is Lossless.

Example-2:
Example to check whether given Decomposition Lossy Join Decomposition.

Let there be a relational schema R(A, B, C). R1(A, B) and R2(A, C) be it’s decompositions.

R
A B C
a1 b1 c1
a2 b1 c1
a1 b2 c2
a1 b3 c3
R1
A B
a1 b1
a2 b1
a1 b2
a1 b3
R2
A C
a1 c1
a2 c1
a1 c2
a1 c3

Now for the decomposition to be lossy,

R ⊂ R1 ⨝ R2 then, R1 ⨝ R2  is
R1 ⨝ R2
A B C
a1 b1 c1
a1 b1 c2
a2 b1 c1
a1 b2 c2
a1 b2 c1
a1 b3 c3
a1 b3 c1
As, R ⊂ R1 ⨝ R2, 

This decomposition is Lossy.

Thus, we can figure out whether a decomposition is lossless or lossy.

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
Recommended Articles
Page :