Heykuki News

TopNewBestAskShowJobs
TopNewBestAskShowJobs
Automatic Database Normalization?
7 points
zackmorris
14 years ago
Lately I've been working on projects that were started by someone else and the databases tend to be a mess. For example, instead of having a separate Members and Organizations table (like for a user participating in politics), the members are repeated over several rows, with the Organization Name field set different on each row. Then if the member's street address is updated, the SQL UPDATE changes the Address field on all of the rows.

At first glance this seems horrible, and I'm tempted to make a table to store member-organization entries. But unfortunately there are several hundred queries in the app and this is nontrivial to write, much less exhaustively test.

So it got me thinking, why is this the programmer's responsibly? Why not just make a database where you can do anything you want, and the contents of each field would be stored once uniquely, with the duplicates represented by pointers or hashes under the hood? Then run in a mode that guarantees atomic updates over any number of rows.

Then the database could infer relationships by the queries that are executed instead of how the data is organized. It would generate the relationship graph automagically so the programmer just has to sign off on it. It could even run in a mode where if the code tries to execute an operation that breaks the graph, a notification could be sent to IT or whatever.

So this isn't really nosql, it's more like unstructured or self-organizing SQL. Has anyone heard of something like this? I googled a bit but all I found were these unhelpful links:

http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=4564486&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_all.jsp%3Farnumber%3D4564486

http://stackoverflow.com/questions/4477257/is-there-any-software-that-can-normalize-data-bases-tables

http://www.codinghorror.com/blog/2008/07/maybe-normalizing-isnt-normal.html

Thanks!

4 comments