A little while ago I took on the task of cleaning out my office closet. As I undertook this task, I paused regularly to review items that were stowed away in there. One of the more interesting things I stopped to peruse was a cache of articles and magazines from the 1990s on the Object vs. Relational DBMS wars.
For those too young to remember, back in the early 1990s the IT media was all hyped up about the rise of the ODBMS – – a non-relational, non-SQL DBMS based on object orientation. I was rightly skeptical back then, but the industry pundits were proclaiming that ODBMS would overtake the incumbant “relational” DBMSs in no time. Of course, there were some nay-sayers, too.
I collected a lot of material about that and I found it stuffed into the nooks and crannies of my closet. Here are some quotes lifted right out of the magazines and white papers I had saved.
First, from the pages of the Spring 1993 edition of InfoDB, there is an exchange between Jeff Tash and Chris Date on the merits, definition, and future of ODBMS. As you might guess, Date is critical of ODBMS in favor of relational; Tash counters that relational is defined by the SQL DBMS products more than the theory. Interesting reading; both have valid points, but Date is spot on in his criticism that there was a lack of a precise definition of an object model.
Next, in the July/August 1990 issue of the Journal of Object-Oriented Programming, there are several questionable quotes in the article titled “ODBMS vs. Relational” (especially in hindsight). Here are a few of them (with my comments following in italics):
1) “The data types in the relational model are quite constrained relative to the typing capabilities offered by an ODBMS.” CSM: Now most RDBMS products offer extensible typing with user-defined distinct types.
2) “…the (relational) data model is so simple that it cannot explicitly capture the semantics we now expect from an object model.” CSM: The object folks always want to tightly-couple code and data. The relational folks view the separation of the two as an advantage.
3) “The apparent rigor of the relational model…” CSM: Not only is it apparently rigorous, it is actually rigorous. This is an example of an object proponent trying to diminish the importance of the sound theoretical framework of the relational model. Of course, it might be reasonable to say that the DBMS vendors kinda did that themselves, too, by not implementing a true relational DBMS.
Finally, we have a July 1992 article from DBMS Magazine titled “The End of Relational?” This type of headline and sentiment was rampant back then. Of course, as I read the article I see a claim that in March 1991 Larry Ellison said that Oracle8 would be an object database. Of course, it was not (O/R is not O — and even the O in O/R was different IMHO). And then there is this whopper from that same article: “Although it is certain that the next generation of databases will be object databases…” CSM: Certain, huh?
Perhaps the most interesting piece of data on the object vs. relational debate that I found in my closet is an IDC Bulletin from August 1997. This note discusses Object versus Object/Relational. Basically, what IDC explains in detail over 14 pages is that the marriage of object to relational is less a marriage and more of a cobbling onto relational of some OO stuff. In other words, the relational vendors extended their products to address some of the biggest concerns raised by the OO folks (support for complex data and extensible data types) — and that is basically the extent of it. The ODBMS never became more than a small niche product.
So why am I sharing all of this now? Well, we are on the cusp of another “war” in the DBMS realm, this time featuring NoSQL and Big Data database systems. I think it is a good idea to remain skeptical of a wholesale replacement of relational at the expense of these “newer” technologies.
Now I am not saying that there are not some good features and functionality in some of the new offerings like CouchDB, MongoDB, Volt, and so on. What I am saying is that these offerings are not designed to supplant relational and that they will not. They can, and should, be used when and where they make sense and add value to specific projects.
Additionally, we are already seeing the relational DBMS products adapting by adding similar functionality, such as DB2 for LUW and its BLU acceleration capabilities, or the big data features added to DB2 11 for z/OS.
So history will repeat… and as it does, it is a good idea to remain skeptical.