ACID is a set of properties that you would like to apply when modifying a database.
– is a concept that Database Professionals generally look for when evaluating databases and application architectures. For a reliable database all this four attributes should be achieved.
- It is an all-or-none proposition.
- It means that you can guarantee that all of a transaction happens, or none of it does; you can do complex operations as one single unit, all or nothing, and a crash, power failure, error, or anything else won’t allow you to be in a state in which only some of the related changes have happened.
- It guarantees that a transaction never leaves your database in a half-finished state.
- Consistency means that you guarantee that your data will be consistent; none of the constraints you have on related data will ever be violated.
- It keeps transactions separated from each other until they’re finished.
- Isolation means that one transaction cannot read data from another transaction that is not yet completed. If two transactions are executing concurrently, each one will see the world as if they were executing sequentially, and if one needs to read data that is written by another, it will have to wait until the other is finished.
- It guarantees that the database will keep track of pending changes in such a way that the server can recover from an abnormal termination.
- Durability means that once a transaction is complete, it is guaranteed that all of the changes have been recorded to a durable medium (such as a hard disk), and the fact that the transaction has been completed is likewise recorded.