What are ACID properties?

Answer Posted / bilal

ACID properties are an important concept for databases. The
acronym stands for Atomicity, Consistency, Isolation, and
Durability.

Atomicity:

The phrase "all or nothing" succinctly describes the first
ACID property of atomicity. When an update occurs to a
database, either all or none of the update becomes available
to anyone beyond the user or application performing the
update. This update to the database is called a transaction
and it either commits or aborts. This means that only a
fragment of the update cannot be placed into the database,
should a problem occur with either the hardware or the
software involved. Features to consider for atomicity:

* a transaction is a unit of operation - either all the
transaction's actions are completed or none are
* atomicity is maintained in the presence of deadlocks
* atomicity is maintained in the presence of database
software failures
* atomicity is maintained in the presence of application
software failures
* atomicity is maintained in the presence of CPU failures
* atomicity is maintained in the presence of disk failures
* atomicity can be turned off at the system level
* atomicity can be turned off at the session level

Consistency:

Consistency is the ACID property that ensures that any
changes to values in an instance are consistent with changes
to other values in the same instance. A consistency
constraint is a predicate on data which serves as a
precondition, post-condition, and transformation condition
on any transaction.

Isolation:

The isolation portion of the ACID properties is needed when
there are concurrent transactions. Concurrent transactions
are transactions that occur at the same time, such as shared
multiple users accessing shared objects. This situation is
illustrated at the top of the figure as activities occurring
over time. The safeguards used by a DBMS to prevent
conflicts between concurrent transactions are a concept
referred to as isolation.

As an example, if two people are updating the same catalog
item, it's not acceptable for one person's changes to be
"clobbered" when the second person saves a different set of
changes. Both users should be able to work in isolation,
working as though he or she is the only user. Each set of
changes must be isolated from those of the other users.
An important concept to understanding isolation through
transactions is serializability. Transactions are
serializable when the effect on the database is the same
whether the transactions are executed in serial order or in
an interleaved fashion. As you can see at the top of the
figure, Transactions 1 through Transaction 3 are executing
concurrently over time. The effect on the DBMS is that the
transactions may execute in serial order based on
consistency and isolation requirements. If you look at the
bottom of the figure, you can see several ways in which
these transactions may execute. It is important to note that
a serialized execution does not imply the first transactions
will automatically be the ones that will terminate before
other transactions in the serial order.

Degrees of isolation:
* degree 0 - a transaction does not overwrite data updated
by another user or process ("dirty data") of other transactions
* degree 1 - degree 0 plus a transaction does not commit any
writes until it completes all its writes (until the end of
transaction)
* degree 2 - degree 1 plus a transaction does not read dirty
data from other transactions
* degree 3 - degree 2 plus other transactions do not dirty
data read by a transaction before the transaction commits

Durability:

Maintaining updates of committed transactions is critical.
These updates must never be lost. The ACID property of
durability addresses this need. Durability refers to the
ability of the system to recover committed transaction
updates if either the system or the storage media fails.
Features to consider for durability:

* recovery to the most recent successful commit after a
database software failure
* recovery to the most recent successful commit after an
application software failure
* recovery to the most recent successful commit after a CPU
failure
* recovery to the most recent successful backup after a disk
failure
* recovery to the most recent successful commit after a data
disk failure


Thanks

Is This Answer Correct ?    7 Yes 2 No



Post New Answer       View All Answers


Please Help Members By Posting Answers For Below Questions

What are the 4 types of database?

655


What are the functions of rdbms?

578


Differentiate between nested loop, hash loop and merge join.

542


What are the advantages of a database?

578


What is variable dbms?

606






How to tell firebird to only accept conections from xyz host or network?

616


Describe the difference between homogeneous and heterogeneous distributed database.

599


How big is google's database?

552


What is entity relationship diagram?

572


Define identity and uniqueidentifier property of column?

626


What is type of end users?

549


What is db driver?

576


What are the parts of a table?

559


Describe the four types of indexes.

626


What is a driver in programming?

572