For most of the Web era, Relational Database Management Systems (RDBMS) based on SQL have dominated the database landscape. But over the course of the last year, a new approach has begun to take hold known as NoSQL, offering an alternative to the traditional RDBMS.
This week at the NoSQL Live conference in Boston, multiple open source projects and the vendors that back them will talk about the merits and limitations of the new approach. While projects like CouchDB, MongoDB, Cassandra and Valdemort are in use by some of the biggest names in the Web, including Twitter, Sourceforge, Facebook and LinkedIn, the NoSQL approach might not be for everyone, though it will make sense for a certain class of development.
"The NoSQL movement has recognized that a new class of applications doesn't need all the heavyweight rigid structure that comes along with a SQL RDBMS," Cloudant CEO Alan Hoffman told InternetNews.com. "There are a new class of problems that can be solved with different types of database solutions that in some cases require more flexible data storage systems."
Cloudant provides commercial services for the open source Apache CouchDB NoSQL database.
As opposed to an RDBMS, which uses a relational model to link data, the NoSQL approach takes a different tack.
"We don't use a relational model. We use a document-oriented model," Kyle Banker, a software engineer at MongoDB backer 10gen, told InternetNews.com.
Banker noted that the document-oriented model used by MongoDB is similar to the approach that CouchDB takes. Using the document model, a complex object can be represented in a single entity. For example, Banker described a test application in which users vote on posts or comments, and all of the votes could be represented within the comment object, providing a more cohesive view of the data.
"In some ways you reduce the complexity," Banker said. "If you look at a lot of the RDBMS schemas you see many tables, and many of those tables are joins across tables that represent trivial relationships."
A typical RDBMS is made up of tables and rows rather than the flatter NoSQL type of approach. In the example of the voting application, the votes table would have a user ID and a comment ID in an RDBMS representation, Banker noted. In contrast, with a NoSQL approach, the data can be represented in a single object. The simplicity of the data model in MongoDB can make the database itself faster, he said.
Banker said that the open source project repository Sourceforge is now using MongoDB to handle project information for its software pages.
"So if you go to a project page on Sourceforge and you look at all the data describing a project including all the different commits, authors and descriptions, it ends up being a lot of data and to represent that in a relational database is really complex," Banker said. "The other approach is to represent the data as a document object, which is what they ended up doing, so all the richness of that data on a project page is in a single MongoDB document."
Not everyone is sold on the idea that NoSQL-type databases are the solution to all that is wrong with modern databases, however. Mark Atwood, community development director at memcached vendor Gear6, doesn't think that NoSQL databases mean that SQL is dead.
"The future is near but it is not yet," Atwood told InternetNews.com. "There is a lack of operational experience, a lack of tools and there is not even a really good set of understandings on which non-relational datastores are good for which use cases."
In Atwood's view, the learning curve many of the NoSQL systems can be too steep, particularly in cases when the RDBMS approach would only require a database with a few tables. He noted that not all of the NoSQL database query tools are as well understood as their SQL counterparts, which have been in use for many years.
"The real point is that SQL is not dead and it's not dying," Atwood said. "It is unwise for people to be betting their system on a NoSQL solution unless they really understand what they are doing."
NoSQL backers admit that they still have challenges to address. Cloudant's Hoffman noted that there needs to be more education for developers about NoSQL databases to drive broader adoption.
"All of the solutions including CouchDB are certainly not as robust or as mature as something like MySQL. There needs to be more development and work done," Hoffman said. "As they become more mature, the ecosystem will grow up around them."
To 10gen's Banker, the NoSQL solution could hit the mainstream once it reaches a critical mass of users brave enough to try the technology to prove that it actually works.
"Once people see more NoSQL databases in production, I think it will help persuade the Oracle-bound people that it's a good idea," Banker said.
Sean Michael Kerner is a senior editor at InternetNews.com, the news service of Internet.com, the network for technology professionals.