0% found this document useful (0 votes)
288 views3 pages

Lossless Join and Dependency Preserving Decomposition

The document discusses lossless join and dependency preserving decomposition. It defines lossless join decomposition as decomposing a relation such that joining the decomposed relations returns the original relation. It provides three conditions for a lossless join decomposition: 1) the union of attributes of the decomposed relations must equal the attributes of the original relation, 2) the intersection of attributes cannot be null, and 3) the common attribute must be a key for at least one decomposed relation. It also defines dependency preserving decomposition as decomposing a relation such that all dependencies of the original relation are preserved in the decomposed relations.

Uploaded by

Vipul kumar Jha
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
288 views3 pages

Lossless Join and Dependency Preserving Decomposition

The document discusses lossless join and dependency preserving decomposition. It defines lossless join decomposition as decomposing a relation such that joining the decomposed relations returns the original relation. It provides three conditions for a lossless join decomposition: 1) the union of attributes of the decomposed relations must equal the attributes of the original relation, 2) the intersection of attributes cannot be null, and 3) the common attribute must be a key for at least one decomposed relation. It also defines dependency preserving decomposition as decomposing a relation such that all dependencies of the original relation are preserved in the decomposed relations.

Uploaded by

Vipul kumar Jha
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 3

Lossless Join and Dependency Preserving

Decomposition
Decomposition of a relation is done when a relation in relational model is not in
appropriate normal form. Relation R is decomposed into two or more relations if
decomposition is lossless join as well as dependency preserving.
Lossless Join Decomposition
If we decompose a relation R into relations R1 and R2,

 Decomposition is lossy if R1 ⋈ R2 ⊃ R
 Decomposition is lossless if R1 ⋈ R2 = R

To check for lossless join decomposition using FD set, following conditions must
hold:
1. Union of Attributes of R1 and R2 must be equal to attribute of R. Each attribute of
R must be either in R1 or in R2.
Att(R1) U Att(R2) = Att(R)
2. Intersection of Attributes of R1 and R2 must not be NULL.
Att(R1) ∩ Att(R2) ≠ Φ
3. Common attribute must be a key for at least one relation (R1 or R2)
Att(R1) ∩ Att(R2) -> Att(R1) or Att(R1) ∩ Att(R2) -> Att(R2)
For Example, A relation R (A, B, C, D) with FD set{A->BC} is decomposed into R1(ABC)
and R2(AD) which is a lossless join decomposition as:
1. First condition holds true as Att(R1) U Att(R2) = (ABC) U (AD) = (ABCD) = Att(R).
2. Second condition holds true as Att(R1) ∩ Att(R2) = (ABC) ∩ (AD) ≠ Φ
3. Third condition holds true as Att(R1) ∩ Att(R2) = A is a key of R1(ABC) because A-
>BC is given.
Dependency Preserving Decomposition
If we decompose a relation R into relations R1 and R2, All dependencies of R either
must be a part of R1 or R2 or must be derivable from combination of FD’s of R1 and R2.
For Example, A relation R (A, B, C, D) with FD set{A->BC} is decomposed into R1(ABC)
and R2(AD) which is dependency preserving because FD A->BC is a part of R1(ABC).
Question: Consider a schema R(A,B,C,D) and functional dependencies A->B and
C->D. Then the decomposition of R into R1(AB) and R2(CD) is [GATE-CS-2001]
A. dependency preserving and lossless join
B. lossless join but not dependency preserving
C. dependency preserving but not lossless join
D. not dependency preserving and not lossless join
Answer: For lossless join decomposition, these three conditions must hold true:
1. Att(R1) U Att(R2) = ABCD = Att(R)
2. Att(R1) ∩ Att(R2) = Φ, which violates the condition of lossless join decomposition.
Hence the decomposition is not lossless.
For dependency preserving decomposition,
A->B can be ensured in R1(AB) and C->D can be ensured in R2(CD). Hence it is
dependency preserving decomposition.
So, the correct option is C.

Question: 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

Answer: (A)

Explanation: Background :
 Lossless-Join Decomposition:
Decomposition of 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
Dependency Preserving Decomposition:
Decomposition of R into R1 and R2 is a dependency preserving decomposition if closure
of functional dependencies after decomposition is same as closure of of FDs before
decomposition.
A simple way is to just check whether we can derive all the original FDs from the FDs
present after decomposition.

Question :
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)

Note that A, B, C and D are all key attributes. We can derive all attributes from every
attribute.
Since Intersection of all relations is B and B derives all other attributes, relation
is lossless.
The relation is dependency preserving as well as all functional dependencies are
preserved directly or indirectly. Note that C -> D is also preserved with following two C -
> B and B -> D.

You might also like