Your data wants to be free
February 16th, 2009 | Published in software development | 2 Comments
In a response to Is the Relational Database Doomed, and my post REST is a distributed data model, Anders Nawroth wrote an interesting post, The future of RDBMS’s, which made me think about the role of databases.
Anders makes the statement that RDBMSes aren’t very good at storing relationships. He points out that there are better ways to store relationships. Is this really what matters? Especially if this means that your data will be tied to the technology used by the application?
I think that having your data stored independent of the application technology, is much more important. Even if this means that the database can’t offer the best features possible. Being able to access all the data from anywhere, any program, any technology, makes is that much more valuable. This is one of the reasons why Object Databases never became a big hit. It limits the use of your data to object oriented languanges, and in some cases to a single language. The value of data is directly related to the ability to use it.
This is why RDBMSes are so great: it doesn’t bind your data to a single application. You can collect the data with one application, enrich it with another, publish it with yet another, and combine it with other data to create a comprehensive consistent whole.
On a related note: RDBMSes may not offer the richest relational model, but it’s a shame that in most SOA implementations you lose what little you have. Data is broken up into services related portions. Next it’s serialized to xml or something similar. Relations between data from different services is lost, circular relationships are lost when translated to hierarchical data. Yet another good reason to have a good look at REST, which could restore the ability to have cross service data relationships.
But remember: Your data wants to be free.