Re: How to normalize this?

From: <nvitacolonna_at_gmail.com>
Date: Mon, 6 May 2013 08:19:36 -0700 (PDT)
Message-ID: <def8203c-dba6-4e42-89b4-a9a68027b351_at_googlegroups.com>


On Monday, May 6, 2013 12:52:44 AM UTC+2, Jan Hidders wrote:

> >>>> 1. Apply the 3NF normalization procedure we discussed earlier
> >>>> 2. Include with each component only the FDs that generated that component
>
> >>> It's not clear to me what you are describing or how it relates to>> >
> >>> arguing against stopping at 3nf.
>
> >> I've described to you a normalization algorithm that seems to produce
> >> a>> schema in BCNF that is also lossless-join and dependency
> >> preserving,>> but also has no inter-component dependencies. That's not
> >> supposed to be>> possible according to the usual normalization
> >> explanation. So what went>> wrong here?
>
> > That's simply not true is it ?
> > You are referring to the three-table decomposition, right ?
>
> No. I'm referring to the algorithm that is described by steps 1. and 2.
> above. It's an adapted variant of the usual algorithm that produced the
> three-table decomposition. That older algorithm does not always produce
> a schema in in BCNF. Mine seems to do so.

Hi, this is my first post in this group. I hope you won't mind if I dive into this very interesting discussion.

One exercise that I usually give to my students seems to fit exactly the above. First, I ask them to prove that the schema R(A,B,C,D,E) with FDs F = {AB -> C, C -> D, D -> B, E ->D} is not in 3NF (which they usually do easily). Then I ask them to decompose it in 3NF and they typically come out with:

R1(A,B,C), {AB -> C}
R2(C,D), {C -> D}
R3(D,B), {D -> B}
R4(D,E), {E -> D}
R5(A,E), {}

Finally I ask them: does this decomposition preserve FDs? (“yes, by construction”). Is C -> B implied by F? (“yes, by transitivity”). Is C -> B preserved or not in the decomposition? (panic) :)

Nicola Received on Mon May 06 2013 - 17:19:36 CEST

Original text of this message