For the case of a decomposition of into and is lossless join if and only if at least one of the following dependencies is in :
Dependency Preservation
Let the schema is decomposed into .
Let be the subset of dependencies that only includes attributes in for ,
The decomposition is dependency preserving, if
If the decomposition is not dependency preserving, then checking updates for violation of functional dependencies may require computing joins, which is expensive.
Example:
can be decomposed in two different ways
Lossless-join decomposition
Dependency preserving
Lossless-join decomposition
Not dependency preserving (cannot check without computing ⨝)