Es un conjunto de órdenes que se ejecutan formando una unidad de trabajo, es decir, en forma indivisible o atómica.Teniendo esta definición también se puede decir que la transacción es una unidad lógica de trabajo.
En las transacciones de recuperación se accede a los datos para visualizarlos en la pantalla a modo de informe.En las transacciones de actualización se insertan, borran o actualizan datos de la base de datos.En las transacciones mixtas se mezclan operaciones de recuperación de datos y de actualización.
Slide 3
Propiedades
AtomicidadLa transacción es realizada completamente o no realiza ninguna acción. No puede realizar solamente mitad o parte de la transacción.ConsistenciaSolo son ejecutadas aquellas transacciones que no tiene conflicto con las reglas y directrices de integridad de la base de datos.AislamientoSi hay dos o más transacciones que en un mismo tiempo desean realizar cambio a una misma información, el sistema garantiza que cada transacción ignora al resto de las transacciones es decir que cada una se maneja de forma independiente para no generar errores.DurabilidadCuando una transacción es exitosa los cambios hechos por la transacción permanecen en el sistema y no se pueden deshacer aunque falle el sistema.
Slide 4
Estados
Transacción Activa: se encuentra en este estado justo después de iniciar su ejecución.
Transacción Parcialmente Confirmada: en este punto, se efectúan diferentes operaciones de verificación para asegurar que la transacción no interfiera con otras transacciones en ejecución.
Transacción Confirmada: Ha concluido su ejecución con éxito.
Transacción Fallida: En este caso, es posible que la transacción deba ser cancelada.
Transacción Terminada: indica que la transacción a abandonado el sistema.
Slide 5
Operaciones
Inicio de Transacción: Operación que marca el momento en el que una transacción comienza a ejecutarse.
Leer o Escribir: Operaciones de lectura/escritura de elementos de la base de datos.
Fin de la Transacción: Se verifica si la transacción debe abortarse por alguna razón.
Confirmar (COMMIT): La operación termino con éxito.
Abortar (ROLLBACK): La transacción termino sin éxito.
Slide 6
Sintaxis
Regularmente las transacciones comienzan con un BEGIN WORK y finalizan con unCOMMIT/COMMIT WORK o ROLLBACK/ROLLBACK WORK.Ejemplo:
?
1
2
3
4
5
6
7
BEGIN WORK
UPDATE Tabla SET dato = '15' WHERE dato2 = 'Manolo'
...
...
...
DELETE FROM dato = 'Manolo'
COMMIT WORK
Slide 7
Sintaxis
Hay otra manera de escribir una transacción estas son las transacciones ANSI, estas comienzan cuando inicia cualquier sentencia SQL y finaliza con un COMMIT o ROLLBACK.Ejemplo:
?
1
2
3
4
5
6
UPDATE Tabla SET dato = '15' WHERE dato2 = 'Manolo'
...
...
...
DELETE FROM dato = 'Manolo'
COMMIT
Slide 8
Sintaxis
SintaxisSAVEPOINT savepoint_nombreEjemplo:BEGIN; INSERT INTO table1 VALUES (1); SAVEPOINT my_savepoint; INSERT INTO table1 VALUES (2); ROLLBACK TO SAVEPOINT my_savepoint; INSERT INTO table1 VALUES (3); COMMIT;
Slide 9
Sintaxis
SintaxisSET TRANSACTION transaction_mode [, ...] SET SESSION CHARACTERISTICS AS TRANSACTION transaction_mode [, ...] where transaction_mode is one of: ISOLATION LEVEL { SERIALIZABLE | REPEATABLE READ | READ COMMITTED | READ UNCOMMITTED } READ WRITE | READ ONLY Ejemplo: SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; BEGIN TRANSACTION; SELECT COUNT(*) AS TotalProblems, SUM(CASE WHEN Problem LIKE '%Kenny%' THEN 1 END) AS [Kenny's Problems], SUM(CASE WHEN Problem LIKE '%printer%'THEN 1 END) AS [Printer Problems] FROM Tickets WHERE ID BETWEEN 0 AND 100000;