🗃️

Database Transactions & ACID

Jul 10, 2025

Overview

This lecture discusses practical examples of when to use database transactions, explains their core properties (ACID), and helps distinguish scenarios requiring transactions from those that do not.

Database Transactions & ACID Properties

  • Database transactions ensure multiple related operations succeed or fail as a unit.
  • ACID stands for Atomicity, Consistency, Isolation, and Durability, the four key properties of database transactions.
  • Atomicity means either all transaction operations succeed or none do.
  • Consistency ensures all database rules and constraints remain valid after a transaction.
  • Isolation prevents concurrent transactions from affecting each other's outcomes.
  • Durability guarantees that once a transaction is committed, changes are permanent.

When Not to Use Transactions

  • Transactions are unnecessary for simple read operations such as SELECT queries, even if executed by many users.
  • Single, harmless inserts (e.g., user sign-up) don’t typically require transactions, as a failed operation can simply be retried.
  • Updates or deletes also may not require transactions if they do not impact other users or important data integrity.
  • However, even single operations may need transactions if they involve isolation issues—e.g., concurrent admin and user updates on the same record.

When to Use Transactions

  • Use transactions when multiple queries (insert, update, delete) must all succeed together to maintain data integrity.
  • Example: Purchasing a course requires updating user points, enrolling in the course, and recording the transaction in a ledger—these should occur within one transaction.
  • If any step fails, all related operations must be rolled back to avoid inconsistent or incorrect data.
  • Frameworks allow you to begin a transaction, execute queries, then commit if successful or roll back on failure.

Practical Flow of a Transaction

  • Begin the transaction.
  • Perform all necessary SQL queries.
  • If all succeed, commit the transaction; if any fail, roll back all changes.

Key Terms & Definitions

  • Database Transaction — A sequence of operations treated as a single logical unit of work.
  • Atomicity — Ensures all operations within a transaction complete successfully or none do.
  • Consistency — Maintains database rules and constraints after a transaction.
  • Isolation — Keeps transactions separate to avoid interference.
  • Durability — Makes committed transaction changes permanent.

Action Items / Next Steps

  • Review implementation of transactions in your chosen programming language.
  • Analyze your application scenarios to decide where transactions are necessary.
  • Practice writing transaction flows with commit and rollback logic.