Abstract


Benefits


  • Ensure Data never falls into an inconsistent state because of an Transaction that only partially completes
  • Guarantees that a READ will return the latest successful WRITE

Cons


  • Costly
  • Difficult to scale

Terminologies


Atomic

  • A quality that ensures each Transaction is fully committed or not at all
  • It treats each Transaction as a single unit of change to Database and can’t be partially completed
  • Transaction is either committed or rolled back

Consistent

  • A quality that ensures the Database is in a consistent and valid state after a Transaction is committed
  • It prevents the Database from being corrupted

Isolation

  • Ensures that Transaction are independent
  • Each Transaction can occur as though they were occurring one by one, even though they’re actually occurring simultaneously
  • Ensures that data is managed between database operations so it is not used in Transaction simultaneously. Instead, the first transaction will complete, and then the next will begin

Durable

  • Permanently preserves all Transaction by saving to permanent storage, not kept in volatile memory
  • Ensures changes to data made by successfully executed Transaction will be saved, even in the event of system failure (like power loss)