The “NoSQL” revolution is tremendous on many levels. It’s practical, relevant, and useful. There are plenty of business situations where an architecture optimized for limited, targeted processing of very large amounts of data simply doesn’t need the overhead of a relational tool and can benefit from specialized functionality optimized for select purposes.
But SQL is still critical to the core operations of any enterprise. Contrary to what many new-comers might think, “NoSQL” in a given application doesn’t actually mean “No SQL” across the board in the enterprise. A lot of us who are responsible for enterprise architectures think of the expression “NoSQL” as really saying “Not Only SQL”. After all – some NoSQL tools are actually built on a SQL platform. Believe it or not, the traditional relational database is still the number one technology for handling the mission critical core services of any professional organization.
However, this truth is apparently lost on some recent arrivals in the world of software development.
About a year ago I was invited to attend a conference in Maryland of one of the leading big data vendors. Those of us attending were primarily software developers, and we all spoke in terms of various Apache open source projects and their commercial counterparts. We rarely uttered the word “Java”, yet we were all Java developers of one kind or another. And those of us in the world of Java development know better about the benefits and relative importance of both NoSQL and SQL platforms.
But I’m describing the attendees. The conversation I’m about to share was with one of the vendors who was exhibiting at the conference. (Yes, a commercial vendor was hosting a show at which they invited other commercial vendors, it happens all the time.) He was trying to sell his company’s product, of course, a product that was complementary to the host company’s core offerings. His company was one of those now-familiar business models where some developers created a cool open source project that they promoted to the Apache Software Foundation, eventually winning full project status. With that established, the developers formed a company to begin selling support for the open source ASF product, and also began building a proprietary alternative for sale. There are dozens of companies doing this nowadays, as we all know – and it’s a great business model, I love it. More power to them.
So here I was chatting with a sales rep hawking his particular product. Suddenly he declared the following:
“Well really, relational databases are dead, nobody uses those any more.”
I stopped. The first visual that popped into my head was of that time as a kid when one of your friends tell you that “nobody” does this or “everybody” does that. But as you get older, you learn that your fellow six year olds don’t necessarily have a handle on what the whole world is doing.
I’m sure this guy was a smart guy. And his company was certainly offering a valuable product. But some perspective was in order.
So I said – really? The RDBMS is dead? Let me ask you some questions. Don’t you all sell this product?
Me: Well – don’t you track sales in a database? Orders, items, linked to the catalog? You probably track orders in an RDBMS.
Him: Well … ok, yes, probably.
Me: And the customers placing those orders? You need data about any number of contact methods, like phone numbers, email addresses, where to ship, when to call, etc., all connected to the orders, sales records, etc. Probably all structured for mass mailings by correct categories at the right time. Sounds like an RDBMS. Right?
Him: OK, probably, yes.
Me: So … financial data? Employee info and HR compliance, other regulatory issues? Is that going to work in a NoSQL environment?
Him: Good point, probably not.
Me: So the RDBMS is tracking company orders, items, products, customers, employees, suppliers, accounting, finance, human resources, marketing contacts, contracts with events like this conference, and all other data associated with dollars, the law, whatever must be accurately tracked in line with the rest. Even online blog posts are probably running on an RDBMS, right? So that leaves, what, web log files and online comments for marketing trend analysis?
Him: Well no, more than that … but I see your point.
Me; NoSQL has its place. So does SQL. Both are valuable.
Lots more to go.
P.S. A huge thank you to Steve Feuerstein for encouraging this particular blog post, which is a direct result of a little exchange we had recently on this topic. Thanks, Steve!