7/25/2019 Transacciones en Base de Datos
1/12
INSTITUTO TECNOLOGICO DE IGUALA
Materia: Base de Datos Distribuidas
Nombre del Profesor: Jos Luis Zagal Arce
Integrantes del Equipo.
Ma. Alejandra Ta ia !ern"nde# 126 !!"2$s%aldo &alladares Za'aleta 126 !!"1Dulce (oc)o Dimas *igueroa 126 !1#$Denc+ Aurora Padilla Jaimes 1!6 !2%"
Antonio (odr)gue# (osas 126 !1#2Da'id ,mmanuel &alle Abarca 126 !!$#
UNIDAD #
Aula: ,- /0 1emestre
2ngenier)a en 1istemas 3om utacionales
Turno Matutino
2guala de la 2nde endencia a 45 de No'iembre del 6578
ContenidoINTRODUCCION................................................................................................3DEFINICIN. ...................................................................................................... 3CARACTERISTICAS...........................................................................................3Propiedades de las transacciones ................................................................3
7/25/2019 Transacciones en Base de Datos
2/12
Base de Datos Distribuidas
Operaciones de una transaccin ...................................................................4Estados de una Transaccin ...........................................................................4Tipos de transacciones ...................................................................................5Funcin del mane ador ...................................................................................5
CONC!USIONES ..............................................................................................11"I"!IO#RAFIA .................................................................................................11
INTRODUCCION,n este tema abarcaremos las transacciones dentro de una Base de datos el cual debe
com letarse 9asta el final sin tener ning n fallo dentro de las o eraciones; cual
7/25/2019 Transacciones en Base de Datos
3/12
Base de Datos Distribuidas
transacciones + todo lo na transacci=n no 9ar" 'isibles sus modificaciones a otras
transacciones 9asta
7/25/2019 Transacciones en Base de Datos
4/12
Base de Datos Distribuidas
Durabilidad: >na 'e# una transacci=n se ejecuta e?itosamente + reali#a cambios sobre
el sistema; estos cambios nunca se deben erder a causa de fallas en el sistema.
Operaciones de una transaccin
Ini&io de Transa&&i'n($ eraci=n
7/25/2019 Transacciones en Base de Datos
5/12
Base de Datos Distribuidas
7. reas de apli&a&i'n . ,n rimer lugar; las transacciones se ueden ejecutar ena licaciones no distribuidas. Las transacciones
7/25/2019 Transacciones en Base de Datos
6/12
Base de Datos Distribuidas
0oll)a&5. Si existe por lo menos una falla dentro de las operaciones de una transaccin, sedice que esta aborta. Su ejecucin es detenida todas las operaciones ejecutadas hasta el
momento del error son deshechas, regresando la base de datos al estado consistente en que
se encontraban antes de iniciar la transaccin. A esta operacin se le conoce como hacer un
rollbac!.
iEi edia; 6578
E7E 4LO
"as transacciones representan eventos del mundo real como:
Una compra puede ser una transaccin que conste de dos operaciones:
#. $nsertar un registro del pago del producto.
%. $nsertar el producto en el inventario.
&o se debe insertar un producto que no se ha a pagado, ni pagar un producto que no est' en
el inventario, por lo tanto, las dos operaciones forma una transaccin.
Los pasos pa ra usar transacciones en MySQL son:
6 | P g i n a
7/25/2019 Transacciones en Base de Datos
7/12
Base de Datos Distribuidas
Iniciar una transaccin con el uso de la sentencia BEGIN .
Actualizar, insertar o eliminar registros e n la base de datos.
Si se quieren los ca mbios a la base de datos, completar la transaccin con el uso de lasentencia COMMIT . nicamente cuando se procesa un COMMIT los cambios hechos por
las consultas se rn 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.
Vamos a ejecutar algunas consultas para ver cmo trabajan las transacciones. Lo primero que
tenemos que hacer es crear una tabla del tipo InnoDB e insertar algunos datos.
Para crear una tabla InnoDB, procedemos con el cdigo SQL estndar CREATE TABLE, pero
debemos especicar que se trata de una tabla del tipo InnoDB ( TYPE= InnoDB ). Esto es
aplicable a cualquier tipo de tabla, pero cuando no se especica nada, MySQL supone que se
trata de una tabla MyISAM.
mysql> C !"#! #"B$! innotest %&am'o ()# )*# )+$$ P (," - !-/ #-P! 0 (nnoDB
uery * ro s a e&ted % .1 se&/
mysql> ()7! # ()#* innotest 8"$+!7%1/
uery * 1 ro a e&ted % . 9 se&/
mysql> ()7! # ()#* innotest 8"$+!7%2/
uery * 1 ro a e&ted % . 1 se&/
mysql> ()7! # ()#* innotest 8"$+!7%3/
uery * 1 ro a e&ted % . 4 se&/
: | P g i n a
7/25/2019 Transacciones en Base de Datos
8/12
Base de Datos Distribuidas
mysql> 7!$!C# ; < *, innotest
= =
| &am'o |
= =
| 1 |
| 2 |
| 3 |
= =
3 ro s in set % . se&/
De acuerdo, nada espectacular. Ahora veamos cmo usar transacciones.
mysql> B!?()
uery * ro s a e&ted % . 1 se&/
mysql> ()7! # ()#* innotest 8"$+!7%4/
uery * 1 ro a e&ted % . se&/
mysql> 7!$!C# ; < *, innotest
= =
| &am'o |
= =
| 1 |
| 2 |
| 3 |
| 4 |
= =
4 ro s in set % . se&/
Si en este momento ejecutamos un ROLLBACK, la transaccin no ser completada, y los
cambios realizados s obre la tabla no tendrn efecto.
mysql> *$$B"C
9 | P g i n a
7/25/2019 Transacciones en Base de Datos
9/12
Base de Datos Distribuidas
uery * ro s a e&ted % . 6 se&/
mysql> 7!$!C# ; < *, innotest
= =
| &am'o |
= =
| 1 |
| 2 |
| 3 |
= =
3 ro s in set % . se&/
Ahora vamos a ver qu sucede si perdemos la conexin al servidor antes de que la
transaccin sea completada.
mysql> B!?()
uery * ro s a e&ted % . se&/
mysql> ()7! # ()#* innotest 8"$+!7%4/
uery * 1 ro a e&ted % . se&/
mysql> 7!$!C# ; < *, innotest
= =
| &am'o |
= =
| 1 |
| 2 |
| 3 || 4 |
= =
4 ro s in set % . se&/
mysql> !@(#
A | P g i n a
7/25/2019 Transacciones en Base de Datos
10/12
Base de Datos Distribuidas
Bye
Cuando obtengamos de nuevo la conexin, podemos vericar que el registro no se insert, ya
que la transaccin no fue completada.
el&ome to t e ,y7 $ monitor. Commands end it or g.
-our ,y7 $ &onne&tion id is 44A to ser er ersionE 4. .13
#y'e F el' F or F F Gor el'. #y'e F&F to &lear t e bu er.
mysql> 7!$!C# ; < *, innotest
= =
| &am'o |
= =
| 1 |
| 2 |
| 3 |
= =
3 ro s in set % . se&/
Ahora vamos a repetir la sentencia INSERT ejecutada anteriormente, pero haremos un
COMMIT antes de perder la conexin al servidor al salir del monitor de MySQL.
mysql> B!?()
uery * ro s a e&ted % . se&/
mysql> ()7! # ()#* innotest 8"$+!7%4/uery * 1 ro a e&ted % . se&/
mysql> C*,,(#
uery * ro s a e&ted % . 2 se&/
1 | P g i n a
7/25/2019 Transacciones en Base de Datos
11/12
Base de Datos Distribuidas
mysql> !@(#
Bye
Una vez que hacemos un COMMIT, la transaccin es completada, y todas las sentencias SQL
que han sido ejecutadas previamente afectan de manera permanente a las tablas de la base
de datos.
el&ome to t e ,y7 $ monitor. Commands end it or g.
-our ,y7 $ &onne&tion id is 45 to ser er ersionE 4. .13
#y'e F el' F or F F Gor el'. #y'e F&F to &lear t e bu er.
mysql> 7!$!C# ; < *, innotest
= =
| &am'o |
= =
| 1 |
| 2 |
| 3 |
| 4 |= =
4 ro s in set % . se&/
CONC!USIONESPara HnaliIar &on el tema se mostrJ a detalle un 'o&o sobre las transa&&iones
dentro del &am'o de Base de Datos y asK tener una idea de &Jmo es que se
estru&tura y &ules son las a&&iones que se en&uentran dentro de ella.
Cono&iendo meLor sobre las transa&&iones enGo&ndolo al maneLador de
,y7 $.
11 | P g i n a
7/25/2019 Transacciones en Base de Datos
12/12
Base de Datos Distribuidas
"I"!IO#RAFIACapitulo 5 . %s.G./. *btenido de #ransa&&iones DistribuidasE
tt'EMM132.249.A.1A5M'd2 6M 6 69 5M"9.'dG
Monografas . %s.G./. *btenido de ,aneLo de #ransa&&ionesEtt'EMM .monograHas.&omMtrabaLosA6MmaneLo transa&&ionesMmaneLo
transa&&iones.s tml
Wikipedia . %25 de )o iembre de 2 15/. *btenido de Base de DatosDistribuidasE tt'sEMMes. iNi'edia.orgM iNiMBasesOdeOdatosOdistribuidas
12 | P g i n a