transacciones en base de datos

Upload: alejandra-tapia-hernandez

Post on 27-Feb-2018

223 views

Category:

Documents


0 download

TRANSCRIPT

  • 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