- [[DynamoDB]] - [[MongoDB]] - [[CouchDB]] ### General --- - flexible schema compared to [[SQL Databases]] - types include 1. key value stores (i.e [[Redis]]) 2. document databases (i.e [[MongoDB]]) 3. wide column stores (i.e [[Cassandra]]) 4. graph databases (i.e [[Neo4j]]) - we typically query by document, i.e: ![[CleanShot 2025-02-28 at 16.40.39.png|200]] - join operations aren't supported - [[JSON]] NoSQL DB allows 1:1 mapping between program objects and stored database documents - reasons to choose NoSQL over [[SQL Databases]]: - data is unstructured, or no relational data - application requires super low [[Latency]] - you need to store a massive amount of data - you only need to [[Serialize]] or deserialize data ([[JSON]], YAML etc.) - typically scales by [[Horizontal Scaling]] - sacrifices [[ACID]] compliance for performance and scalability ### When To Choose NoSQL --- - large volumes of unstructured data - want flexibility in data structure - rapid development - (that requires a lot of flexibility)