Girish Mahajan (Editor)

Lossless Join Decomposition

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit

In computer science the concept of a Lossless-Join Decomposition is central in removing redundancy safely from databases while preserving the original data.

Contents

Lossless-join Decomposition

Can also be called Nonadditive. If you decompose a relation R into relations R 1 and R 2 you will guarantee a Lossless-Join if R 1 x R 2 = R .

If R is split into R1 and R2, for the decomposition to be lossless then at least one of the two should hold true.

Projecting on R1 and R2, and joining back, results in the relation you started with. Let R be a relation schema.

Let F be a set of functional dependencies on R .

Let R 1 and R 2 form a decomposition of R .

The decomposition is a lossless-join decomposition of R if at least one of the following functional dependencies are in F + (where F + stands for the closure for every attribute or attribute sets in F ):

  • R 1  ∩  R 2 R 1
  • R 1  ∩  R 2 R 2
  • Example

  • Let R = ( A , B , C , D ) be the relation schema, with A , B , C and D attributes.
  • Let F = { A B C } be the set of functional dependencies.
  • Decomposition into R 1 = ( A , B , C ) and R 2 = ( A , D ) is lossless under F because R 1 R 2 = ( A ) , A is a superkey in R 1 ( A B C ) so R 1 R 2 R 1 .
  • References

    Lossless-Join Decomposition Wikipedia