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}


Re: the pure thingness of the things

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

First this is my own project so I'm not driven by any requests other than to do what I think is the best: less code = faster development, less maintenance, oodb's = faster runtime performance.

1) doing extra design work in order to solve problems that have already been solved by RDBMSes and relational theory

nope less design work overall, I store things as objects, if needed I query things like objects collections, the database does the heavy lifting. If i want set like operations for ad hoc like queries (mimicking join operations) I use a persistent data structure that's appropriate for things like that. Normally in a correctly designed model, everything is done via navigation (think of pointer references on a massive virtual memory space).

2) not doing that design work (which would have been implicit and easy, perhaps even automated,

Nope again. I model objects that represent my problem domain, postprocess them (and automated process to make them persistence capable) and they are the same objects I retrieve from the database, with relations perserved. I model once, not twice. -the data aspects of my Class Heirarchy IS the database schema.

Normalization isn't a catch all, give me 50 users with 1 phone number (single table), and 15 with 10 (two tables with cost of join), it becomes hard to make a model with works for everyone in an optimal fashion.

RDMBS's are built ontop of code..just like middlewear, which all are built onto standard data structures, and these are accessilbe inside the database and not, so I'm not recreating the wheel.

I think we may be arguing tools for different purposes.

How many tiers are your application? HTML with SQL embedded?
How frequenty is the same data accessed together, e.g. customer, contact info.

If your saying RDBM's aren't faithful representations, and relational theory isn't availalbe in other forms of code, I guess I don't understand what you mean by the term. Got some links?

OODB's are NOT new just most people don't understand them very well. They are used for MASSIVE databases (stanford particle accelerator) with astounding transactions (stock market, telecommunications)..who could all use Oracle if they wanted to, but don't for a reason, it doesn't work. If we are talking about any other site (say live journal) it's possible to go either way with different tradeoffs.

ps1: just the way I like it, and indeed it's useful, even if I don't think we are seeing eye to eye.
ps2: likewise.
p23: likewise.

Reply | Parent | Thread