In database design, a lossless join decomposition is a decomposition of a relation
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] A relation
decomposes losslessly onto schemas
π
is the natural join of its projections onto the smaller schemas.
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
[3] Decompositions into more than two schemas can be defined in the same way.
[4] A decomposition
has a lossless join with respect to
In other words, one of the following must hold:[4] 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
) to form a lossless join with another schema
[vague]