ABD Transacciones

12
Estados de una Transacción ¿Cuando una Transacción es exitosa? Técnicas de Concurrencia Propiedad ACID Definiciones y Elementos que se deben considerar Granularidad

description

Definiciones y elementos que se consideran en el manejo de transacciones y concurrencias

Transcript of ABD Transacciones

  • Estados de una TransaccinCuando una Transaccin es exitosa?Tcnicas de ConcurrenciaPropiedad ACIDDefiniciones y Elementos que se deben considerarGranularidad

  • Unidad Lgica de ejecucin que incluye una o mas instrucciones de acceso a una BD que se considera indivisible por tanto se ejecuta como una nica operacin. Instruccion 1Instruccion 2...Instruccion N Para que se usan?La Finalidad de utilizar transacciones es mantener la integridad y consistencia de la BD, para ello debe cumplir con las propiedades ACID.Atomicity (Atomicidad) Consistency (Consistencia)Isolation (Aislamiento)Durability (Permanencia)

    Las transacciones tienen una instruccin que marca el inicio y el fin de la misma(Cada SGBD define sus propias marcas, normalmente se usa Begin o Begin transaction para iniciar y si es exitosa la transaccion COMMIT en caso de fallar ROLLBACK Como se Identifican?

  • Sentencia que finaliza una transaccin en el SQL. Al ejecutarse el COMMIT los cambios ocurridos en una BD dentro de una transaccin se hacen permanente en ella COMMITSentencia que revierte los cambios y modificaciones que se realizan en una BD durante una transaccin. Por tanto devuelve la BD al estado original antes de los cambios realizados. El ROLLBACK se ejecuta cuando se genera un error en la transaccin o simplemente se decide cancelar esta. ROLLBACKEl COMMIT y ROLLBACK definen el estado de una transaccin si se ejecuta COMMIT la transaccin es exitosa. Si la transaccin falla se ejecuta un ROLLBACK.

  • Atomicidad: Referido a la propiedad de considerar las transacciones como una sola unidad lgica, por tanto o se ejecutan todas las instrucciones o no se considera ejecutada ninguna.Propiedades ACIDPara entender el concepto de las Propiedades ACID, consideremos el problema de una cuenta bancaria que dispone de 15.000 Bs y han emitido de esa misma cuenta dos cheques de Bs 10.000 cada uno.Un cheque se deposita en una cuenta B1.Inicio Proceso2.Validar firma y saldo3.Deducir cuenta A 10.000 Bs4.Acreditar cuenta B 10.000 Bs5. Fin ProcesoCuenta ASaldo Inicial 15.000 BsDeduccin 10.000BsSaldo Final 5.000 BsCuenta BSaldo Inicial XXXXXAcreditan 10.000BsSaldo Final XXXXX + 10.000 BsQue sucede si existe un error al deducir de la cuenta A y antes de acreditar a la cuenta B?

  • Aislamiento: Referido a la propiedad de mantener una transaccin independiente de otra, si existen dos o mas que acceden al mismo registro debe procesar una primero y despus otra.Cobran los cheques al mismo Instante1.Inicio Proceso2.Validar Saldo 1er Cheque3.Deducir cuenta 10.000 Bs4.Pagar Cheque5. Validar Saldo 2do Cheque6. Fondos no disponibles7. Cheque no se cancela8. Fin ProcesoResultadoSe cancela un solo cheque.El saldo de la cuenta queda en Bs 5.000Consistencia: Mantener la BD en estado consistente despus la ejecucin una transaccin. Esto es, finalizada la transaccin tienen que mantenerse los valores correspondientes a la actualizacin. En el ejemplo dado, mantener el saldo de Bs 5.000 en la cuenta A. Durabilidad Refiere que despus de finalizada la transaccin los resultados se mantendrn en el tiempo y no se ver afectado por algn fallo o error del sistema.

  • Buscan mantener un estado de consistencia en las BD, previniendo errores a causa de fallos o acceso por mltiples usuarios.

    Utilizan las sentencias Begin Transaction para marcar el inicio de una transaccin. Commit Finaliza una Transaccion manteniendo los cambios en una BD y Rollback Termina una transaccin deshaciendo los cambios efectuados a una BD, devolvindola a su estado original antes de la transaccin. Pueden Implementarse en sistemas monousuarios y multiusuarios.Se inician por una solicitud del programador o usuario del sistema y el DBMS se encarga de realizarlo.

  • Acceso a una BD por parte de dos o mas transacciones al mismo instante. Asociado a la propiedad del Aislamiento de los SGBDUso de Protocolos y Tcnicas por parte del DBMS para su control

  • Por que se usan?Tcnicas y mecanismos que controlan la interaccin entre muchas transacciones, de manera que no interfieran entre si manteniendo la integridad y consistencia de la BD. Sus algoritmos se basan en procesos de lectura y escrituraFinalidad

    Mantener la consistencia de la BD.Reducir el tiempo de espera de las transacciones.Sincronizar el acceso de las transacciones a un mismo elemento de una BDSerializar las transaccionesTcnicas ExistentesBloqueo

    Multiversin

    Marcas de Tiempo (TimeStamping)

    Validacin

  • Basada en el bloqueo de un elemento por una transaccin cuando es accedido de manera que no pueda ser usada por otra. Por tanto, toma control sobre este y garantiza su estabilidad durante el tiempo que desee Tcnica de Bloqueo MultiversinCrea una nueva versin de la BD, guardando la anterior. Utilizando la versin de datos adecuada para la ejecucin. Marcas de TiempoLas transacciones enviadas al SGBD se identifican de manera nica a travs de un cdigo generado asignando un tiempo para ejecutarseTcnicas que implican comprobar antes de ejecutar una operacin en la BD.Este proceso puede ralentizar las transacciones.Se conocen con tcnicas pesismistas o prevencin

  • Esta tcnica denominada optimista no realiza ninguna verificacin o comprobacin de la BD durante la transaccin.

    Utilizado en BD de baja carga buscando un mejor rendimiento de esta.

    Trabaja con copias locales.

    Los cambios se aplican a la BD cuando la transaccin llega a su final, llevando a cabo un proceso de validacin Tcnica de Validacin

  • nReferido al tamao de los elementos de datos que se acceden en una transaccinQuin es un Elemento de Dato?

    TiposGranularidad Fina

    Granularidad GruesaLa BD completa

    Una tabla entera

    Un Registro

    Un campo de un registro

  • 1. Identifique el esquema de concurrencia utilizados en Postgresql y MySQL. 2. Cuales son las sentencias que marcan el inicio y final de una transaccin en Postgresql y MySQL3. Seala un problema que ejemplifique el uso de una transaccin 4. Dentro de una transaccin es posible que no se ejecuten ni el ROLLBACK ni el COMMIT??. Que sucede??5. Investiga que es el Interbloqueo6. Identifica las tcnicas de control de concurrencia por bloqueo7. Explica porque los algoritmos de tcnicas de concurrencia se orientan a procesos de lectura y escrituraInvestiga y Responde