NoSQL (Not Only SQL) databases emerged in the late 2000s to address the limitations of traditional relational databases when dealing with massive-scale web applications (Facebook, Google, Amazon) that required handling billions of records, thousands of concurrent users, and flexible, evolving data schemas.
The simplest NoSQL model. Data is stored as a collection of key-value pairs, like a giant hash map.
Data is stored as JSON-like documents. Each document can have a completely different structure (schema-less). Documents can contain nested objects and arrays.
Data is stored in tables, but each row can have a different set of columns. Columns are grouped into column families. Optimized for reading and writing large volumes of data across many servers.
Data is represented as nodes (entities) and edges (relationships). Optimized for traversing complex relationships.
Most NoSQL databases sacrifice strong consistency for availability and partition tolerance (AP systems). They provide Eventual Consistency: after a write, all replicas will eventually converge to the same value, but reads immediately after the write might return stale data. This is acceptable for many use cases (like a social media likes count being temporarily off by a few).