# Overview of ACID #flashcard
A term used to describe a set of guarantees a database may offer. While the term and definitions are generally accepted, the exact implementation to achieve these guarantees can vary. For that reason, even if a database deems itself 'ACID-compliant', you should try to understand *how* it achieves these guarantees to see if it meets your needs.
- Atomocity - if a transaction (see [[Relational Databases#Transactions]]) is being applied to the database there are only two possible outcomes. The entire transaction is successfully applied to the database or none of the transaction is applied to the database. This prevents partial or incomplete transactions.
- [[Consistency]] - only valid data is written to the database. This prevents data corruption and invalid entries to ensure the data is accurate.
- Since this guarantee is about data validity, it is actually something that can't be guaranteed by the database. The application is responsible for what data is valid in the context of the system (i.e., keeping an accounting system balanced). Many believe it was added to the acronym to make it spell something :D
- [[Isolation]] - database transaction must be treated independent of one another. In other words, one 'in-progress' transaction does not impact other transaction. Only after a transaction is completed and committed to the database will it affect subsequent transactions. In other words, each transaction can pretend it is the only one running on the database.
- [[Durability]] - guarantees all committed transactions are permanently in the database. Ensures that issues such as failed hardware, power loss, or database crashes will not impact the state of the database or its committed transactions.
<!--ID: 1751507776957-->
# Key Considerations
# Pros
# Cons
# Use Cases
# Related Topics
- [[BASE]]