For far too long now I have sat idly by as the NoSQL movement spread across our industry. One after another, these so-called “databases” with weird names have been attacking the sanctity of my beloved relational databases.
By the way, what is it with these names? Mongo, Couch, Raven, Cassandra? What is this, OccupyDataStores? Whatever happened to SQL Server, Oracle g, DB 2, even MySQL? Now, those are names you could set your watch to!
But I digress. The time has come to stand up to the scourge of NoSQL. Today, I am calling on developers everywhere to join a new movement dedicated to bringing back the golden era of relational databases: MoreSQL (check out the sweet logo below):
What We’re About
We at MoreSQL believe in the following axioms:
1. Universal Applicability: there is no such thing as a problem which cannot be solved with relational databases. It doesn’t matter what you’re storing or how you need to use it. Tabular structures (which may or may not be linked via foreign keys) are the only way to go. End of discussion.
2. Ends Justify Means: as corollary to axiom 1, we will do whatever it takes to make SQL work for us. Views, stored procedures, cross-database calls: you name it, we’ll do it. Oh and by the way, using ORMs does not mean that you’re trying to shove a round peg into a square hole. They are beautiful and enchanting, OK?
3. Scale, shmale: relational databases can scale well enough. I mean, Facebook is running on MySQL, for crying out loud! Are you better than Facebook and its 10 trillion active users? I didn’t think so.
What We Can Do
My fellow MoreSQLites, allow me to present some techniques to aid you in your noble quest.
The most effective way to promote relational databases is to put them anywhere you can think of.
First of, if you’re starting a new app, you should be using SQL (no IFs, ANDs, or WHEREs about it). Now, if someone on your team starts talking about using document or graph databases, I recommend a three-pronged strategy of “ignore, mock, and scowl” (in that order).
Second, if you already have a running app, you may need to get creative. Ask yourself this simple question: “Am I really using a relational database everywhere I can? Am I? Really?“.
For example, some people frown on using relational databases for caching application objects. “You don’t need SQL for stuff like that, it is unnecessary overhead” they say. Well, that may all be well and good, but since when was a movement stopped by well reasoned arguments? Wouldn’t be much of a movement if we let that happen! Also, just remember the First Axiom and you’ll be fine.
“Discredit, Discredit, Discredit”
Another simple yet effective technique is casting as much doubt on NoSQL as you can. Oracle set the bar quite high in this area with their fantastic “Debunking the NoSQL Hype” article from May of this year. I just wish they kept up a copy of it on their website so that we could all learn from their wisdom.
This fight will not be easy, but it must be fought and it must be won. Just remember: they may take away our queries, but they will never take our freedom (to store things in tables). Fight on!
You may also like:
Did you love / hate / were unmoved by this post?
Then show your support / disgust / indifference by following me on Twitter!