Anda di halaman 1dari 13

Transacciones

UDEP – BD 2011-I
Transacción
 Una transacción es una unidad lógica de procesamiento
de la base que incluye una o más operaciones de acceso a
la base de datos, que pueden ser de inserción, eliminación,
modificación o recuperación.
 La transacción se crea con un bloque de instrucciones
que se hacen todas o ninguna.
Consistencia
 Una transacción debe asegurar que exista consistencia al
finalizar su ejecución.
 No necesariamente existe consistencia mientras la
transacción está en proceso
Propiedades de transacciones
 Las transacciones tipo ACID poseen cuatro propiedades:
 Atomicidad
 Consistencia
 Aislamiento
 Durabilidad
Atomicidad
 Se refiere al hecho de que una transacción se trata como
una unidad de operación.
 Por lo tanto, o todas las acciones de la transacción se
realizan o ninguna de ellas se lleva a cabo.
 La atomicidad requiere que si una transacción se
interrumpe por una falla, sus resultados parciales sean
anulados.
Consistencia
 La consistencia de una transacción es simplemente su
correctitud. En otras palabras, una transacción es un
programa correcto que lleva a la base de datos de un
estado consistente a otro con la misma característica.
 Debido a esto, las transacciones no violan las
restricciones de integridad de una base de datos.
Aislamiento
 Una transacción en ejecución no puede revelar sus
resultados a otras transacciones concurrentes antes de
finalizar.
 Más aún, si varias transacciones se ejecutan
concurrentemente, los resultados deben ser los mismos
que si ellas se hubieran ejecutado de manera secuencial.
Durabilidad o permanencia
 Es la propiedad de las transacciones que asegura que una
vez que una transacción finaliza exitosamente, sus
resultados son permanentes y no pueden ser borrados de
la base de datos por alguna falla posterior.
 Por lo tanto, los RDBMS aseguran que los resultados de
una transacción sobrevivirán a fallas del sistema.
 Esta propiedad motiva el aspecto de recuperación de
base de datos, el cual trata sobre cómo recuperar la base
de datos a un estado consistente donde todas las
acciones que han finalizado con éxito queden reflejadas
en la base.
Comandos en MySQL
 START TRANSACTION, COMMIT y ROLLBACK,
 Por defecto, MySQL se ejecuta con el modo autocommit
activado. Esto significa que en cuanto ejecute un comando
que actualice (modifique) una tabla, MySQL almacena la
actualización en disco.
 Si se necesita desactivar el comando autocommit
utilice el comando:
SET AUTOCOMMIT=0;
Comandos en MySQL
 Orden de comandos

Instrucciones Commit
Estado Start Estado final
de lectura y
inicial Transaction consistente
escritura

Rollback

 Si se detecta una falla en el bloque de instrucciones se ejecuta


el Rollback de forma automática
Ejemplos MySQL
START TRANSACTION;
SELECT @A:=SUM(salary) FROM table1 WHERE type=1;
UPDATE table2 SET summary=@A WHERE type=1;
COMMIT;
Ejemplos MySQL
START TRANSACTION;
SELECT @A := presupuesto
FROM departamentos_externos
WHERE codigo =11;
INSERT INTO departamentos( codigo, nombre,
presupuesto )
VALUES ( 11, „Department test‟, @A );
COMMIT;
Ejemplos MySQL
 Transacción que anula la inserción:

BEGIN;
INSERT INTO t_venta VALUES(1,2,'Laptop',25);
ROLLBACK;

Anda mungkin juga menyukai