For Transactions to be atomic and durable, need to examine
failures
Transaction-local failures, detected by the application which
calls abort eg insufficient funds. No info loss, need
to undo changes made.
Transaction-local failures , not detected by application, but by
system as whole, eg divide by zero. System calls abort.
System failures affecting transactions in progress but not media
eg CPU failure. Loss of volatile store and possibly all
transactions in progress. On recovery, special recovery manager
undoes effects of all transactions in progress at failure.
Media failures affecting database eg head crash. No way of
protecting against this.