trans acción

Upload: jose-gregorio

Post on 07-Feb-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/21/2019 Trans Accin

    1/11

    Repblica Bolivariana De Venezuela

    Ministerio del Poder Popular para la Defensa

    Universidad Nacional Experimental PolitcnicaDe la Fuerza Armada Nacional

    UNEFA

    BACHILLER:

    Isaac Gil.

    Amlcar Castillo.

    Jess Pea.

    Cesar Jimnez.Eduard Escobar.

    Jos Silva.

    Seccin: 8m1IS.Sistemas Avanzados de Base de Datos

    Barquisimeto, 25 de Marzo del 2014

  • 7/21/2019 Trans Accin

    2/11

    Transaccin:

    Definicin:

    Una transaccin es un conjunto deoperaciones que van a ser tratadas como

    una nica unidad. Estas transacciones deben cumplir 4 propiedades fundamentales

    comnmente conocidas como ACID (atomicidad, coherencia, aislamiento y

    durabilidad).

    Una transaccin es una unidad de la ejecucin de un Programa que accede y

    posiblemente actualiza varios elementos de datos. Una transaccin se inicia por laejecucin de un programa de usuario escrito en un lenguaje de manipulacin de datos

    de alto nivel o en un lenguaje de programacin (por ejemplo SQL, COBOL, C, C++ o

    Java), y est delimitado por instrucciones (o llamadas a funcin) de la forma inicio

    transaccin y fin transaccin. La transaccin consiste en todas las operaciones que se

    ejecutan entre inicio transaccin y el fin transaccin.

    La transaccin ms simple enSQL Server es una nica sentencia SQL.

    Por ejemplo una sentencia como esta:

    UPDATE Products SET UnitPrice=20 WHERE ProductName =Chai

    Es una transaccin.

    Esta es una transaccin autocommit, una transaccin autocompletada.

    Cuando enviamos esta sentencia al SQL Server se escribe en el fichero de

    transacciones lo que va a ocurrir y a continuacin realiza los cambios necesarios en la

    base de datos.Si hay algn tipo de problema al hacer esta operacin el SQL Server

    puede leer en el fichero de transacciones lo que se estaba haciendo y si es necesario

    http://www.monografias.com/trabajos6/diop/diop.shtmlhttp://www.monografias.com/trabajos14/sqlserver/sqlserver.shtmlhttp://www.monografias.com/trabajos34/base-de-datos/base-de-datos.shtmlhttp://www.monografias.com/trabajos34/base-de-datos/base-de-datos.shtmlhttp://www.monografias.com/trabajos14/sqlserver/sqlserver.shtmlhttp://www.monografias.com/trabajos6/diop/diop.shtml
  • 7/21/2019 Trans Accin

    3/11

    puede devolver la base dedatos alestado en el que se encontraba antes de recibir la

    sentencia.

    Por supuesto este tipo de transacciones no requieren de nuestra intervencin

    puesto que el sistema se encarga de todo. Sin embargo si hay que realizar varias

    operaciones y queremos que sean tratadas como una unidad tenemos que crear esas

    transacciones de manera explcita.

    Propiedades de las transacciones

    Atomicidad:

    Es la propiedad que asegura que la operacin se ha realizado o no, y por lo

    tanto ante un fallo del sistema no puede quedar a medias. Se dice que una operacin

    es atmica cuando es imposible para otra parte de un sistema encontrar pasos

    intermedios. Si esta operacin consiste en una serie de pasos, todos ellos ocurren o

    ninguno.

    Por ejemplo;

    Cuando realizamos una transaccin bancaria, es decir, en el momento en que

    estoy cancelando con mi tarjeta de dbito me descuentan el monto a cancelar y se

    reduce mi saldo anterior; en el caso que falle la transaccin no se reduce nada de mi

    saldo actual. Por lo tanto aunque se tenga el mismo objetivo no se ejecutara ya que se

    tiene que cumplir o no se cumple.

    Consistencia:

    Esta propiedad establece que solo los valores o datos vlidos sern escritos en

    la base de datos; si por algn motivo una transaccin que es ejecutada viola esta

    propiedad, se aplicar un rollback a toda transaccin dejando a las bases de datos en

    http://www.monografias.com/trabajos11/basda/basda.shtmlhttp://www.monografias.com/trabajos12/elorigest/elorigest.shtmlhttp://es.wikipedia.org/wiki/Consistencia_de_datoshttp://es.wikipedia.org/wiki/Consistencia_de_datoshttp://www.monografias.com/trabajos12/elorigest/elorigest.shtmlhttp://www.monografias.com/trabajos11/basda/basda.shtml
  • 7/21/2019 Trans Accin

    4/11

    su estado de consistencia anterior. En caso de que la transaccin sea ejecutada con

    xito, la base de datos pasar de su estado de consistencia anterior a un nuevo estado

    de consistencia

    Por ejemplo;

    Al desarrollar una aplicacin que transfiere dinero de una cuenta a otra, hay

    una operacin de dbito que ocurre en la cuenta fuente y una operacin de crdito que

    ocurre en la cuenta destino. La transaccin tiene lo siguiente dos pasos: Paso 1:

    Debitar de la cuenta fuente. Paso 2: Acreditar a la cuenta destino. Si la transaccin

    falla despus de paso 1, una inconsistencia de datos ocurre debido a que la cantidad

    es debitada de la cuenta fuente, pero no se acredita en la cuenta destino. Para

    asegurarse de que se mantiene la consistencia de datos, el SMBD (sistema manejador

    de base de datos) cancela la operacin de dbito, y se ejecuta una restitucin

    (ROLLBACK) de la transaccin para obtener el estado consistente inicial.

    Aislamiento:

    Es la propiedad que asegura que una operacin no puede afectar a otras. Esto

    asegura que la realizacin de dos transacciones sobre la misma informacin sean

    independientes y no generen ningn tipo de error. Esta propiedad define cmo y

    cundo los cambios producidos por una operacin se hacen visibles para las dems

    operaciones concurrentes.

    Por ejemplo;

    El telfono es un medio de comunicacin que puedes llamar a un apersona y

    puedes mandar mensajes de texto a una persona. Si llamas no puedes mandar

    mensajes de texto y si mandas un texto no puedes llamar por lo que logro aislar las

    dos funciones una de la otra.

    http://es.wikipedia.org/wiki/Aislamiento_%28ACID%29http://es.wikipedia.org/wiki/Aislamiento_%28ACID%29
  • 7/21/2019 Trans Accin

    5/11

    Durabilidad:

    Es la propiedad de las transacciones que asegura que una vez finalizada su

    ejecucin, sus resultados son permanentes a pesar de otras consecuencias, como por

    ejemplo, si falla el disco duro el sistema an ser capaz de recordar todas las

    transacciones que han sido realizadas en el sistema.

    Por ejemplo;

    En medio de una transaccin de depsito tiene xito, el sistema garantiza que

    persistan sus actualizaciones, incluso que se valla la luz inmediatamente despus de

    una ejecucin exitosa deben persistir.

    Estados de las transacciones:

    Una transaccin de este tipo se denomina abortada. Si se pretende asegurar la

    propiedad de atomicidad, una transaccin abortada no debe tener efecto sobre elestado de la base de datos. As, cualquier cambio que haya hecho la transaccin

    abortada sobre la base de datos debe deshacerse. Una vez que se han deshecho los

    cambios efectuados por la transaccin abortada, se dice que la transaccin se ha

    retrocedido.

    Parte de la responsabilidad del esquema de recuperaciones es gestionar las

    transacciones abortadas.

    Una transaccin que termina con xito se dice que est comprometida

    (commited), una transaccin que haya sido comprometida llevar a la base de datos a

    un nuevo estado consistente que debe permanecer incluso si hay un fallo en el

    sistema.

    http://es.wikipedia.org/wiki/Datos_persistenteshttp://es.wikipedia.org/wiki/Datos_persistentes
  • 7/21/2019 Trans Accin

    6/11

    Cuando una transaccin se ha comprometido no se pueden deshacer sus efectos

    abortndola. La nica forma de deshacer los cambios de una transaccin

    comprometida es ejecutando una transaccin compensadora.

    Por ejemplo, si una transaccin aade 20E a una cuenta, la transaccin

    compensadora debera restar 20E de la cuenta. Sin embargo, no siempre se puede

    crear dicha transaccin compensadora. Por tanto, se deja al usuario la responsabilidad

    de crear y ejecutar transacciones compensadoras, y no la gestiona el sistema de base

    de datos.

    Es necesario precisar qu se entiende por terminacin con xito de una

    transaccin. Se establece por tanto un modelo simple abstracto de transaccin.

    En cualquier momento una transaccin slo puede estar en uno de los siguientes

    estados.

    Activa (Active): el estado inicial; la transaccin permanece en este estado

    durante su ejecucin.

    Parcialmente comprometida (Uncommited): Despus de ejecutarse la

    ltima transaccin.

    Fallida (Failed): tras descubrir que no se puede continuar la ejecucin

    normal.

    Abortada (Rolled Back): despus de haber retrocedido la transaccin y

    restablecido la base de datos a su estado anterior al comienzo de la

    transaccin.

    Comprometida (Commited): tras completarse con xito.

  • 7/21/2019 Trans Accin

    7/11

    Inicio de transaccin

    Cuando no hay ya una transaccin en progreso, y se ejecuta una sentencia LDD o

    LMD (interactivamente o dentro de una aplicacin) Cada sentencia LDD es tratada

    como una transaccin N No existe sentencia de tipo BEGIN TRANSACTION

    Fin de transaccin

    COMMIT: Finaliza la transaccin actual y hace permanentes (confirma) los cambios

    realizados

    ROLLBACK: Finaliza la transaccin actual y deshace los cambios realizados

  • 7/21/2019 Trans Accin

    8/11

    Sentencia COMMIT

    Una sentencia COMMIT marca el final de una transaccin correcta, implcita o

    definida por el usuario. COMMIT hace que todas las modificaciones efectuadas sobre

    los datos desde el inicio de la transaccin sean parte permanente de la base de datos, y

    adems, libera los recursos mantenidos por la conexin. Su sintaxis es la siguiente:

    COMMIT COMMENT 'mensaje' | FORCE 'texto']

    COMMENT sirve para comentar la transaccin en un mximo 255 caracteres.

    FORCE fuera de modo manual una transaccin dudosa y es de uso exclusivo en

    sistemas distribuidos de base de datos.

    Sentencia SAVEPOINT

    Esta sentencia permite crear un punto de restauracin dentro de una transaccin, es

    decir, un punto al que podremos retroceder deshaciendo todo lo hecho deshaciendo

    todo lo hecho desde l en adelante. Su sintaxis es la siguiente

    SAVEPOINT nombrePuntoRestauracin;

  • 7/21/2019 Trans Accin

    9/11

    Sentencia ROLLBACK

    Seala el final sin xito de una transaccin, elimina todas las modificaciones de datos

    realizadas desde el inicio de la transaccin y tambin libera los recursos que retiene la

    transaccin. Su sintaxis es la siguiente:

    ROLLBACK [WORK] [TO SAVEPOINT nombrePuntoRestauracin | FORCE

    'texto'];

    Una transaccin se dice que ha terminado si se ha comprometido o bien se ha

    abortado.

    Una transaccin comienza en el estado activa. Cuando acaba su ltima instruccin

    pasa al estado de parcialmente comprometida. En este punto la transaccin ha

    terminado su ejecucin, pero es posible que an tenga que ser abortada, puesto que

    los datos actuals pueden estar todava en la memoria principal y puede producirse un

    fallo en el hardware antes de que se complete con xito.

    El sistema de base de datos escribe en disco la informacin suficiente para que,

    incluso al producirse un fallo, puedan reproducirse los cambios hechos por la

    transaccin al reiniciar el sistema tras el fallo. Cuando se termina de escribir esta

    informacin, la transaccin pasa al estado comprometida.

    Una transaccin llega al estado fallida despus de que el sistema determine que dicha

    transaccin no puede continuar su ejecucin normal (por ejemplo, a causa de errores

    de hardware o lgicos). Una transaccin de este tipo se debe retroceder. Despus pasa

    al estado abortada.

    En este punto, el sistema tiene dos opciones:

  • 7/21/2019 Trans Accin

    10/11

    Reiniciar la transaccin, pero slo si la transaccin se ha abortado a causa de

    algn error hardware o software que no lo haya provocado la lgica interna de

    la transaccin. Una transaccin reiniciada se considera una nueva transaccin.

    Cancelar la transaccin. Normalmente se hace esto si hay algn error interno

    lgico que slo se puede corregir escribiendo de nuevo el programa de

    aplicacin, o debido a una entrada incorrecta o debido a que no se han

    encontrado los datos deseados en la base de datos.

  • 7/21/2019 Trans Accin

    11/11

    Bibliografas

    Transacciones: Propiedades

    http://csrg.inf.utfsm.cl/~jfuentes/_build/html/lectures/week7/lecture26.html

    Base de datos propiedades ACID

    http://www.slideshare.net/jeferp/base-de-datos-propiedades-acid-15202600

    Ejemplos ACID

    http://www.slideshare.net/jeferp/ejemplos-acid

    Definiciones ACID

    http://es.wikipedia.org/wiki/ACID

    Propiedades de la Transaccin

    http://www.prograweb.com.mx/tallerBD/0502Propiedades.html

    Transacciones en SQL Server

    http://www.monografias.com/trabajos16/transacciones/transacciones.shtml

    http://csrg.inf.utfsm.cl/~jfuentes/_build/html/lectures/week7/lecture26.htmlhttp://csrg.inf.utfsm.cl/~jfuentes/_build/html/lectures/week7/lecture26.htmlhttp://www.slideshare.net/jeferp/base-de-datos-propiedades-acid-15202600http://www.slideshare.net/jeferp/ejemplos-acidhttp://es.wikipedia.org/wiki/ACIDhttp://www.prograweb.com.mx/tallerBD/0502Propiedades.htmlhttp://www.monografias.com/trabajos16/transacciones/transacciones.shtmlhttp://www.monografias.com/trabajos16/transacciones/transacciones.shtmlhttp://www.prograweb.com.mx/tallerBD/0502Propiedades.htmlhttp://es.wikipedia.org/wiki/ACIDhttp://www.slideshare.net/jeferp/ejemplos-acidhttp://www.slideshare.net/jeferp/base-de-datos-propiedades-acid-15202600http://csrg.inf.utfsm.cl/~jfuentes/_build/html/lectures/week7/lecture26.html