**NoSQL** (also rendered **Not Only SQL**) is a broad category of [[Database management system|database management systems]] that diverge from the [[Relational model|relational model]] traditionally used in [[Relational database|relational databases]], offering alternative [[Data model|data models]] and storage architectures suited to large-scale, distributed, or highly variable data workloads. NoSQL databases are characterized by their flexibility in handling [[Unstructured data|unstructured]] or [[Semi-structured data|semi-structured data]], their ability to scale horizontally across distributed [[Computer cluster|clusters]], and their relaxation of the strict [[ACID|atomicity, consistency, isolation, and durability]] (ACID) guarantees of relational systems in favor of eventual consistency models described by the [[CAP theorem|CAP theorem]] and [[BASE (database transaction processing)|BASE]] properties. The term gained currency in the late 2000s as technology companies including [[Google]], [[Amazon (company)|Amazon]], and [[Facebook]] developed and open-sourced data infrastructure capable of handling internet-scale data volumes. NoSQL databases are grouped into several broad categories based on their underlying data model. **[[Document-oriented database|Document stores]]** persist data as self-describing documents, typically in [[JSON|JSON]] or [[BSON|BSON]] format, allowing flexible schemas that vary across records; prominent examples include [[MongoDB]] and [[Couchbase]]. **[[Key-value store|Key-value stores]]** provide simple hash-table-like structures offering very high throughput for lookup-intensive workloads, with [[Redis]] and [[Amazon DynamoDB|DynamoDB]] being widely used implementations. **[[Column-oriented database|Wide-column stores]]**, such as [[Apache Cassandra|Cassandra]] and [[Apache HBase|HBase]], organize data into column families suited to write-heavy, time-series, or sparse data workloads. **[[Graph database|Graph databases]]**, including [[Neo4j]] and [[Amazon Neptune|Neptune]], represent data as nodes and edges, enabling efficient traversal of complex relationship networks. **[[Multi-model database|Multi-model databases]]** support more than one of these paradigms within a single system, reflecting a convergence trend in the database market. NoSQL systems rose to prominence in response to the limitations of relational databases in handling the volume, velocity, and variety of data generated by web-scale applications and [[Big data|big data]] workloads. Their schema-flexible designs enable rapid iteration during application development, while their distributed architectures support [[Horizontal scaling|horizontal scaling]] by adding commodity nodes rather than requiring expensive vertical hardware upgrades. However, NoSQL databases involve trade-offs including reduced query expressiveness compared to [[SQL|Structured Query Language]], weaker consistency guarantees in many implementations, and higher operational complexity in distributed deployments. The boundaries between relational and NoSQL systems have blurred in recent years, as relational databases have incorporated [[JSON]] support and distributed capabilities, while many NoSQL systems have added SQL-compatible query interfaces and optional ACID transactions.