• begin: There is a transaction. Any updates have to be kept private until the commit succeeds.

  • where ...: A query. What is the fastest way to find qualifying rows?

  • update: Rows that have been read will be updated. (There may be 0, 1 or 2 rows updated.)

  • commit: Guarantee ACID properties.
    • Is the state of the database correct? (Consistent)
    • Are there reads or writes that are incompatible with the transaction's isolation level? If so, abort the transaction — discard all updates. (Isolated)
    • Write the row updates to disk. (Durable)
    • Make all of the updates public. (Atomic)