For my Christmas Jollity this year I thought I would address the question of whether IMS is a NoSQL database. And, for that matter, whether the same applies to IDMS and Adabas.
In order to answer this question we have to ask what the definition of a NoSQL database is? According to Wikipedia "in computing, NoSQL (commonly interpreted as "not only SQL") is a broad class of database management systems identified by non-adherence to the widely used relational database management system model." Well, if that's the definition then IMS definitely is a NoSQL database.
It goes on to say that "NoSQL databases are not built primarily on tables, and generally do not use SQL for data manipulation." Well, IMS is not built on tables and you don't generally use SQL to access it.
Further, "NoSQL database systems are often highly optimized for retrieval and appending operations and often offer little functionality beyond record storage (e.g. key-value stores). The reduced run-time flexibility compared to full SQL systems is compensated by marked gains in scalability and performance for certain data models". Clearly, IMS is not optimised as described - it is optimised for transaction processing - but note the "often", which implies not always and the "certain data models" which implies the same thing. Not all of what we might normally think of as NoSQL databases follow this description and thus this cannot be part of any definition.
Bottom line: according to Wikipedia IMS is a NoSQL database.
Searching for further clarity I have turned to www.NoSQL-database.org. It defines NoSQL as follows: "Next Generation Databases mostly addressing some of the points: being non-relational, distributed, open-source and horizontally scalable." That's hardly a definition. "Some" of the points indeed! I would particularly disagree with the open source categorisation: Acunu and MarkLogic, for example, both offer what are clearly NoSQL databases and neither of them is open source. Indeed, the plethora of open source companies in the NoSQL space is starting to remind me of the dot.com bubble - there are far too many companies in this area with far too much hype - some (a lot?) of the VC companies backing these open source companies are going to get burned.
Returning to this definition I don't know how "next generation database" is defined but clearly IMS isn't. On the other hand the site classifies various databases by type (much more accurately - though still not perfectly in my opinion - than Wikipedia by the way) and right at the bottom of its listing it has an "unresolved and uncategorized" list. This list includes Adabas and as a final word, it states that "VSAM by IBM is also a good candidate". If VSAM qualifies then so, surely, must IMS.
Frankly, this is daft. If VSAM, Adabas and IMS qualify as NoSQL databases then the term NoSQL has no useful meaning. As I have mentioned in previous articles, graph databases and triple stores are NoSQL databases. And since DB2 has a triple store, that technically makes it a NoSQL database!