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.