问题
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
R
be a relation schema. - Let
F
be 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