NoSQL databases have been the subject of considerable debate as developers and systems architects disagree on where they're most useful. Some technologists are skeptical that NoSQL will even fill a long-term need: They believe NoSQL databases will be limited to niche applications and that SQL databases will continue to be the dominant model. Such concerns ignore fundamental changes to how and why applications are developed. NoSQL is definitely here to stay, for a variety of reasons.
Scalability and Big Data
The days of gigabytes of data are gone; even modestly sized applications now must cope with terabytes or petabytes of data, much of it constantly changing and growing. As the data load continues to grow, IT organizations need a way to scale up quickly and flexibly without investing hundreds of thousands of dollars in building single-server solutions that become increasingly expensive with scale.
NoSQL databases make it easy to meet expanding needs because they're built to scale out, instead of scale up. By automatically functioning across pools of inexpensive commodity servers or cloud computing instances, NoSQL databases enable sites to increase (or decrease) capacity cost-effectively you can have a high-performance system even if you don't necessarily have the largest budget.
And because they have fewer limits on scalability, NoSQL databases are much better equipped to handle the volume of data that modern applications need. The amount of data we use is not going to shrink, so the need for database management systems that can handle the growth is permanent.
Changing System Architectures
With the advent of cloud computing, the way that systems are set up has changed drastically, and will continue to change as new server types and technologies become available. A database instance might easily be spread across thousands of nodes, located around the world, and serving millions of widely dispersed customers simultaneously.
NoSQL databases natively work with modern system architectures, which means they're set up to scale across an unlimited number of servers and continue functioning normally even as nodes are added and removed. This design dramatically reduces scaling costs as well as server administration and setup time. Many NoSQL databases are also location-aware, making it easy to accelerate data delivery to users based on geography.
Ease of Use
Because they don't have fixed schemas, NoSQL databases are known for being easy to work with. You can code applications quickly, without worrying about time spent migrating data to new schemas as your application evolves. In addition, document-oriented databases make it unnecessary to have object-oriented code transform requests into SQL queries, and then change the SQL results back into objects that fit in with the application logic. So will NoSQL databases displace RDBMS technology across the spectrum of applications? No. Not anytime soon, anyway. But for the vast majority of applications, NoSQL databases and particularly document databases offer the scale, flexibility, and ease-of-use that applications require.
Matt Asay is the Vice President of Corporate Strategy at 10gen, the company behind MongoDB. Matt is a well-known open source advocate and former board member of the Open Source Initiative (OSI).



Comments:
2013-02-07T23:30:41
No, eventual consistency isn't acceptable for financial transactions and a few other strict cases, but it is useful when looking at what a particularly set of visitors has been doing on your Web site recently. If you have a set composed of 350 visitors, and you haven't incorporated the most recent visit from one of them, you can still draw some useful conclusions from all the visits of the other 349 and most of the visits of the 350th. If you want to respond in real time, it's best to sum up all the data you've got, not all the data you want. Matt is right, NoSQL is here to stay. Charlie Babcock, edfitor at large, InformationWeek
Permalink
2013-02-06T17:35:58
And it looks like Oracle is trying to keep pace with your sentiments: http://is.gd/vCAUGr
Permalink
2013-01-29T23:56:50
NoSQL has uses, but the inherent strengths for easy coding become challenges when it comes time to do enterprise level reporting (Extract, Transform and Load from a relational OTP system is far easier than from a system that uses "bags" of data) or integrate with ad-hoc reporting tools that are commonly used such as Crystal Reports.
For that reason I far prefer traditional relational data stores *unless* the project has a requirement for the kinds of scalability that massive social networks require. "Eventually Consistent" in a finance context is just an alias for "Timing Attack", which means there are some contexts where specific forms of NoSQL are just non-starters.
The key is to see technologies as pieces of a puzzle. I have had more than one NoSQL convert suggest we abandon all of the Analysis Services and Crystal work we had done because it cramped his ability to just toss data into bags and avoid using an ORM layer. Um, no. Cultism isn't architecture.
Permalink
2013-01-28T15:44:36
For more depth on NoSQL, see "The NoSQL Alternative" by Ken North at http://is.gd/jKdiC2
Permalink