diseño & procesamiento de transacciones

25

Click here to load reader

Upload: blanca-parra-hernandez

Post on 24-Jul-2015

4.008 views

Category:

Education


16 download

TRANSCRIPT

Page 1: Diseño & Procesamiento de transacciones

7

Procesamiento de

Transacciones

Page 2: Diseño & Procesamiento de transacciones

Transacción

Unidad lógica de procesamiento

– Secuencia de operaciones que implican accesos a la base de datos

Una Transacción está delimitada por instrucciones de inicio transacción y fin transacción (la transacción consiste en todas las operaciones que se ejecutan entre inicio transacción y fin transacción)

Page 3: Diseño & Procesamiento de transacciones

Pasos para usar transacciones con MySQL:

* Iniciar una transacción con el uso de la sentencia BEGIN.* Actualizar, insertar o eliminar registros en la base de datos.* Si se quieren los cambios a la base de datos, completar la transacción con el uso de la sentencia COMMIT. Únicamente cuando se procesa un COMMIT los cambios hechos por las consultas serán permanentes.* Si sucede algún problema, podemos hacer uso de la sentencia ROLLBACK para cancelar los cambios que han sido realizados por las consultas que han sido ejecutadas hasta el momento.

Page 4: Diseño & Procesamiento de transacciones

… BEGIN; Inicia la transacción

COMMIT;Finaliza la transacción actual haciendo permanentes todos los cambios pendientes

ROLLBACK; Finaliza la transacción actual descartando todos los cambios pendientes .

Page 5: Diseño & Procesamiento de transacciones

Una transacción debe estar 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 cuando acaba de realizar la última instrucción

Fallida: la transacción pasa a este estado tras 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

Page 6: Diseño & Procesamiento de transacciones
Page 7: Diseño & Procesamiento de transacciones

Insert

Page 8: Diseño & Procesamiento de transacciones

Rollback (Invertir parte incompleta de la transaccion)

Page 9: Diseño & Procesamiento de transacciones

Interrumpir conexion antes de completar transaccion

Page 10: Diseño & Procesamiento de transacciones

COMMIT

Page 11: Diseño & Procesamiento de transacciones

Lecturas Coherentes

Al realizar una consulta de selección, MySQL devuelve los valores presentes de la base de datos hasta la última transacción completada. Si en el momento de realizar la consulta existe alguna transacción en progreso, los resultados de las instrucciones update o insert no se reflejarán.

Page 12: Diseño & Procesamiento de transacciones

Transaccion incompletaVentana 1 Ventana 2

Page 13: Diseño & Procesamiento de transacciones

Completar transaccionVentana 1 Ventana 2

Page 14: Diseño & Procesamiento de transacciones

Lectura de bloqueos para Actualizaciones

Para evitar que se creen registros duplicados.

UPDATE

Leer el valor actual e inserta un nuevo valor, incrementado en una unidad.

Page 15: Diseño & Procesamiento de transacciones

Operacion SimultaneaVentana 1 Ventana 2

Page 16: Diseño & Procesamiento de transacciones

Agregar registro.Ventana 1 Ventana 2

Page 17: Diseño & Procesamiento de transacciones

Se realiza consulta de seleccion en cualquier ventana…

Page 18: Diseño & Procesamiento de transacciones

Bloqueo de actualizacion

Page 19: Diseño & Procesamiento de transacciones

Bloqueo de lectura en modo compartido

Este tipo de bloqueo no devuelve un valor si el valor que esta leyendo ha sido modificado por otra transaccion incompleta. Devuelve el ultimo valor, pero no forma parte de una transaccion cuya intencion es modificar el valor.

Page 20: Diseño & Procesamiento de transacciones

Transaccion

Page 21: Diseño & Procesamiento de transacciones

Confirmaciones automaticas

De manera predeterminada, y a menos que se especifique una transaccion con BEGIN, MySQL confirma automaticamente las instrucciones.

Page 22: Diseño & Procesamiento de transacciones

Ejemplo

Page 23: Diseño & Procesamiento de transacciones

AUTOCOMMIT

Page 24: Diseño & Procesamiento de transacciones
Page 25: Diseño & Procesamiento de transacciones