Transactions#
The solution to concurrency control is to treat the user’s queries as a single transaction. A transaction (or Xact) is a batch of queries that are extracted to line by line instructions.
A sequence of read and writes to the DBMS
Transactions are applied to the database once commited and ended or else they are aborted.
Any logic (e.g., arithmetic) are computed within the transaction and not known to the DBMS.
Properties#
The basic properties of a transaction are acronymed to be ACID:
Atomicity
All actions in the transaction happen or none of it happen.
Solved by requiring every transaction to have a
COMMIT
action at the end of their transaction. This line must be ran otherwise the transaction aborted.
Consistency
If the DB starts out consistent, it ends up consistent at the end of the transaction.
You can intepret consistency using the schema.
Isolation
Execution of each transaction is isolated from that of the others
Solved with a transaction manager/scheduler
Durability
If a transaction commits, then its effects persist.
Transactions are logged, if the transaction is not commited then use the log to undo. If the transaction is commited then use the log to redo.