SQL and NoSQL Comparison: When is a NoSQL database a better option than a “traditional” RDBMS?
Author: Mark Perlstein | 2 min read | February 28, 2013
The departure of NoSQL from RDBMS comes in the form of optimized retrieval and appending of data, high level of scalability with relative low costs, ease of parallel programming, flexibility of data content over data structures, ease of working with non-traditional data, and rapid development. The downsides of NoSQL systems are lack of SQL based interfaces for end-user querying, limited structure level integrity constraints and limited transaction processing support. The emphasis of NoSQL databases is more on availability, scalability and eventual consistency than RDBMS ACID (Atomicity, Consistency, Isolation, Durability) properties. Some NoSQL databases also provide advanced features such as Sharding, which takes Database Partitioning to a new level in terms of horizontal scalability and availability.
Modern day applications ushered in a gamut of use cases that RDBMS are not properly equipped to handle. NoSQL systems are built to handle these gaps. Here are some interesting use cases where NoSQL databases are better alternatives compared to RDBMS:
Dealing with unstructured and non-traditional data:
- Medical health records processing, media level content management, geospatial mapping, etc.
- Limited primary entities; but activities and relationships on those objects are abundant: social networking, messaging, cloud-based repositories, fire-hose feeds, etc.
- Dealing with massive data sets with variety of sources: big data applications, trading, applications that need on-the-fly horizontal scaling, etc.
- Real time decision making based on dynamic events: trends, fraud detection, enterprise security, inventory controls, etc.
Need for aggregated summaries:
- Data visualization of large data sets, sentiment analysis, log analysis, etc.
- Real time analytics: online gaming, ad targeting, stock prices, enterprise dashboards, etc.
Complex parallel programming:
- MapReduce implementations, statistical programming, network routing, etc.
NoSQL databases and RDBMS could and should work together in modern applications. Enterprises such as Facebook, Foursquare, Forbes, Disney and Craigslist deploy and decide when to use NoSQL databases and RDBMS technologies to provide the best user experience for their users. Most well-rounded modern software programs will employ both RDBMS and NoSQL technologies and work alongside for optimal outcomes.