Each transaction is all or nothing, never left half-done.
Transaction Rollback (=Abort)
Undoes partial effects of transaction
Can be system or client initiated
Each client, each transaction:
Can assume all constraints hold when transaction begins
Must guarantee all contraints hold when transaction ends
Serializability -> contraints always hold
Each client sends a sequence of transaction to the database, each transaction can be a sequence of statements
Isolation -> Serializability
Operations may be interleaved, but execution must be equivalent to some sequential order of all transactions.
If system crashes after a transaction commits, all effects of transaction remain in database.