NoSQL (sometimes expanded to "not only SQL") is a broad class of database management systems that differ from the classic model of the relational database management system (RDBMS) in some significant ways.
NoSQL (sometimes expanded to "not only sql") is a broad class of database management systems that differ from the classic model of the relational database management system (rdbms) in some significant ways.
NoSQL systems:
- Specifically designed for high load
- Natively support horizontal scalability
- Fault-tolerant
- Store data in a denormalized manner
- Do not usually enforce strict database schema
- Do not usually store data in a table
- Sometimes provide eventual consistency instead of ACID transactions
In contrast to RDBMS, NoSQL systems:
- Do not guarantee data consistency
- Usually support a limited query language (a subset of SQL or another custom query language)
- May not provide support for transactions/distributed transactions
- Do not usually use some advanced concepts of RDBMS, such as triggers, views, stored procedures
NoSQL implementations can be categorized by their manner of implementation:
- Column-oriented
- Document store
- Graph
- Key-value store
- Multivalue databases
- Object databases
- Time Series
- Triplestore
- Tuple store
Free NoSQL Books
- RavenDB: Inside RavenDB
- CouchDB: The Definitive Guide
- DBA's Guide to NoSQL and Apache Cassandra
- The Little MongoDB Book
- The Little Redis Book