# Re: The "standard" way to get to 3NF

From: Jan Hidders <jan.hidders_at_REMOVETHIS.pandora.be>

Date: Wed, 14 Apr 2004 19:42:08 GMT

Message-ID: <kugfc.71448$OG1.4811821_at_phobos.telenet-ops.be>

> But that gives us our old relation back (plus a projection) so this is

> definitely not in 3NF.

Date: Wed, 14 Apr 2004 19:42:08 GMT

Message-ID: <kugfc.71448$OG1.4811821_at_phobos.telenet-ops.be>

Jan Hidders wrote:

> Jan Hidders wrote:

>> [...] The usual algorithm that gets you to 3NF in one step (the one >> using the minimal cover) splits as little as possible. See for example >> sheet 46 on: >> >> http://cs.ulb.ac.be/cours/info364/relnormnotes.pdf

*>**>**> Did anyone notice that this algorithm is actually not correct? Take the**> following example of a relation R(A,B,C,D,E) with the set of FDs:**>**> { AB->C, AB->D, BC->D }**>**> It is clear that the relation ABCD is not in 3NF. Since the set of FDs**> it is already a minimal cover the resulting decomposition is:**>*

*> { ABCD, BCD }**>*> But that gives us our old relation back (plus a projection) so this is

> definitely not in 3NF.

As was pointed out to me by Ramez Elmasri, the counterexample is not correct since the set of FDs is not a minimal cover. The reason for this is that AB->D can be derived from AB->C and BC->D. So a proper minimal cover would be

{ AB->C, BC->D }

and that leads to the decomposition

** { ABC, BCD }
**
which is indeed in 3NF.

I now officially declare this thread closed an will stop replying to myself. :-)

- Jan Hidders