SlideShare una empresa de Scribd logo
1 de 7
2013
                                  Práctica
       [Tutorial de Transacciones MySQL]




Equipo 1


Castañeda Vázquez Lidia
Herrera García Anakaren
Vargas Martínez Héctor M.



                                 1|Página
Transacciones en MySQL
Práctica




1. INTRODUCCIÓN



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 ejecución. De hecho, podríamos decir que las transacciones
aportan una característica de "deshacer" a las aplicaciones de bases de datos.


Son mucho más seguras y fáciles de recuperar si se produce algún 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 más tiempo en ejecutarse.


Un ejemplo típico de esto es una transacción bancaria. Por ejemplo, si una
cantidad de dinero es transferida de la cuenta de una persona a otra, se
requerirán          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 algún
imprevisto y "se cae" el sistema después de que se ejecuta la primer consulta,
pero la segunda aún 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|Página
Transacciones en MySQL
Práctica



ninguna de ellas. Es aquí donde las transacciones toman un papel muy
importante.


Los pasos para usar transacciones en MySQL son:


      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.




2. DESARROLLO


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




                                                                       2|Página
Transacciones en MySQL
Práctica




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 pasaría si la conexión se perdiera de repente y el programa se cerrara
por alguna razón o que cerráramos MySQL los datos no se guardarían.




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 serán
                               permanentes y así de esta forma garantizamos


                                                                   3|Página
Transacciones en MySQL
Práctica



que todos los datos que anexemos a nuestra tabla entraran todos o ninguno.

Veamos otros ejemplos de cómo 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 transacción.




                                                                   4|Página
Transacciones en MySQL
Práctica




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 razón 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|Página
Transacciones en MySQL
Práctica



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|Página

Más contenido relacionado

La actualidad más candente

automatas finitos
 automatas finitos automatas finitos
automatas finitosAnel Sosa
 
Niveles De Aislamiento
Niveles De AislamientoNiveles De Aislamiento
Niveles De Aislamientoguest1db220
 
Estados y transiciones de los procesos
Estados y transiciones de los procesosEstados y transiciones de los procesos
Estados y transiciones de los procesosAlberto Ch
 
Administración de Transacciones - del tema 1 al 4
Administración de Transacciones - del tema 1 al 4Administración de Transacciones - del tema 1 al 4
Administración de Transacciones - del tema 1 al 4Mayito Pdg
 
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y libreriasTópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y libreriasJosé Antonio Sandoval Acosta
 
ESTRUCTURAS DE CONTROL
ESTRUCTURAS DE CONTROLESTRUCTURAS DE CONTROL
ESTRUCTURAS DE CONTROLDarkStarPlay
 
Lenguajes de interfaz
Lenguajes de interfazLenguajes de interfaz
Lenguajes de interfazXavi Flores
 
maquinas de turing
maquinas de turingmaquinas de turing
maquinas de turingAnel Sosa
 
Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Osiris Mirerus
 
Portafolio lenguajes y automatas unidad 3 - Autómatas finitos
Portafolio lenguajes y automatas unidad 3 - Autómatas finitosPortafolio lenguajes y automatas unidad 3 - Autómatas finitos
Portafolio lenguajes y automatas unidad 3 - Autómatas finitosHumano Terricola
 
Los lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turingLos lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turingJonathan Bastidas
 
Generación código intermedio 2
Generación código intermedio 2Generación código intermedio 2
Generación código intermedio 2Humano Terricola
 
Estructura de lenguaje ensamblador
Estructura de lenguaje ensambladorEstructura de lenguaje ensamblador
Estructura de lenguaje ensambladorEustakiu Padilla
 

La actualidad más candente (20)

automatas finitos
 automatas finitos automatas finitos
automatas finitos
 
Ejercicios
EjerciciosEjercicios
Ejercicios
 
Niveles De Aislamiento
Niveles De AislamientoNiveles De Aislamiento
Niveles De Aislamiento
 
Analizador léxico
Analizador léxicoAnalizador léxico
Analizador léxico
 
Estados y transiciones de los procesos
Estados y transiciones de los procesosEstados y transiciones de los procesos
Estados y transiciones de los procesos
 
Taller de Base de Datos - Unidad 5 transacciones
Taller de Base de Datos - Unidad 5  transaccionesTaller de Base de Datos - Unidad 5  transacciones
Taller de Base de Datos - Unidad 5 transacciones
 
Capitulo 6
Capitulo 6Capitulo 6
Capitulo 6
 
Administración de Transacciones - del tema 1 al 4
Administración de Transacciones - del tema 1 al 4Administración de Transacciones - del tema 1 al 4
Administración de Transacciones - del tema 1 al 4
 
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y libreriasTópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
 
ESTRUCTURAS DE CONTROL
ESTRUCTURAS DE CONTROLESTRUCTURAS DE CONTROL
ESTRUCTURAS DE CONTROL
 
Lenguajes de interfaz
Lenguajes de interfazLenguajes de interfaz
Lenguajes de interfaz
 
Conceptos Fundamentales de Base de Datos
Conceptos Fundamentales de Base de DatosConceptos Fundamentales de Base de Datos
Conceptos Fundamentales de Base de Datos
 
maquinas de turing
maquinas de turingmaquinas de turing
maquinas de turing
 
Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1
 
Portafolio lenguajes y automatas unidad 3 - Autómatas finitos
Portafolio lenguajes y automatas unidad 3 - Autómatas finitosPortafolio lenguajes y automatas unidad 3 - Autómatas finitos
Portafolio lenguajes y automatas unidad 3 - Autómatas finitos
 
Los lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turingLos lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turing
 
Transacciones y errores en mysql
Transacciones y errores en mysqlTransacciones y errores en mysql
Transacciones y errores en mysql
 
Estándares para el Modelado de Procesos de Negocios
Estándares para el Modelado de Procesos de NegociosEstándares para el Modelado de Procesos de Negocios
Estándares para el Modelado de Procesos de Negocios
 
Generación código intermedio 2
Generación código intermedio 2Generación código intermedio 2
Generación código intermedio 2
 
Estructura de lenguaje ensamblador
Estructura de lenguaje ensambladorEstructura de lenguaje ensamblador
Estructura de lenguaje ensamblador
 

Similar a Transacciones en MySQL

Similar a Transacciones en MySQL (20)

Transacciones en transact sql
Transacciones en transact sqlTransacciones en transact sql
Transacciones en transact sql
 
Transacciones en mysql
Transacciones en mysqlTransacciones en mysql
Transacciones en mysql
 
B.d
B.dB.d
B.d
 
B.d
B.dB.d
B.d
 
Gestion de base de datos
Gestion de base de datosGestion de base de datos
Gestion de base de datos
 
Transacciones
TransaccionesTransacciones
Transacciones
 
Cuestiones de repaso_capitulo_20
Cuestiones de repaso_capitulo_20Cuestiones de repaso_capitulo_20
Cuestiones de repaso_capitulo_20
 
Saturacion base de datos - Ejemplos Parte 1
Saturacion base de datos  - Ejemplos Parte 1Saturacion base de datos  - Ejemplos Parte 1
Saturacion base de datos - Ejemplos Parte 1
 
Transaccion
TransaccionTransaccion
Transaccion
 
Practica- Transacciones y Concurrencia en Oracle y MySQL
Practica- Transacciones y Concurrencia en Oracle y MySQLPractica- Transacciones y Concurrencia en Oracle y MySQL
Practica- Transacciones y Concurrencia en Oracle y MySQL
 
RECICLAJE
RECICLAJERECICLAJE
RECICLAJE
 
Gestion de transacciones "Investigación"
Gestion de transacciones "Investigación"Gestion de transacciones "Investigación"
Gestion de transacciones "Investigación"
 
Transacciones base de datos
Transacciones base de datosTransacciones base de datos
Transacciones base de datos
 
TRANSACCIONES
TRANSACCIONESTRANSACCIONES
TRANSACCIONES
 
Transacciones
TransaccionesTransacciones
Transacciones
 
Tarea
TareaTarea
Tarea
 
Transacciones
TransaccionesTransacciones
Transacciones
 
Implementacion de bases de datos en mysql
Implementacion de bases de datos en mysqlImplementacion de bases de datos en mysql
Implementacion de bases de datos en mysql
 
Transaccion
TransaccionTransaccion
Transaccion
 
CUESTIONES DEL CAPITULO 20
CUESTIONES DEL CAPITULO 20CUESTIONES DEL CAPITULO 20
CUESTIONES DEL CAPITULO 20
 

Transacciones en MySQL

  • 1. 2013 Práctica [Tutorial de Transacciones MySQL] Equipo 1 Castañeda Vázquez Lidia Herrera García Anakaren Vargas Martínez Héctor M. 1|Página
  • 2. Transacciones en MySQL Práctica 1. INTRODUCCIÓN 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 ejecución. De hecho, podríamos decir que las transacciones aportan una característica de "deshacer" a las aplicaciones de bases de datos. Son mucho más seguras y fáciles de recuperar si se produce algún 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 más tiempo en ejecutarse. Un ejemplo típico de esto es una transacción bancaria. Por ejemplo, si una cantidad de dinero es transferida de la cuenta de una persona a otra, se requerirán 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 algún imprevisto y "se cae" el sistema después de que se ejecuta la primer consulta, pero la segunda aún 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|Página
  • 3. Transacciones en MySQL Práctica ninguna de ellas. Es aquí donde las transacciones toman un papel muy importante. Los pasos para usar transacciones en MySQL son: 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. 2. DESARROLLO Para que lo anterior quede mejor comprendido crearemos unas tablas utilizando los principales comandos de las transacciones. 2|Página
  • 4. Transacciones en MySQL Práctica 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 pasaría si la conexión se perdiera de repente y el programa se cerrara por alguna razón o que cerráramos MySQL los datos no se guardarían. 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 serán permanentes y así de esta forma garantizamos 3|Página
  • 5. Transacciones en MySQL Práctica que todos los datos que anexemos a nuestra tabla entraran todos o ninguno. Veamos otros ejemplos de cómo 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 transacción. 4|Página
  • 6. Transacciones en MySQL Práctica 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 razón 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|Página
  • 7. Transacciones en MySQL Práctica 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|Página