Rollback (gestión de datos)
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 realizar operaciones erróneas. 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.
Reversión en cascada
Se produce una reversión en cascada 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
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
o BEGIN
sean descartados por los sistemas de gestión de bases de datos relacionales (RDBMS), de modo que el estado de los datos se "revierta" a como estaba antes de que se hicieran esos cambios.
Una declaración ROLLBACK
también liberará cualquier punto de guardado existente que pueda estar en uso.
En la mayoría de los dialectos SQL, los ROLLBACK
son específicos de la conexión. Esto significa que si se realizan dos conexiones a la misma base de datos, un ROLLBACK
realizado en una conexión no afectará a ninguna otra conexión. Esto es vital para una concurrencia adecuada.