Lossless join decomposition

From HandWiki

In database design, a lossless join decomposition is a decomposition of a relation R into relations R1,R2 such that a natural join of the two smaller relations yields back the original relation. This is central in removing redundancy safely from databases while preserving the original data.[1]

Criteria

Lossless join can also be called nonadditive.[2]

If R is split into R1 and R2, for this decomposition to be lossless (i.e., R1R2=R) then at least one of the two following criteria should be met.

Check 1: Verify join explicitly

Projecting on R1 and R2, and joining them back, results in the relation you started with.[3][unreliable source?]

Check 2: Via functional dependencies

Let R be a relation schema.

Let F be a set of functional dependencies on R.

Let R1 and R2 form a decomposition of R .

The decomposition is lossless if one of the sub-relations (i.e. R1 or R2) is a subset of the closure of their intersection. In other words, 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):[4]

  • R1R2R1
  • R1R2R2

Examples

  • Let R=(A,B,C,D) be the relation schema, with attributes A, B, C and D.
  • Let F={ABC} be the set of functional dependencies.
  • Decomposition into R1=(A,B,C) and R2=(A,D) is lossless under F because R1R2=A). A is a superkey in R1, meaning we have a functional dependency {ABC}.  In other words, now we have proven that (R1R2R1)F+.

[5][6]

References

  1. Pohler, K (2015). "Lossless-Join Decomposition: applications in quantitative computing metrics". International Journal of Applied Computer Science 21 (4): 190–212. 
  2. Elmasri, Ramez (2016). Fundamentals of database systems (Seventh ed.). Hoboken, NJ: Pearson. p. 461. ISBN 978-0133970777. 
  3. "Lossless Join Property". https://stackoverflow.com/questions/5771810/lossless-join-property. 
  4. "Lossless Join Decomposition". University at Buffalo (Jan Chomicki). http://www.cse.buffalo.edu/~chomicki/560/handout-design.pdf. 
  5. "Lossless-Join Decomposition". http://www.cs.sfu.ca/CourseCentral/354/zaiane/material/notes/Chapter7/node7.html. 
  6. "www.data-e-education.com - Lossless Join Decomposition". http://www.data-e-education.com/E121_Lossless_Join_Decomposition.html.