Pensieri di un lunatico minore

21 April 2008 Technology

Shattering news: non-RDBMS not a RDBMS

In earth-shattering news, Ryan Park has revealed that CouchDB is not a relational database, and therefore may not behave like a relational database. Glad we got that out of the way. In more important news:

  1. Oracle, DB2, SQLserver, PostgreSQL and MySQL are also not strictly relational, and in many ways not even close
  2. Relational databases don’t solve all problems, or even many problems well
  3. Much of the world’s data is not in a relational database
  4. The web ain’t the world

I realize these are difficult truths, and that when you have a golden hammer, you wish to slam it into every nail, but that doesn’t mean it’s the right answer. Some of the most advanced applications I’ve ever worked on were written in object databases, and I’ve even built some very cool applications for data correlation in something that’s really more of an object/network blend. I’ve supported applications in network databases and even hierarchical databases and even something that isn’t really describable.

Understanding what data model works in reality is very different than what seems conceptually pure and simple. Relational algebra is a nice model, but it’s not always the right solution. Relational algebra is a good way to think about a problem, but don’t confuse that with it being the best way to solve it.

Unfortunately, a vast majority of “developers” have never either been forced to work through problems with a different tool, or even more telling, chosen to try and figure out other solutions. If you’ve only looked through one window, then the view out another—into the same world—may be terrifying.

This entry was posted at 8:55 pm on 21 April 2008 and is filed under Technology. You can follow any responses to this entry through the post-specific RSS 2.0 feed.

I see you mention AllegroCache. Do you have any experience with open source lisp oodb solutions like elephant or rucksack ?

I dont think you are interpreting Ryan’s post correctly. His criticism is not that SimpleDb is not an RDBMS. He’s pointing out that SimpleDB doesn’t give you a lot of things that most developers take for granted with an RDBMS and some of those things might be hard to build.

Just to pick one example, take his example of an aggregation function. Now you either have to incure the perf hit of retrieving all entities or you have to do extra calculation at create/update time – both slower than what an RDBMS would give you.

[Vagif] I do not, unfortunately. For the application I was developing, we used AllegroCache, and didn’t really seriously look at anything else.

[Sriram] My complaint was that the perspective is one filtered through the lens of RDBMS attributes. An RDBMS is great for certain applications, most especially those whose data set’s natural shape is rectangular, and which contain a paucity of information within the relations. Once those relations become critical, or the data set shifts and morphs shapes, the traditional RDBMS collapses into a crying heap on the floor, and those “benefits” become an albatross.

The end point is that it’s important to understand a multitude of tools and realize that strengths and weaknesses are relative to the perspective you have and the application you envision.

Hubs of Shattering news: non-RDBMS not a RDBMS…

hubs about Relational Databases to In earth-shattering news, Ryan Park has revealed that CouchDB is not a relational database, and therefore may not behave like a relational database. Glad we got that out of the way. In more important news: ......

You can leave a response, or trackback from your own site.