Re: Fails Relational, Fails Third Normal Form
Date: Mon, 09 Feb 2015 10:08:22 +0100
Message-ID: <nvitacolonna-3FDA20.10082109022015_at_freenews.netfront.net>
In article <20150208185933.59eada02.jklowden_at_speakeasy.net>, "James K. Lowden" <jklowden_at_speakeasy.net> wrote:
> Would only that the described algorithm were implemented, and
> we could pour our column definitions in and get a 3NF (say) logical
> model out!
A few years ago I implemented a few algorithms from Koehler's PhD thesis in a Ruby script. Given a set of FDs, the script finds all the keys and all the minimal covers (well, in most cases - these problems are computationally hard, Ruby is not super-efficient, and I didn't care about any optimizations). Then, I had a graduating student re-implement it in Java and adding a dependency-preserving decomposition in BCNF (when it exists) or in 3NF to the output. He also did an extensive experimental analysis.
Both programs are rough prototypes. I have been toying with the idea of an interactive command-line tool (à la Matlab or R) tailored to database design for a while. I think it's a pity that the plethora of algorithms that exist are not collected in a single tool.
If you're interested, I can make the code available.
Nicola
- news://freenews.netfront.net/ - complaints: news_at_netfront.net ---