# 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
-