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

How do you maintain a database?

512


1. What is Container? 2. Tell me about your project? 3. Which container you are used in your project? 4. What is Surrogate key? 5. How you are implemented it? 6. Difference between Server job and Parallel job? 7. What is your Target Database? 8. What is Source System? 9. Difference between Join and Lookup? 10. Are you maintaining historical data? What is the logic used to maintained to historical data? 11. Do you have documents for mapping?

1354


What do you mean by buffer manager?

520


What are the importance of database in banking?

511


What are five advantages of a database?

478






What is rdbms data?

508


Why indexing is used in database?

501


Explain ddl interpreter?

638


What is the difference between a shared lock and exclusive lock?

495


What is building blocks of client/server?

525


How a Store Procedure called with a cursor out parameter.?

562


What types of questions are asked in NIC(Natinal Informatics Centre)'s interview?If any one has any information about this,I would be very thankful to him/her.....

1432


Is mysql a rdbms?

517


What is inner join in database?

521


What are the applications of database?

491