views:

485

answers:

3

I'm looking for a real-world example for the various ACID properties of a database.

+1  A: 

This is an ACID tutorial with sample real-world applications of each.

le dorfier
+1  A: 

Take any given perl script you use to manipulate a data in a relational database, put a "BEGIN" at the top of it and a "COMMIT" at the bottom, and you know the perl script worked, or didn't have effect your database at all (unless you inserted DDL statements on mysql). Atomicity is very powerful to have an assurance like that when designing robust software (and my favorite of the properties).

Todd Gardner
+4  A: 
  • Atomicity - a transaction to transfer funds from one account to another involves making a withdrawal operation from the first account and a deposit operation on the second. If the deposit operation failed, you don’t want the withdrawal operation to happen either.

  • Consistency - a database tracking a checking account may only allow unique check numbers to exist for each transaction

  • Isolation - a teller looking up a balance must be isolated from a concurrent transaction involving a withdrawal from the same account. Only when the withdrawal transaction commits successfully and the teller looks at the balance again will the new balance be reported.

  • Durability - A system crash or any other failure must not be allowed to lose the results of a transaction or the contents of the database. Durability is often achieved through separate transaction logs that can "re-create" all transactions from some picked point in time (like a backup).

(summary of the real world examples from le dorfier's link)

eggdrop