Before we go into the details of why we
need recovery controls, we would first like to
clarif the meaning of recovery. In Date's
words [l], recovery is depicted as "Recovery in
database system means, primarily, recovering
the database itself-that is, restoring the
database to a state that is known to be correct
after some failure has rendered the current state
incorrect, or at least suspicious." There are
several possible reasons for a transaction to fail
in the middle of the execution. For example,
system crash (computer failure) may cause error
in the computer system during transaction
execution. Some transactions might violate the
concurrency control enforcement and the
control may decide to abort the transaction
because it violates serializability or because
several transactions are in a state of deadlock.
Physical problems (media failure) may happen
such as head crash on the disk, fire or sabotage.
For a system crash, the content in the buffer
memory is a critical point. The state of any
transaction in a progress is not known; such a
transaction did not successfully complete, and
so must be undone (rolled back) when the
system restarts. For example, while some
students are updating the record a power failure
occurs. Hence. those unfinished transactions
must be rolled back. For data protection when
media failure occurs, the backup copy of
registration database is needed for restoration,
there is no need for a roll back.