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-
- Lossless Decomposition
- Lossy Decomposition
Difference Between Lossless and Lossy Join Decomposition :
|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 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.
Now for the decomposition to be lossless,
R1 ⨝ R2 = R then, R1 ⨝ R2 is
As, R1 ⨝ R2 = R,
This decomposition is Lossless.
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.
Now for the decomposition to be lossy,
R ⊂ R1 ⨝ R2 then, R1 ⨝ R2 is
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.