问题
Can someone please explain to me 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 of relations whilst normalising?
回答1:
@Falcon - you are right - but this is a more substantial definition...
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.
回答2:
The word loss in lossless refers to loss of information, not to loss of tuples
This ppt presentation might be helpful.
回答3:
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.)
回答4:
Lossless means functioning without a loss. In other words, retain everything.
Important for databases to have this feature.
Formal Definition
- Let
Rbe a relation schema. - Let
Fbe a set of functional dependencies onR. - Let and form a decomposition of
R.
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
来源:https://stackoverflow.com/questions/5771810/lossless-join-property