Lossless join decomposition

From Wikipedia, the free encyclopedia

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] Lossless join can also be called non-additive.[2]

Definition

Summarize
Perspective

A relation on schema decomposes losslessly onto schemas and if , that is is the natural join of its projections onto the smaller schemas. A pair is a lossless-join decomposition of or said to have a lossless join with respect to a set of functional dependencies if any relation that satisfies decomposes losslessly onto and .[3]

Decompositions into more than two schemas can be defined in the same way.[4]

Criteria

A decomposition has a lossless join with respect to if and only if the closure of includes or . In other words, one of the following must hold:[4]

Criteria for multiple sub-schemas

Multiple sub-schemas have a lossless join if there is some way in which we can repeatedly perform lossless joins until all the schemas have been joined into a single schema. Once we have a new sub-schema made from a lossless join, we are not allowed to use any of its isolated sub-schema to join with any of the other schemas. For example, if we can do a lossless join on a pair of schemas to form a new schema , we use this new schema (rather than or ) to form a lossless join with another schema (which may already be joined (e.g., )).[vague]

Example

  • 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 and we have a functional dependency . In other words, we have proven that .[5][6]

References

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.