Lossless join decomposition
This article may need to be rewritten to comply with Wikipedia's quality standards. (July 2014) |
In database design, a lossless join decomposition is a decomposition of a relation into relations 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
Can also be called nonadditive.[citation needed]
If is split into and , for this decomposition to be lossless (i.e., ) then at least one of the two following criteria should be met.
Check 1: Verify join explicitly
Projecting on and , and joining them back, results in the relation you started with.[2][unreliable source?]
Check 2: Via functional dependencies
Let be a relation schema.
Let F be a set of functional dependencies on .
Let and form a decomposition of .
The decomposition is a lossless-join decomposition of 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):[3]
Examples
- Let be the relation schema, with attributes A, B, C and D.
- Let be the set of functional dependencies.
- Decomposition into and is lossless under F because . A is a superkey in , meaning we have a functional dependency . In other words, now we have proven that .
References
- ^ Pohler, K (2015). "Lossless-Join Decomposition: applications in quantitative computing metrics". International Journal of Applied Computer Science. 21 (4): 190–212.
- ^ "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". Cs.sfu.ca. Retrieved 2016-02-07.
- ^ "Archived copy". Archived from the original on 2014-02-21. Retrieved 2014-02-12.
{{cite web}}
: CS1 maint: archived copy as title (link)