Failures and Recovery
In practice various things might occur to prevent a transaction from completing. Recovery methods are used to bring database, which does not satisfy consistency needs, into a consistent state. If a transaction finishes normally and commits then all the alters made by the transaction on the database are permanently registered in the database. They should not be lost. But, if a transaction does not finish normally and terminates abnormally then all the changes made by it should be discarded. An abnormal termination of a transaction may be because of various causes, including:
a) User may decide to terminate the transaction issued by him/ her
b) There may be a deadlock in the system
c) There may be a system failure.
The recovery mechanisms must make sure that a consistent state of database can be restored under all circumstances. In case of transaction terminate or deadlock, the system remains in control and can deal with the failure but in case of a system failure the system loses control because the computer itself has failed. Will the results of such type of failure be catastrophic? A database has a vast amount of useful information and any system failure should be recognised on the restart of the system. The DBMS should recover from some such failures.