transaciones en mysql

11
Transaciones En Mysql Y Handler TSU. JOSAFAT AGUILAR OLIVARES

Upload: josafat-aguilar-olivares

Post on 21-Jul-2015

161 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Transaciones en mysql

Transaciones En MysqlY

Handler

TSU. JOSAFAT AGUILAR OLIVARES

Page 2: Transaciones en mysql

¿Que es una transacion?

• Es un conjunto de órdenes que se ejecutan formando unaunidad de trabajo, es decir, en forma indivisible o

atómica.Un SGBD se dice transaccional si es capaz de mantener laintegridad de los datos, haciendo que estas transaccionesno puedan finalizar en un estado intermedio.

Page 3: Transaciones en mysql

Propiedades

• Atomicidad: Una transacción debe ser una unidad atómica detrabajo, tanto si se realizan todas sus modificaciones en los datos,como si no se realiza ninguna de ellas.

• Coherencia: Cuando finaliza, una transacción debe dejar todoslos datos en un estado coherente. En una base de datos relacional,se deben aplicar todas las reglas a las modificaciones de latransacción para mantener la integridad de todos los datos. Todaslas estructuras internas de datos, como índices de árbol b o listasdoblemente vinculadas, deben estar correctas al final de latransacción.

Page 4: Transaciones en mysql

Propiedades

• Aislamiento: Las modificaciones realizadas por transaccionessimultáneas se deben aislar de las modificaciones llevadas a cabopor otras transacciones simultáneas. Una transacción reconoce losdatos en el estado en que estaban antes de que otra transacciónsimultánea los modificara o después de que la segunda transacciónhaya concluido, pero no reconoce un estado intermedio. Esto seconoce como seriabilidad, ya que deriva en la capacidad de volver acargar los datos iníciales y reproducir una serie de transaccionespara finalizar con los datos en el mismo estado en que estabandespués de realizar las transacciones originales.

• Durabilidad: Una vez concluida una transacción, sus efectos sonpermanentes en el sistema. Las modificaciones persisten aún en elcaso de producirse un error del sistema.

Page 5: Transaciones en mysql

Funcionamiento de una transacción

Las transacciones explicitas son aquellas que nosotros indicamos con la sentencia begin transaction / commit o rollback transaction.

Page 6: Transaciones en mysql

Handler

• Un handler es una función que se accionará cuando ocurra un evento. Sobre todo está relacionada con los componentes.

• Ejemplo

• Creamos una tabla:

Page 7: Transaciones en mysql

Handler

• Después creamos esta otra que contiene una clave ajena que hace referencia a la anterior :

• Después intentamos insertar un valor en la tabla t3, se trata de un valor que no se encuentra en la columna de t2 que referencia… lo que arroja el siguiente error en la consola de mysql:

Page 8: Transaciones en mysql

Handler

• Error

• Para manejar el error creamos un handler que almacenara el error en una tabla que vamos a crear donde iremos guardando un log de errores

Page 9: Transaciones en mysql

Handler

• Ahora creamos el procedimiento almacenado que se encargara de introducir datos en la BD y manejar excepciones:

Page 10: Transaciones en mysql

Handler

• De esta manera para introducir valores en la base de datos lo haces llamando al procedimiento para que maneje los errores y tener un mayor control sobre la aplicación.

• Sintaxis para declarar handlers:

• declare {exit | continue } handler for {error-number | {SQLSTATE error-string}}

Page 11: Transaciones en mysql

Conclusión

• Una Transacción está delimitada por instrucciones deinicio transacción y fin transacción (la transacciónconsiste en todas las operaciones que se ejecutan entreinicio transacción y fin transacción)