rc3.org

Strong opinions, weakly held

The future of relational databases

It sure seems like there’s a nascent trend that involves moving away from relational databases for storage, at least for stuff that will be exposed on the Web. First, Ning released their Web application platform that basically supports PHP and a <a href=’http://developerfaq.ning.com/group.php?FAQGroup:title=Using+the+Ning+Content+Store”>data store that isn’t relational. Then I read Adam Bosworth’s article Learning from the Web, which argues that today’s relational databases do not embody any of the principles derived from observing what works on the Web.

Yesterday, Google Base was launched. It’s like the Ning content store, except that rather than writing applications to access the items in the database, you access them via search. It’s a certainty that Google will provide an API for accessing the database with your own Web applications at some point. In the meantime, Google Base offers a way to publish structured information online without being burdened with writing or installing an application, or setting up your own database. Both Ning and Google eschew tables and enable you to create objects with attributes which in Ning’s case can reference other objects.

Furthermore, even at the application development level, the best practice for dealing with relational databases is to abstract them away with some kind of object-relational mapping layer. In Ruby on Rails, you use ActiveRecord. Java developers have a number of options to choose from, the most popular probably being Hibernate.

The other side of the coin is that today there are probably 1000 times as many servers running relational databases as there were 10 years ago. Unfortunately, they’ve become so common and widely used that they’re also becoming invisible. What’s the takeaway? Learning how to write stored procedures is probably not the best job skill you could pick up as a developer right now.

Update: Simon Willison has a more detailed explanation of how Google Base handles structured data.

3 Comments

  1. I’m curious as you write this what you envision as a proper application for a relational database.

    I work in the ERP / Data Warehouse / Finapps space which, so far as I know, is regarded as the high end of enterprise computing. I’m sure you only mean a relational database in terms of MySQL and the other goodies that people might use as a backend to PHP apps and the like, but I hardly imagine that that stuff scales. Perhaps you meant to imply that for ‘most’ web applications, this might be the case, but I hardly expect anyone with significant CMS to pull an Oracle backend and replace it with whatever Ning might be.

    Are you suggesting that Amazon or some major commercial website would seriously consider using some other technology than a relational DB on their backends? I mean what kind of iron are we talking? I’m certain that the guys at IBM and Oracle aren’t worried about any linux blades they’re missing out on.

  2. Wednesday Fragments

    Dissent! Holy smokes, can it be that the Congress is showing some spine? Have Republicans suddenly remembered that the founders knew what they were talking about when they separated powers? Could it be that political capital only goes as far…

  3. Ditto Cobb

    I don’t see RDBMSes going away any time soon. The issue is that the newbs don’t understand them (which is why MySQL is so popular and at the same time not even close to ACIDity).

    When one has a solidly-designed data layer, adding new columns/tables are much easier as are data updates (no need to write that customer’s name in 5 different tables, just write it once in the cust_info table and you’re done, Bippie).

    I’m all for the end users, the newbs and the rest to go for it with the non-RDBMS database. When the thing starts falling down under its own weight because too many functions are hanging off it (User-created MS Access/Excel “applications,” anyone?), and CrUDding data becomes a monumental chore, that’s when someone like me will come in to migrate the data to a professional relational platform, clean the data & code, and leave them with an easy-to-maintain application.

Leave a Reply

Your email address will not be published.

*

© 2024 rc3.org

Theme by Anders NorenUp ↑