Sunday, October 22, 2006

Putting lipstick on a Pig

The question of what kind of database one should use has triggered many a techno-emotional conclusion-less discussion. The juiciest bone of contention is whether to use a Relational Database coupled with an Object Relational Mapper, or to just simply use an Object Database.

Well, here's a nice pre-emptive image summarizing the situation rather succintly... Mike Orr, replying to a specific question about comparisons between an ORM such as SQLObject coupled with MySQL for example, and the Durus Object Database, drops this:
Object-relational mappers are like putting lipstick on a pig.
Going on to add:
If you think foreign keys, flat tables, etc are programmer friendly, you haven't used an object database. Literally 90% of the work disappears. The SQLObject and SQLAlchemy manuals are a hundred pages because even trying to put an OO front end on a SQL database is a complex task.
Pretty much sums it up for me. Still, if you need more argument fodder, here's some nicely digested material about Object Databases, and how they compare with Relational Databases, from Oleg Broytmann.

While I'm at it, I should probably also mention that performance is one of the strongest points typically held in favour of Relational databases. Well, that is definitely not always the case. Mike Orr reports how, on his application, Durus proved to be more performant than both MySQL and Sqlite. This while not forgetting of course how much easier Durus is to work with.