Vous êtes sur la page 1sur 7

2013

[Tutorial de Transacciones MySQL]


Prctica

Equipo 1 Castaeda Vzquez Lidia Herrera Garca Anakaren Vargas Martnez Hctor M.

1|Pgina

Transacciones en MySQL Prctica

1. INTRODUCCIN

Las transacciones aportan una fiabilidad superior a las bases de datos. Si disponemos de una serie de consultas SQL que deben ejecutarse en conjunto, con el uso de transacciones podemos tener la certeza de que nunca nos quedaremos a medio camino de su ejecucin. De hecho, podramos decir que las transacciones aportan una caracterstica de "deshacer" a las aplicaciones de bases de datos. Son mucho ms seguras y fciles de recuperar si se produce algn fallo en el servidor, ya que las consultas se ejecutan o no en su totalidad. Por otra parte, las transacciones pueden hacer que las consultas tarden ms tiempo en ejecutarse. Un ejemplo tpico de esto es una transaccin bancaria. Por ejemplo, si una cantidad de dinero es transferida de la cuenta de una persona a otra, se requerirn por lo menos dos consultas:

UPDATE cuentas SET balance = balance - cantidad_transferida WHERE cliente = persona1; UPDATE cuentas SET balance = balance + cantidad_transferida WHERE cliente = persona2; Estas dos consultas deben trabajar bien, pero que sucede si ocurre algn imprevisto y "se cae" el sistema despus de que se ejecuta la primer consulta, pero la segunda an no se ha completado?. La persona1 tendr una cantidad de dinero removida de su cuenta, y creer que ha realizado su pago, sin embargo, la persona2 estar enfadada puesto que pensar que no se le ha depositado el dinero que le deben. En este ejemplo tan sencillo se ilustra la necesidad de que las consultas sean ejecutadas de manera conjunta, o en su caso, que no se ejecute 1|Pgina

Transacciones en MySQL Prctica

ninguna de ellas. Es aqu donde las transacciones toman un papel muy importante. Los pasos para usar transacciones en MySQL son: Iniciar una transaccin 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 transaccin con el uso de la sentencia COMMIT. nicamente cuando se procesa un COMMIT los cambios hechos por las consultas sern permanentes.

Si sucede algn 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.

2. DESARROLLO
Para que lo anterior quede mejor comprendido crearemos unas tablas utilizando los principales comandos de las transacciones.

2|Pgina

Transacciones en MySQL Prctica

Hasta aqu todo va normal o hasta donde nosotros sabemos ahora bien que pasa si anteponemos el comando BEGIN antes de seguir agregando datos.

Como podemos ver los datos anexados nos los muestra pero si ejecutamos el comando ROLLBACK los cambios se desvanecen. O simplemente no se guardan Lo mismo pasara si la conexin se perdiera de repente y el programa se cerrara por alguna razn o que cerrramos MySQL los datos no se guardaran.

Ahora bien para poder asegurar que los datos se guardan ocuparemos el siguiente comando. Con el comando COMMIT damos por hecho que los cambios que se efectuaran en la tabla sern permanentes y as de esta forma garantizamos 3|Pgina

Transacciones en MySQL Prctica

que todos los datos que anexemos a nuestra tabla entraran todos o ninguno. Veamos otros ejemplos de cmo podemos usar estas comandos para realizar transacciones seguras.

En este ejemplo crearemos nuestra tabla y le agregaremos un registro. Lo haremos desde la consola para que se pueda apreciar mejor.

Ya que hemos agregado el registro haremos un UPDATE pero con una transaccin.

4|Pgina

Transacciones en MySQL Prctica

Como pudimos ver los cambios se realizaron de manera correcta pero al poner el comando ROLLBACK todo vuelve a la normalidad al igual que en ejemplo anterior esto funciona si por alguna razn se nos cerrara nuestra base de datos los registros no se actualizaran y la BD se quedara como al principio. Ahora veremos que cuando ponernos el comando COMMIT los datos se guardan de manera definitiva.

De esta manera podemos comprobar que los datos que aparecen antes de poner el comando COMMIT son los mismos.

5|Pgina

Transacciones en MySQL Prctica

Con esto terminamos nuestro mini tutorial acerca de transacciones en MySQL, esperamos que les haya quedado claro o por lo menos que despejemos alguna duda.

6|Pgina

Vous aimerez peut-être aussi