SlideShare una empresa de Scribd logo
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

macros Lenguaje ensamblador
macros Lenguaje ensambladormacros Lenguaje ensamblador
macros Lenguaje ensamblador
Jesus Adrian Muñoa Martinez
 
MOM - Message Oriented Middleware
MOM - Message Oriented MiddlewareMOM - Message Oriented Middleware
MOM - Message Oriented Middleware
Peter R. Egli
 
BD. control de concurrencia
BD. control de concurrenciaBD. control de concurrencia
BD. control de concurrencia
liras loca
 
The CAP Theorem
The CAP Theorem The CAP Theorem
The CAP Theorem
Aleksandar Bradic
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
Anuja Arosha
 
2. Distributed Systems Hardware & Software concepts
2. Distributed Systems Hardware & Software concepts2. Distributed Systems Hardware & Software concepts
2. Distributed Systems Hardware & Software concepts
Prajakta Rane
 
TELNET and SSH by MUSTAFA SAKHAI
TELNET and SSH by MUSTAFA SAKHAITELNET and SSH by MUSTAFA SAKHAI
TELNET and SSH by MUSTAFA SAKHAI
MUSTAFA SAKHAI
 
SMTP Simple Mail Transfer Protocol
SMTP Simple Mail Transfer ProtocolSMTP Simple Mail Transfer Protocol
SMTP Simple Mail Transfer Protocol
SIDDARAMAIAHMC
 
OSI (open systems interconnection) Model
OSI (open systems interconnection) ModelOSI (open systems interconnection) Model
OSI (open systems interconnection) Model
Netwax Lab
 
Chapter 3.4.pptx
Chapter 3.4.pptxChapter 3.4.pptx
Chapter 3.4.pptx
kalavathisugan
 
Diseño & Procesamiento de transacciones
Diseño & Procesamiento de transaccionesDiseño & Procesamiento de transacciones
Diseño & Procesamiento de transaccionesBlanca Parra
 
Sequence diagrams
Sequence diagramsSequence diagrams
Sequence diagrams
Preeti Mishra
 
Administración de transacciones, problemas, candados e interbloqueos
Administración de transacciones, problemas, candados e interbloqueosAdministración de transacciones, problemas, candados e interbloqueos
Administración de transacciones, problemas, candados e interbloqueos
jocuva101
 
Fundamentos de Redes. Tema 2 (complementaria)
Fundamentos de Redes. Tema 2 (complementaria)Fundamentos de Redes. Tema 2 (complementaria)
Fundamentos de Redes. Tema 2 (complementaria)
Miguel Ángel Martín Tardío
 
Traductor y su estructura
Traductor y su estructuraTraductor y su estructura
Traductor y su estructura
Angel Miguel Coria Lopez
 
Uml diagrams
Uml diagramsUml diagrams
Uml diagrams
barney92
 
01 - Introduction to Distributed Systems
01 - Introduction to Distributed Systems01 - Introduction to Distributed Systems
01 - Introduction to Distributed Systems
Dilum Bandara
 
Distributed Mutual exclusion algorithms
Distributed Mutual exclusion algorithmsDistributed Mutual exclusion algorithms
Distributed Mutual exclusion algorithms
MNM Jain Engineering College
 

La actualidad más candente (20)

macros Lenguaje ensamblador
macros Lenguaje ensambladormacros Lenguaje ensamblador
macros Lenguaje ensamblador
 
MOM - Message Oriented Middleware
MOM - Message Oriented MiddlewareMOM - Message Oriented Middleware
MOM - Message Oriented Middleware
 
BD. control de concurrencia
BD. control de concurrenciaBD. control de concurrencia
BD. control de concurrencia
 
The CAP Theorem
The CAP Theorem The CAP Theorem
The CAP Theorem
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 
Mk ppt chapter 5
Mk ppt chapter 5Mk ppt chapter 5
Mk ppt chapter 5
 
2. Distributed Systems Hardware & Software concepts
2. Distributed Systems Hardware & Software concepts2. Distributed Systems Hardware & Software concepts
2. Distributed Systems Hardware & Software concepts
 
TELNET and SSH by MUSTAFA SAKHAI
TELNET and SSH by MUSTAFA SAKHAITELNET and SSH by MUSTAFA SAKHAI
TELNET and SSH by MUSTAFA SAKHAI
 
SMTP Simple Mail Transfer Protocol
SMTP Simple Mail Transfer ProtocolSMTP Simple Mail Transfer Protocol
SMTP Simple Mail Transfer Protocol
 
OSI (open systems interconnection) Model
OSI (open systems interconnection) ModelOSI (open systems interconnection) Model
OSI (open systems interconnection) Model
 
Chapter 3.4.pptx
Chapter 3.4.pptxChapter 3.4.pptx
Chapter 3.4.pptx
 
Diseño & Procesamiento de transacciones
Diseño & Procesamiento de transaccionesDiseño & Procesamiento de transacciones
Diseño & Procesamiento de transacciones
 
Sequence diagrams
Sequence diagramsSequence diagrams
Sequence diagrams
 
Administración de transacciones, problemas, candados e interbloqueos
Administración de transacciones, problemas, candados e interbloqueosAdministración de transacciones, problemas, candados e interbloqueos
Administración de transacciones, problemas, candados e interbloqueos
 
Fundamentos de Redes. Tema 2 (complementaria)
Fundamentos de Redes. Tema 2 (complementaria)Fundamentos de Redes. Tema 2 (complementaria)
Fundamentos de Redes. Tema 2 (complementaria)
 
Traductor y su estructura
Traductor y su estructuraTraductor y su estructura
Traductor y su estructura
 
Uml diagrams
Uml diagramsUml diagrams
Uml diagrams
 
01 - Introduction to Distributed Systems
01 - Introduction to Distributed Systems01 - Introduction to Distributed Systems
01 - Introduction to Distributed Systems
 
Distributed Mutual exclusion algorithms
Distributed Mutual exclusion algorithmsDistributed Mutual exclusion algorithms
Distributed Mutual exclusion algorithms
 
Icmp
IcmpIcmp
Icmp
 

Similar a Transacciones en MySQL

Transacciones en transact sql
Transacciones en transact sqlTransacciones en transact sql
Transacciones en transact sql
Freddy Poma Inga
 
Transacciones en mysql
Transacciones en mysqlTransacciones en mysql
Transacciones en mysqlCarmen Sena C
 
B.d
B.dB.d
Gestion de base de datos
Gestion de base de datosGestion de base de datos
Gestion de base de datosjuanmanuel_29
 
Cuestiones de repaso_capitulo_20
Cuestiones de repaso_capitulo_20Cuestiones de repaso_capitulo_20
Cuestiones de repaso_capitulo_20
Carlos Francisco Ojeda Ureña
 
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
GrupoTresPacEspe
 
Transaccion
TransaccionTransaccion
Transaccion
Alberto Torres
 
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
José Antonio Sandoval Acosta
 
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
Ivan Luis Jimenez
 
RECICLAJE
RECICLAJERECICLAJE
RECICLAJE
andres0p
 
Gestion de transacciones "Investigación"
Gestion de transacciones "Investigación"Gestion de transacciones "Investigación"
Gestion de transacciones "Investigación"
UNIVERSIDAD VERACRUZANA
 
Transacciones base de datos
Transacciones base de datosTransacciones base de datos
Transacciones base de datos
Jose Musett
 
TRANSACCIONES
TRANSACCIONESTRANSACCIONES
TRANSACCIONES
Lisbeth Ocaña Bueno
 
Transacciones
TransaccionesTransacciones
Transacciones
Gloria Sosa Vera
 
Transacciones
TransaccionesTransacciones
Transacciones
Vicente Alberca
 
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
Pipe Muñoz
 
Transaccion
TransaccionTransaccion
Transaccion
Jorge Mengelle
 

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
 
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
 
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
 
Tarea
TareaTarea
Tarea
 
Transacciones
TransaccionesTransacciones
Transacciones
 
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
 

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