Re: Fails Relational, Fails Third Normal Form

From: Nicola <nvitacolonna_at_gmail.com>
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

Received on Mon Feb 09 2015 - 10:08:22 CET

Original text of this message