New waves of application development technology are often incompatible with old ways of thinking. Typically, when a brave new world opens to programmers, a healthy portion of them will cast aside the old ways in favor of the new. But the NoSQL movement is not about throwing out your SQL databases to be replaced by key-value stores. NoSQL, ironically, has nothing to do with avoiding SQL, and everything to do with the judicious use of relational databases.
NoSQL databases encompass a large swath of new databases. They include the Apache Cassandra Project, an array of key-value stores such as Tokyo Cabinet, and even document databases like CouchDB and MongoDB. NoSQL is a broad term that has more to do with what a database isn’t rather than what it is.
Ping Li, general partner at Accel Partners, a venture capital firm in Silicon Valley, said his firm is watching the NoSQL movement closely but does not yet see a clear leader in which to invest. “It will be some time before one of [the NoSQL databases] becomes truly horizontal,” he said.
“I think it’s a fragmented market. I think if you believe there’s a whole set of applications that are going be cloud-like, they’re going to be built on this type of database.”
Why to use
Mike Gualtieri, senior analyst at Forrester Research, said that NoSQL doesn’t have anything to do with throwing out a relational database. He said that NoSQL really stands for “Not Only SQL.” He added that a NoSQL database can make a great alternative to spending enterprise funds on a new Oracle rack of database servers.
Gualtieri said NoSQL is “not a substitute for a database; it can augment a database. For transaction types of processing, you still need a database. You need integrity for those transactions. For storing other data, we don’t need that consistency. NoSQL is a great way to store all that extra data.”
He said that saving actual customer purchasing information is better suited to a relational database, while storing more ephemeral information, such as customer product ratings and comments, is more appropriate for a NoSQL database.
That means developers working with large Oracle installations can rationalize the addition of a NoSQL layer into their application stack. While Gualtieri said that doing so introduces complexity into operations and architecture, developers win out in the end because most NoSQL databases are built on top of extremely simple APIs that make building applications a breeze.