As the manager for enterprise architecture in a very large IT organization, the C-suite executives frequently posed the question, "What database platform is best for this application today and for the future?" Implicit in that question was the idea that some platforms, for the application and for the database, might be more than adequate today but be trending in a direction that didn't match with our executive's goals.
This question always rears its head when I'm considering whether now is a good time to write a new edition of SQL in a Nutshell. For example, in the first edition, I covered the two most popular open source and commercial databases on the market at that time: MySQL and PostgreSQL, as well as Oracle and Microsoft SQL Server. For the second edition, in the absence of much market information, we added coverage for both Sybase Adaptive Server (now part of SAP) and IBM DB2 UDB. Those were short-lived experiments which added very little to our sales, despite the hundreds of hours of additional work needed to add that content.
In a way, enterprise architects and database architects are faced with a similar challenge when choosing the development platform and the database platform for a new application. You want a well-supported and documented platform with ample features to support your requirements. And you also want a platform which offers plenty of skilled talent for development, administration, and operations and the occasional consultant, to help out when you're in a tight spot, as well.
Going Beyond the Hype
There are now some very powerful tools available to you to assess and track the viability of the various database platforms you might be considering. The first I'd like to point out is http://db-engines/en/ranking. This is an interesting little website that shows you the overall ranking of web and social media activity for the top 250 most popular data management systems. This ranking includes all of the old stalwarts of the relational model (Oracle, Microsoft SQL Server, MySQL, IBM DB2, Microsoft Access, PostgreSQL, etc.) as well as multitudes of NoSQL and non-relational data management systems (MongoDB, CouchBase, Cassandra, etc.).
The rankings also show you the amount of change in activity compared to the previous month's activity. For example, for the month of May, Oracle dropped by a tiny degree (-1.82 points), while SQL Server gained edged upwards (+15.99). I like the methodology for calculating their scores because it takes into account not only standard social media sentiment analysis, but also things like how many questions are asked about the platform in the popular technical discussion forums, as well as how many jobs open on the most popular technical job sites mentioning these platforms. (Their methodology is described at http://db-engines.com/en/ranking_definition).
The DB-engines.com website also offers trending information. But this is not really useful, in my opinion, since it only shows data that is collect over the last month. Few trends emerge in a single 30-day period and, as I would've guessed, the charts look almost static. On the other hand, a great tool for looking at the overall trend is at http://www.google.com/trends/explore/. There, you can enter up to five search topics to see how they've been trending over the last several years. For example, when I searched on Google Trends for "SQL," "Transact-SQL," and "PL/SQL," I could see that all three were on a rather steep decline before leveling off around 2010. Why? I would conjecture not that these terms weren't important as they used to be but that the IT professionals who use these SQL dialects have figured out, over the course of a few years, where to go directly for help rather than to ask the Google.
This combination of information is especially useful today whenever you're faced with uncertainty. For example, many DBAs are wondering about NoSQL. Should they start learning? And if so, which platform? You'd think with all of the hype in the IT press that you should start learning about them yesterday. Yet when I look at an aggregate of database popularity and activity, even the most popular NoSQL database is just a speck on the map compared to standard relational databases.
So what do you think? When you're planning your next big application, will you also analyze the overall industry trends when choosing your next platform? I wish I'd had the information offered by these websites back when I was performing the enterprise architecture function for my company. But, the good news is that I can use this information the next time I write a new edition of SQL in a Nutshell!