What is meant by the lossless join property in a relation schema?
Is it the ability to maintain the semantics of information/data during the decomposition 开发者_JS百科of relations whilst normalising?
The lossless join property is a feature of decomposition supported by normalisation. It is the ability to ensure that any instance of the original relation can be identified from corresponding instances in the smaller relations.
The word loss in lossless refers to loss of information, not to loss of tuples
This ppt presentation might be helpful.
R1, ... is a lossless decomposition of R when they join back to it.
(R1, ... being a lossless decomposition of R under a set of FDs (functional dependencies) F is a different property. That is when R1, ... is a lossless decomposition of R and satisfies the FDs in F.)
Lossless means functioning without a loss. In other words, retain everything.
Important for databases to have this feature.
Formal Definition
- Let
R
be a relation schema. - Let
F
be a set of functional dependencies onR
. - Let
R1
andR2
form a decomposition ofR
.
The decomposition is a lossless-join decomposition of R
if at least one of the following functional dependencies are in F+
1) R1 ∩ R2 -> R1
2) R1 ∩ R2 -> R2
In Simpler Terms…
R1 ∩ R2 -> R1
R1 ∩ R2 -> R2
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.
Source: https://en.wikipedia.org/wiki/Lossless-Join_Decomposition
精彩评论