One of the fundamental dichotomies in development is the relational world of the database and the object orientated world of services, which sadly spills over into developers and DBA’s not always being the best of friends. Developers don’t always see the need for a relational database, and the expense of coding to use one is a frustration even if the database engine itself is free.
I picked up this article on the NoSQL movement (I track SQL on tweets Twiiter) and it got me thinking would the the world in general and the IT industry be better off without it?
So what does a true relational database give you that you can’t get anywhere else:
- Referential integrity, gives you the guarantee that the customer and product on that sales order detail do exist.
- Transactions mean that if I pay James fifty quid it will only leave my account if it left his.
- Relational structures mean that you only have to change a customer’s details in one place in the system.
Of course not every system wants or needs these capabilities, but the image of a database as a safe haven for data has seen their use extended into all sorts of areas where another data storage engine might better meet this purpose. A good example is Microsoft Exchange which doesn’t use SQL server.
Transactions can also make web sites appear slow as the database has to commit, and in the world of business intelligence I want all of the referential integrity but not much else as my whole refresh of the data warehouse is one transaction as far as I am concerned.
So I am pleased to see some push back against SQL – it definitely isn’t the answer to life the universe and everything, equally the relational database has survived the PC revolution, the millennium, and the internet, virtualisation.
The next big thing for architecture is of course the cloud, and for Microsoft this means SQL Services, part of the Azure platform. What is interesting here is that Microsoft shied away from a REST-ful database and has essentially implemented this service in such a way that it behaves exactly like SQL Server on your PC/Server (BTW I have a short interview on this on TechNet Edge). Why did this happen, essentially pressure form customers. I am also sure one of the many reasons Oracle bought Sun was because of not despite MySQL
So I don’t think it’s time to consign SQL to the recycle bin just yet, but I would be interested on what you think and perhaps I could setup a Live Meeting on this if I get enough interest.