Re: Tools for automated normalization ?
Date: 3 May 2005 02:05:45 -0700
Message-ID: <1115111145.063464.13450_at_o13g2000cwo.googlegroups.com>
tomjbr.10216..._at_bloglines.com wrote:
> >It seems to me that the hard part is knowing, understanding and
> >determining the functional dependencies. If you know enough to do
> >that, you know enough to normalise the tables yourself. In fact, to
> >state the FDs is to normalise the tables, isn't it?
>
> Well, if it is always true that your database schema is in 3rd normal
> form when you have stated the FD's, then can someone tell the reason
> for why Bernstein's normalization algorithm exists:
> "Synthesizing Third Normal Form Relations from Functional
Dependencies"
>
http://www.informatik.uni-trier.de/~ley/db/journals/tods/Bernstein76.html
>
> I have not read Bernstein's paper myself, but thinks that it would
not
> make any sense to try to normalize a set of functional depencies if
you
> could know that they are always normalized in the first place...
I haven't read it either. But perhaps I didn't make my point very clearly. My point is that a computer program cannot determine functional dependency just by looking at a set of attributes. Nor, given an FD like A -> BCD, can it work out that in fact B->D and so normalise to A->BC and B->D. You, with your understanding of the meaning of the data, have to recognise that B->D and tell the computer that.
So what is left for the computer program to do once you have done that? It could take the 2 FDs A->BCD and B->D and remove the duplication. In table terms, it could take the 2 tables T1 (A PK, B, C, D) and T2 (B PK, D) and decide to drop the column D from T1, based on the FD information you have given it.
To write such a program would be trivially easy, but would it be worth having? Received on Tue May 03 2005 - 11:05:45 CEST