patternMinor
Lossless join in 3NF
Viewed 0 times
lossless3nfjoin
Problem
I was just studying about the 3NF and the BCNF and then encountered a statement that:
3NF ensures lossless decomposition while BCNF does not.
How can we verify this using the basic definition of BCNF and 3NF?
3NF ensures lossless decomposition while BCNF does not.
How can we verify this using the basic definition of BCNF and 3NF?
Solution
The statement:
3NF ensures lossless decomposition while BCNF does not.
is incorrect, since both BCNF and 3NF produce decompositions that have the Lossless-join Decomposition property, that says that:
(R1,R2) is a lossless-join decomposition of R with respect to a set of FDs F if for every instance r of R that satisfies F:
πR1(r) ⋈ πR2(r) = r.
This can be seen since there is a theorem that says that a simple criterion for checking whether a decomposition (R1,R2) is lossless-join is that either:
R1 ∩ R2 → R1 ∈ F+, or
R1 ∩ R2 → R2 ∈ F+,
and both the algorithms for BCNF and 3NF produce decompositions that satisfies this property (see the literature on the subject, for instance the demonstration on Chapter 3 of: “Garcia-Molina, Hector. Database Systems: The Complete Book, Pearson Prentice Hall”).
What is true, and that differentiate 3NF from BCNF, is that the synthesis algorithm that produces the 3NF always preserves the dependencies of the original relation, while the analysis algorithm for the BCNF does not.
A decomposition (R1, R2) of R, given
FR1 ={X → Y | X → Y ∈ F+ ∧ XY ⊆ R1}, and
FR2 ={X → Y | X → Y ∈ F+ ∧ XY ⊆ R2}
preserves a dependency f iff f ∈ (FR1 ∪ FR2)+.
3NF ensures lossless decomposition while BCNF does not.
is incorrect, since both BCNF and 3NF produce decompositions that have the Lossless-join Decomposition property, that says that:
(R1,R2) is a lossless-join decomposition of R with respect to a set of FDs F if for every instance r of R that satisfies F:
πR1(r) ⋈ πR2(r) = r.
This can be seen since there is a theorem that says that a simple criterion for checking whether a decomposition (R1,R2) is lossless-join is that either:
R1 ∩ R2 → R1 ∈ F+, or
R1 ∩ R2 → R2 ∈ F+,
and both the algorithms for BCNF and 3NF produce decompositions that satisfies this property (see the literature on the subject, for instance the demonstration on Chapter 3 of: “Garcia-Molina, Hector. Database Systems: The Complete Book, Pearson Prentice Hall”).
What is true, and that differentiate 3NF from BCNF, is that the synthesis algorithm that produces the 3NF always preserves the dependencies of the original relation, while the analysis algorithm for the BCNF does not.
A decomposition (R1, R2) of R, given
FR1 ={X → Y | X → Y ∈ F+ ∧ XY ⊆ R1}, and
FR2 ={X → Y | X → Y ∈ F+ ∧ XY ⊆ R2}
preserves a dependency f iff f ∈ (FR1 ∪ FR2)+.
Context
StackExchange Database Administrators Q#125355, answer score: 7
Revisions (0)
No revisions yet.