![]() |
||
Registro histórico (LOG)
La estructura mas ampliamente usada para guardar las modificaciones de una base de datos es el registro histórico. El registro histórico es una secuencia de registros y mantiene un registro de todas las actividades de actualización de la base de datos. Un registro de actualización del registro histórico describe una única escritura en la base de datos y tiene los siguientes campos: Identificador de la transacción: Es un identificador único de la transacción que realiza la operación escribir. Identificador del elemento de datos: Es un identificador único del elemento de datos. Valor anterior: Es el valor que tenia el elemento antes de la escritura Valor nuevo: El que tiene después. Ejemplo <Ti iniciada> La transacción ha comenzado <Ti, Xj, V1, V2> La transacción ha realizado una escritura sobre el dato Xj. Xj. tenia el valor V1 antes de la escritura y tiene el valor V2 después de ella. <Ti comprometida> La transacción Ti se ha comprometido Hay dos técnicas principales de implementar este tipo de recuperación: Modificación diferida de base de datos Modificación inmediata de la base de datos. Modificación diferida de la base de datos: La técnica de la modificación diferida garantiza la atomicidad de las transacciones mediante el almacenamiento de todas las modificaciones de la base de datos en el registro histórico, pero retardando la ejecución de todas las operaciones de escritura de una transacción hasta que la transacción se compromete parcialmente. El registro histórico se utiliza luego para dar lugar a la transacción final. En este caso no es necesario utilizar el campo "Valor anterior" ante fallos. Modificación inmediata de la base de datos: Esta técnica permite realizar la salida de las modificaciones de la base de datos a la propia BD mientras que la transacción esta todavía en estado activo. Las modificaciones de datos escritas por transacciones activas se denominan modificaciones no comprometidas. En caso de fallo, el sistema debe utilizar el campo "Valor anterior" de los registros del registro histórico para restaurar los elementos de datos modificados a los valores que tuvieran antes de comenzar la transacción. |
![]() |