What’s your take on RDBMS and NoSQL?
My take is that application developers have belatedly but correctly concluded that an RDBMS is not the best tool for every application. For example, relational algebra, relational calculus, and SQL are not the best tools for graph problems. As another example, weblogs are non-transactional and don’t benefit from the ACID properties of the RDBMS. Amazon created the Dynamo key-value store for a highly specific use case. From the Dynamo white paper: “Customers should be able to view and add items to their shopping cart even if disks are failing, network routes are flapping, or data centers are being destroyed by tornados. … There are many services on Amazon’s platform that only need primary-key access to a data store. … Simple read and write operations to a data item that is uniquely identified by a key. Data is stored as binary objects (i.e., blobs) identified by unique keys. No operations span multiple data items and there is no need for relational schema. … The operation environment is assumed to be non-hostile and there are no security related requirements such as authentication and authorization.”
What’s your take?
P.S. I wasn’t always of this opinion because, until very recently, I had not studied NoSQL technologies. But my favorite quote is the one on consistency from Emerson’s essay on self-reliance: “The other terror that scares us from self-trust is our consistency; a reverence for our past act or word … bring the past for judgment into the thousand-eyed present, and live ever in a new day. … A foolish consistency is the hobgoblin of little minds, adored by little statesmen and philosophers and divines. … Speak what you think now in hard words, and to-morrow speak what to-morrow thinks in hard words again, though it contradict every thing you said to-day.” (http://www.emersoncentral.com/selfreliance.htm)
However, I don’t give a free pass to the NoSQL camp. I believe that most of the problems that the NoSQL camp is trying to solve, with the sole exception of graph problems, could have been solved within the framework of relational theory. Since the relational camp couldn’t (or wouldn’t) solve the problems, the NoSQL camp came up with their own solutions and threw out the baby (relational theory) along with the bathwater (the perceived deficiencies of relational theory). My topic for the Great Lakes Oracle Conference is therefore “Soul-searching for the relational camp: Why NoSQL and Big Data have momentum.” (https://www.neooug.org/gloc/accepted-presentations.aspx)