Why do you promote RDBMs?

(Originally posted on my linkedin on Sep 8, 2017)

Following is based on a true conversation…

Smarty Pants (SP) : Akki, which is better? RDBMS or No-SQL?

Me : Which solution are you building?

SP : This is an enterprise solution

Me :  You have business data?

SP : Yes

Me :  Business transactions?

SP : Yes

Me : Are these transactions part of a business process? With people/teams and systems come and go at different stages?

SP : Yes

Me :  Guess, you need an RDBMS

SP : Why do you say RDBMS is better than No-SQL?

Me :  I said you need RDBMS for your problem

SP : Why are you promoting RDBMS?

Me :  I am not promoting RDBMS but that is what is suitable for your situation

SP : Explain

Me :  You will need strong ACID support. And so, support for normalized db store

SP : Thats cliche and beaten to death. You are old and prejudice.

Me :  Really? Which part? Your solution doesn’t need ACID support or normalization is not required?

SP : Why do you assume you can’t do these in a NoSQL?

Me :  But why would I even look at NoSQL? Thats meant for different set of problems. How do you ensure transaction boundaries and something like 2-phase commit in a NoSQL?

SP : See, you do not know enough about NoSQL but have decided so quickly. Which NoSQL db you are familiar with?

Me :  I worked with a couple. Mongo is what I am more familiar with.

SP : Which version?

Me :  Don’t remember. Downloaded 6 months back. Whichever was latest. Needed a store for unstructured data and Mongo is really good

SP : You don’t even know which version of db you are using. Mongo 3.x version has something called isolation that can give you transaction boundary and guaranteed commits.

Me :  Good to know. But I guess that is supported for special cases. If you do that with all business transactions in the system, I would expect it to be very expensive operation in not normalized, redundant, huge documents of MongoDb. Because MongoDB is not built for that.

SP : Again you are being prejudice. Why can’t you normalize in MongoDb? You can have your data normalized and have isolation to ensure your transactions.

Me :  What?? if I am going to normalize my data in a NoSQL and mimic RDBMS transactions, why should I even use MongoDB? Its an apology for NoSQL/MongoDb. They are created to solve totally different problems

SP : You are not moving with times. You are not updated.

Me :  Really! Why do we have an Excel and Word? You can have all graphics, text, formatting etc., within Excel itself? Why? Am I favoring one to other if I pick Word for text document and Excel for a spreadsheet?

SP : You are so adamant. Many like Facebook are using noSQL. You know that?

Me :  I know and they are doing that and rightly so. They are not building an enterprise business solution the way you described your problem. I will be curious to see where their internal financials are managed.

SP : You are stuck in 90’s and not appreciating new technologies

Me :  I give up. And glad I am not born after 1985! And haven’t learned computer science from wikipedia.

-Akki (No plans to retire any time soon)

This entry was posted in Big Data, NOSQL, RDBMS, Startup. Bookmark the permalink.

Leave a Reply