# Overview The term NoSQL database has become a catch-all term for all non-[[Relational Databases]] with the term NoSQL meaning 'not-only [[SQL]]'. Each type of NoSQL database uses its own approach to store data in a method that differs from the traditional tables, rows, and columns of relational databases. The types of NoSQL databases include: ![[Types of NoSQL Databases#Overview]] # Key Considerations One the defining characteristics of NoSQL databases are their lacks of a rigid schema, which makes them a strong candidate for storing unstructured, semi-structured, or structured data in the same location. No schema does not mean no [[Data Modeling]], though. There is still a need to design data in a NoSQL database that meets the needs of your use case while making the most out of the selected database. A lack of schema simply means their is more flexibility in the data model and how to handle data which may have different or missing attributes. Typically, this flexibility comes with a tradeoff on the [[ACID]] properties of a relational database. Many NoSQL databases are described as having [[BASE]] properties, but there are ACID compliant implementations of some NoSQL databases. ![[BASE#Overview]] As mentioned previously, not all NoSQL databases exhibit BASE properties. It is important to know which [[Consistency]] model is used by your NoSQL database. ## General Use Cases - Flexible Data Models - [[Horizontal Scaling]] - Handing Bid Data and Real-time Web Apps # Implementation Details ## [[Scalability]] ### Indexing Scaling on a NoSQL database also requires implementing indexes. The indexing strategy can differ depending on the specific database and use case. Find more information on [[Database Index]]. # Useful Links # Related Topics ## Reference #### Working Notes #### Sources #### Topics to Cover - BASE - Types - [[In-memory DB]] - [[Document Database]] - [[Blob Storage]] - [[Columnar]] - [[Graph Database]] - [[Key-value Store]] - [[Ledger DB]] #### Related Topics -