La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Transacciones seguras  Concurrencia Ing. Yeberth Martinez Programación II.

Presentaciones similares


Presentación del tema: "Transacciones seguras  Concurrencia Ing. Yeberth Martinez Programación II."— Transcripción de la presentación:

1 Transacciones seguras  Concurrencia Ing. Yeberth Martinez Programación II

2

3 INTRODUCCIÓN  La definición de concurrencia en términos generales es:  Coincidencia de varios sucesos o cosas a un mismo tiempo  La concurrencia en las bases de datos :  Se refiere al hecho de que los Sistemas Administradores de Base de Datos permiten que muchas transacciones accedan a una misma Base de Datos a la vez.  Cuando existen varios usuarios intentando modificar los datos al mismo tiempo, se necesita establecer algún tipo de control para que dichas modificaciones de un usuario no interfieran en las de los otros, a este sistema se le denomina control de concurrencia.  Los sistemas de control de concurrencia deben garantizar la propiedad de aislamiento de transacciones que se ejecutan de manera concurrente.

4 DEFINICIÓN DE CONCURRENCIA  En el campo informático, el termino concurrencia se refiere a la capacidad de los Sistemas de Administración de Base de Datos (DBMS), de permitir que múltiples procesos sean ejecutados al mismo tiempo, y que también puedan interactuar entre sí.  Los procesos concurrentes pueden ser ejecutados realmente de forma simultánea, sólo cuando cada uno es ejecutado en diferentes procesadores. En cambio, la concurrencia es simulada si sólo existe un procesador encargado de ejecutar todos los procesos, simulando la concurrencia, ocupándose de forma alternada de uno y otro proceso a muy pequeños intervalos de tiempo. De esta manera simula que se están ejecutando a la vez.  Algunos casos de concurrencia  La multiprogramación: El procesador es compartido dinámicamente por varios procesos.  Aplicaciones estructuradas: Se implementa como un conjunto de procesos concurrentes.  También se tiene que la misma estructura recién mencionada es utilizada en el diseño de los sistemas operativos, los cuales se implementan como un conjunto de procesos.  Debido a que los procesos concurrentes en un sistema pueden interactuar entre otros también en ejecución, el número de caminos de ejecución puede ser extremadamente grande, resultando en un comportamiento sumamente complejo. Las dificultades asociadas a la concurrencia han sido pensadas para el desarrollo de lenguajes de programación y conceptos que permitan hacer la concurrencia más manejable.

5  El control de concurrencia permite que sus usuarios asuman que cada una de sus aplicaciones se ejecuta atómicamente, como si no existieran otras aplicaciones ejecutándose concurrentemente. Esta abstracción de una ejecución atómica y confiable de una aplicación se conoce como una transacción  Informalmente, una transacción es la ejecución de ciertas instrucciones que acceden a una base de datos compartida.  Cada transacción accede a información compartida sin interferir con otras, si una transacción termina normalmente, todos sus efectos son permanentes, en caso contrario no tiene afecto alguno.  Durante una transacción la base de datos pierde su consistencia, la que debe restituirse al momento de finalizar la transacción.

6 PROPIEDADES FUNDAMENTALES DE UNA TRANSACCIÓN  Atomicidad: Se refiere al hecho de que una transacción se trata como una unidad de operación.  Consistencia: La consistencia de una transacción es simplemente su correctitud.  las transacciones no violan las restricciones de integridad de una base de datos.  Aislamiento: Una transacción en ejecución no puede revelar sus resultados a otras transacciones concurrentes antes de finalizar.  Permanencia: Es la propiedad de las transacciones que asegura que una vez que una transacción finaliza exitosamente, sus resultados son permanentes y no pueden ser borrados de la base de datos por alguna falla posterior.  En esencia, lo que se persigue con el procesamiento de transacciones es, por una parte obtener una transparencia adecuada de las acciones concurrentes a una base de datos y por otra, manejar adecuadamente las fallas que se puedan presentar en una base de datos.  El procesamiento de transacciones es una de las tareas más importantes dentro de un sistema de base de datos, pero a la vez, es una de las más difíciles de manejar debido a diversos aspectos, tales como:  Confiabilidad: Puesto que los sistemas de base de datos en línea no pueden fallar.  Disponibilidad: Debido a que los sistemas de base de datos en línea deben estar actualizados correctamente todo el tiempo.  Tiempos de Respuesta: el tiempo de respuesta de las transacciones no debe ser mayor a doce segundos  Throughput: Los sistemas de base de datos en línea requieren procesar miles de transacciones por segundo.  Atomicidad: en el procesamiento de transacciones: No se aceptan resultados parciales.

7 PROBLEMAS DE CONCURRENCIA  Existen tres formas en las que una transacción, aunque sea correcta por sí misma, puede producir una respuesta incorrecta si alguna otra transacción interfiere con ella en alguna forma.  El problema de la Actualización Perdida  El problema de la Dependencia No Confirmada  El problema del Análisis Inconsistente

8 Actualización Perdida Procedure Depositar(Cuenta, Monto) begin Start; temp := Leer(Cuentas[Cuenta]); temp := temp + Monto; Escribir(Cuentas[Cuenta],temp); Commit; End  Leer1(Cuentas[7]) devuelve el valor de $1000  Leer2(Cuentas[7]) devuelve el valor de $1000  Escribir2(Cuentas[7], $101000)  Commit2  Escribir1(Cuentas[7], $1100)  Commit1

9 Análisis Inconsistente Procedure ImprimirSuma(Cuenta1, Cuenta2) begin Start; temp1 := Leer(Cuentas[Cuenta1]); output(temp1); temp2 := Leer(Cuentas[Cuenta2]); output(temp2); temp1 := temp1 $+$ temp2; output(temp1); Commit; end Leer4(Cuentas[8]) devuelve el valor de $200 Escribir4(Cuentas[8], $100) Leer3 (Cuentas[8]) devuelve el valor de $100 Leer3 (Cuentas[9]) devuelve el valor de $200 Leer4 (Cuentas[9]) devuelve el valor de $200 Escribir4 (Cuentas[9], $300) Commit4 Commit3

10 Sincronizador o Serializador

11 Bloqueos  La idea básica de un Bloqueo es que cuando se esta procesando una transacción, inhibe todas las demás transacciones

12 Bloqueos Transacciones Base de datos Bloqueo Exclusivo DB Transacción A Transacción B Bloqueo Exclusivo o de Escritura Tupla Si la transacción A pone un bloqueo exclusivo (X) sobre una tupla, entonces se rechazará una petición de cualquier otra transacción B para un bloqueo de cualquier tipo sobre la tupia

13 Bloqueos Transacciones Base de datos Tupla Bloqueo Compartido DB Transacción A Transacción B Bloqueo Compartido o de Lectura Transacción C Bloqueo Exclusivo Si la transacción A pone un bloqueo compartido (S) sobre la tupla entonces: Se rechazará una petición de cualquier otra transacción B para un bloqueo Exclusivo sobre la tupla. Se otorgará una petición de cualquier otra transacción B para un bloqueo S sobre la tupla (esto es, ahora también B tendrá un bloqueo S sobre la tupla Si la transacción A pone un bloqueo compartido (S) sobre la tupla entonces: Se rechazará una petición de cualquier otra transacción B para un bloqueo Exclusivo sobre la tupla. Se otorgará una petición de cualquier otra transacción B para un bloqueo S sobre la tupla (esto es, ahora también B tendrá un bloqueo S sobre la tupla

14


Descargar ppt "Transacciones seguras  Concurrencia Ing. Yeberth Martinez Programación II."

Presentaciones similares


Anuncios Google