NoSQL databases—or “not only” Structured Query Language databases—are a broad class of newer database management systems that do not use SQL’s classical relational database management model.
Companies like Google and Amazon have developed their own NoSQL database systems to address several common concerns with the SQL model, primarily:
1. Speed: SQL databases can slow systems down to a crawl, especially when millions of users are doing lookups against tables with millions of rows of data.
2. Mapping: SQL’s relational data doesn’t map well to programming structures with complex data types or hierarchical data like XML. Complex objects that contain other objects and lists do not usually map to a single row in a single table.
3. Programming Ease: Because SQL data doesn’t map as well, writing the software code becomes more difficult using SQL, and we don’t want to drive our programmers crazy!
(Read more on the SQL vs. NoSQL debate here.)