Gartner estimates that by 2015, 25 percent of new databases deployed will be of technologies supporting alternative data types and non-traditional data structures. This is great news, as these new database choices, many of them NoSQL, are generally better tuned to modern application requirements. The downside to this end to the “30-year old freeze,” to quote Redmonk analyst James Governor, is that with all these new options comes the risk of complicating a hitherto somewhat simple choice: which database to use?
DB-Engines, after all, lists and ranks 92 different database systems, which doesn’t even include all of the NoSQL variants. Good luck to the CIO who tries to deploy all of those within her enterprise.
The key, then, is to figure out how to standardize on a core of database technologies. Most companies will want to retain their legacy relational database for applications tuned to an RDBMS, or perhaps require complex transactions. But for most new applications, NoSQL databases like MongoDB will be be the optimal solution.
But which one?
There are currently at least 150 different NoSQL databases, split into different camps: document, columnar, key-value, graph, and others. One of my favorite guides for differentiating between these different options is Pramod Sadalage and Martin Fowler’s NoSQL Distilled. It does a great job of making NoSQL approachable, and also offers some guidance on which type of database to apply to specific types of problems.
This is critical: which database is best largely depends on a particular use case.
There is no shortage of guidance as to whether an enterprise should use NoSQL or stick with RDBMS or, if NoSQL, which to use (here’s just one of many sites offering guidance). Unfortunately, this still doesn’t cut down on the number of choices presented to a developer interested in selecting a database for her application. I’m sure much of the advice is good, but it could end up solving a point problem (which database to use for a particular application) but exacerbate the meta problem (which databases to standardize on throughout the enterprise).
This should be top-of-mind for every CIO, as shadow IT is already bringing NoSQL databases into the enterprise. This trend is only going to accelerate, as InfoWorld’s Bob Lewis notes. The reasons NoSQL technologies are being adopted into the enterprise are somewhat similar to the reasons shadow IT is embracing the public cloud: speed of development, ease of development, and suitability for modern applications, as a recent Forrester survey found:
Hence, savvy CIOs will select a few, broadly applicable databases that can tackle the vast majority of enterprise needs, while simultaneously satiating developers’ needs for databases that help them get their work done. But, again, which ones?
Most enterprises already have RDBMS preferences, standardizing on two and possibly three SQL databases. Part of the reason that these databases have served so many for so long is that they are general purpose databases. They might not be the absolute perfect solution to a particular application requirement, but they do the job well enough and help the enterprise focus its resources.
When choosing a NoSQL database, and every enterprise is going to need to do this, it’s important to opt for NoSQL databases that solve a wide variety of problems, rather than addressing niche requirements with a narrowly-applicable database. Document data stores like MongoDB tend to be the most broadly applicable, able to tackle a wide array of workloads. But there are other NoSQL databases that while not as generally useful, do a few things really well and should be considered.
Other things to consider in settling on database standards are political and cultural issues, compatibility with existing applications or applications on the near- and long-term roadmap, and the momentum behind a particular NoSQL database. With 150-plus NoSQL databases to choose from, picking a fashionable but ephemeral database is a recipe for frustration and failure. As I’ve written, MongoDB’s community size and momentum, among other things, suggests it will be around for a long, long time. But there are other NoSQL communities that also demonstrate staying power.
No enterprise wants to be managing dozens of databases, or even 10. Ideally, enterprises will settle on a few. Perhaps five, at most. In so doing, they should look to augment their RDBMS standards with NoSQL databases that are general purpose in nature, and broadly adopted. Considered in this light, NoSQL database standardization becomes much more manageable.
— Posted by Matt Asay, vice president of Corporate Strategy.