?

Log in

No account? Create an account

The One True Relational Database Model

« previous entry | next entry »
Aug. 12th, 2004 | 07:47 pm
mood: amusedamused
music: Tom "T-Bone" Stankus - Existential Blues

Microsoft has a relational database on the front burner for a future version of Windows. Personally, I think they're barking up the wrong tree. If they spent more time building websites they'd know that hierarchical models with very tight scripting connections offer more performance and a higher level application model. Relational databases are good for factories and stores. Object databases map the model of the Web. Just change the slashes to dots and off you go. - scripting.com

Heirarchical databases and Object databases are arguably subsets of Relational databases. If you think your programming effort needs a 'higher level application model', you should go ahead and use one -- built on top of a relational database. If you have some data that you need to manage professionally, you need the structure and reinforcement that only the relational model can provide. If that means you need to pay me to build you one, then so be it.

If there's a better model than the Relational one out there, I want it caught and shot now to hear about it. Maybe what I mean isn't better model, it's better formalism. Sure, use a flat text file to manage your data. That's better for some projects, some purposes. But it will catch up with you (or better yet, someone else) as the project ages. (For your own sake, recognize when that starts to happen, and re-engineer the project.)

If you go through the excercise of designing a relational database for your data, the nicest thing is, your data will stay that way! almost self-organizing, and it's easy to discover new uses (new ways to use your old data)!

Heirarchical databases collapse under their own inflexibility.

Object databases look pretty but tempt you into omitting some relations that you later have to back-fill using "business rules".

Link | Leave a comment |

Comments {26}

truth without proof

Re: the pure thingness of the things

from: chronicfreetime
date: Aug. 13th, 2004 11:21 am (UTC)
Link

To recreate this from any given node is done by iterative selects. e.g. give me node5's children, for all of those children give me the other children, etc.

Yes, this is a chore. Some have tried to extend SQL to make this easier, eg Oracle's "CONNECT BY". The problem is not, however, that your data doesn't fit the relational model; G = (V, E) after all. The problem is that existing database tools don't present an especially faithful implementation of relational theory.

In the past, when I've had to do anything intense with graphs, I've done it in memory. Those were mostly personal projects, though. At work, I have to jam trees into an RDBMS, and it hasn't really been that difficult. I'm not sure what approach I would take if I had to work with graph data on the scale of eg Orbitz; definitely not an OODB, though.

Reply | Parent | Thread

TroyToy

Re: the pure thingness of the things

from: troyworks
date: Aug. 13th, 2004 12:40 pm (UTC)
Link

faithful implementation of relational theory.

I don't think i truly understand how your are using "relational theory'. My frustrations come from the limitations of using an RDBMs in past applications.

Is in memory a faithful implementation of relational theory?

Reply | Parent | Thread