En las tecnologías de bases de datos , una reversión es una operación que devuelve la base de datos a algún estado anterior. Las reversiones son importantes para la integridad de la base de datos , porque significan que la base de datos se puede restaurar a una copia limpia incluso después de que se realicen operaciones erróneas. [1] Son cruciales para recuperarse de fallas del servidor de bases de datos; al revertir cualquier transacción que estuviera activa en el momento del bloqueo, la base de datos se restaura a un estado consistente.
La función de reversión generalmente se implementa con un registro de transacciones , pero también se puede implementar mediante un control de concurrencia multiversión .
Una reversión en cascada ocurre en los sistemas de bases de datos cuando una transacción (T1) causa una falla y se debe realizar una reversión. Otras transacciones que dependen de las acciones de T1 también deben revertirse debido al fallo de T1, provocando así un efecto en cascada. Es decir, el fracaso de una transacción provoca el fracaso de muchas.
Las técnicas prácticas de recuperación de bases de datos garantizan una reversión sin cascada, por lo que una reversión en cascada no es un resultado deseable. La reversión en cascada la programa dba.
SQL se refiere al lenguaje de consulta estructurado, un tipo de lenguaje utilizado para acceder, actualizar y manipular bases de datos. En SQL , ROLLBACK
es un comando que hace que todos los cambios de datos desde el último START TRANSACTION
sean BEGIN
descartados por los sistemas de administración de bases de datos relacionales (RDBMS), de modo que el estado de los datos se "revierta" a la forma en que estaban antes de que se realizaran esos cambios. . [2]
Una ROLLBACK
declaración también liberará cualquier punto de guardado existente que pueda estar en uso.
En la mayoría de los dialectos SQL, ROLLBACK
los correos electrónicos son específicos de la conexión. Esto significa que si se realizan dos conexiones a la misma base de datos, una ROLLBACK
conexión realizada en una conexión no afectará a ninguna otra conexión. Esto es vital para una concurrencia adecuada .