* El sistema se bloquea: Cortes de energía inesperados, mal funcionamiento del hardware.
* fallas de transacción: Una transacción puede fallar a mitad de camino debido a errores o conflictos.
* fallas en los medios: El disco se bloquea, daños a los dispositivos de almacenamiento.
* Errores de software: Errores en el sistema de gestión de bases de datos (DBMS).
El sistema de control de recuperación logra esto a través de una combinación de técnicas, principalmente:
* Registro: Esto implica registrar todas las modificaciones de la base de datos (transacciones) en un archivo de registro especial. Las entradas de registro generalmente incluyen información como la ID de transacción, el tipo de operación (insertar, actualizar, eliminar), los datos afectados y las marcas de tiempo. Este registro actúa como un historial de todos los cambios realizados en la base de datos.
* Punta de control: Este es un proceso de escribir periódicamente el estado actual de la base de datos (por ejemplo, una lista de transacciones activas) a un archivo de punto de control. Los puntos de control reducen significativamente la cantidad de trabajo necesario durante la recuperación, ya que proporciona un estado consistente conocido para comenzar.
* Algoritmos de recuperación: Estos algoritmos usan el registro y los puntos de control para deshacer los efectos de las transacciones incompletas (aquellas que fallaron antes de cometer) y rehacer los efectos de las transacciones comprometidas que aún no se han escrito en la base de datos (debido a un bloqueo antes de la finalización). Se emplean diferentes algoritmos (por ejemplo, deshacer/rehacer, rehacer) dependiendo de los DBM específicos y su estrategia de recuperación.
Tipos de recuperación:
* Deshacer recuperación: Esto se centra en revertir los efectos de las transacciones incompletas. Utiliza el registro para identificar y revertir los cambios realizados por transacciones que no se completaron con éxito.
* Recuperación de rehacer: Esto implica volver a aplicar los cambios realizados por transacciones comprometidas que aún no se escribieron en la base de datos en el momento de la falla.
* Recuperación de deshacer/rehacer: Esto combina estrategias de deshacer y rehacer para manejar transacciones incompletas y no comprometidas. Este es el tipo de recuperación más común.
En esencia, el sistema de control de recuperación actúa como una póliza de seguro contra la pérdida de datos e inconsistencias. Asegura que incluso en caso de fallas, la base de datos pueda volver a un estado consistente que refleje las transacciones comprometidas, preservando la integridad de los datos y manteniendo la confianza del usuario.