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 - COMMITaction 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.