4

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?

1
  • when you search google, "if 3NF ensures lossless decomposition", the top line in the search list comes up as 3NF ensures lossless decomposition while BCNF does not.. Someone in a hurry may get confused by this. I got confused more after seeing such an answer. You only know the real answer when you visit this page. Jun 1, 2023 at 19:56

1 Answer 1

7

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)+.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.