Propiedades ACID y Estados de las Transacciones en Bases de Datos
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 4,3 KB
Transacciones en Bases de Datos
Desde el punto de vista del usuario, una transacción en una base de datos a menudo se percibe como una única operación, aunque internamente involucre múltiples operaciones. Por ejemplo, una transferencia de fondos entre cuentas es una operación simple para el cliente, pero para la base de datos, comprende varias operaciones.
Es esencial que todas las operaciones de una transacción se completen exitosamente o, en caso de fallo, que ninguna de ellas se lleve a cabo.
Propiedades ACID
Una transacción es un proceso, en memoria, que asegura la integridad y consistencia de los datos a través de cuatro propiedades fundamentales, conocidas como propiedades ACID:
- Atomicidad: Todas las operaciones de la transacción se realizan adecuadamente en la base de datos, o ninguna de ellas se realiza.
- Consistencia: La ejecución aislada de la transacción (sin otras transacciones concurrentes) preserva la consistencia de la base de datos.
- Aislamiento: Aunque se ejecuten varias transacciones concurrentemente, el sistema garantiza que cada par de transacciones (Ti y Tj) se ejecuten de manera aislada. Para Ti, parece que Tj terminó su ejecución antes de que Ti comenzara, o que Tj comenzó después de que Ti terminara.
- Durabilidad: Tras la finalización exitosa de una transacción, los cambios realizados en la base de datos persisten incluso si hay fallos en el sistema.
Un sistema de base de datos debe garantizar la correcta ejecución de las transacciones a pesar de posibles fallos. O se ejecuta la transacción completa o no se ejecuta en absoluto. Además, debe gestionar la ejecución concurrente de transacciones para evitar inconsistencias.
Comandos de Control de Transacciones
Una transacción abarca todas las operaciones ejecutadas entre el inicio y el fin de la transacción. Generalmente, para validar permanentemente el trabajo, se utiliza el comando:
COMMIT WORK;
Como alternativa, para deshacer el trabajo de las sentencias SQL de una transacción, se utiliza el comando:
ROLLBACK WORK;
La operación COMMIT
registra los cambios en la base de datos y las operaciones en el LOG de TRANSACCIONES.
Estados de una Transacción
Una transacción puede encontrarse en uno de los siguientes estados:
- Activa (estado inicial): La transacción permanece en este estado durante su ejecución.
- Parcialmente Comprometida: La transacción pasa a este estado justo después de realizar la última instrucción.
- Fallida: La transacción pasa a este estado al descubrir que no puede continuar la ejecución normal.
- Abortada: La transacción pasa a este estado después de haber restablecido la base de datos a su estado anterior.
- Comprometida: La transacción pasa a este estado tras completarse con éxito.
Triggers (Disparadores)
Un trigger es un proceso o lógica asociada a una tabla que se activa antes o después de operaciones de INSERT
, DELETE
o UPDATE
que afectan a dicha tabla.
Funciones en PL/SQL
Definición de Función
- Una función es un bloque nombrado PL/SQL que devuelve un valor.
- Puede almacenarse en la base de datos como un objeto para ejecuciones repetidas.
- Puede ser llamada como parte de una expresión.
Dónde Llamar a las Funciones
- Como columna de un
SELECT
. - Condiciones en cláusulas
WHERE
yHAVING
. - Cláusulas
ORDER BY
yGROUP BY
. - Cláusula
VALUES
de un comandoINSERT
. - Cláusula
SET
de un comandoUPDATE
.
Restricciones en Funciones
- No se permiten comandos
INSERT
,UPDATE
oDELETE
. - La función no puede llamar a otro subprograma que infrinja las restricciones anteriores.
- Para eliminar una función:
DROP FUNCTION (nombre de la función);