Lossless-Join Decomposition
In computer science the concept of a Lossless-Join Decomposition is central in removing redundancy safely from databases while preserving the original data.
Lossless-join Decomposition
Can also be called Nonadditive. If you decompose a relation into relations and you will guarantee a Lossless-Join if ⋈ = .
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.[1] Let be a relation schema.
Let be a set of functional dependencies on .
Let and form a decomposition of .
The decomposition is a lossless-join decomposition of R if at least one of the following functional dependencies are in + (where + stands for the closure for every attribute or attribute sets in ):[2]
- ∩ →
- ∩ →
Example
- Let be the relation schema, with , , and attributes.
- Let be the set of functional dependencies.
- Decomposition into and is lossless under because , is a superkey in ( ) so .
References
- ↑ "Lossless Join Property". stackoverflow.com. Retrieved 2016-02-07.
- ↑ "Lossless Join Decomposition" (PDF). University at Buffalo (Jan Chomicki). Retrieved 2012-02-08.
- ↑ "Lossless-Join Decomposition". www.cs.sfu.ca. Retrieved 2016-02-07.
- ↑ http://www.data-e-education.com/E121_Lossless_Join_Decomposition.html