Seguridad F - PowerPoint PPT Presentation

About This Presentation
Title:

Seguridad F

Description:

Consistencia: La consistencia de una transacci n es simplemente su ... ahora tambi n B tendr un bloqueo S sobre la tupla Matriz de Compatibilidad Si ... – PowerPoint PPT presentation

Number of Views:41
Avg rating:3.0/5.0
Slides: 14
Provided by: SEnT67
Category:

less

Transcript and Presenter's Notes

Title: Seguridad F


1
Concurrencia
2
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.

3
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.

4
TRANSACCIONES
  • 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.

5
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.

6
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

7
Actualización Perdida
  • Procedure Depositar(Cuenta, Monto)
  • begin
  • Start
  • temp Leer(CuentasCuenta)
  • temp temp Monto
  • Escribir(CuentasCuenta,temp)
  • Commit
  • End
  • Leer1(Cuentas7) devuelve el valor de 1000
  • Leer2(Cuentas7) devuelve el valor de 1000
  • Escribir2(Cuentas7, 101000)
  • Commit2
  • Escribir1(Cuentas7, 1100)
  • Commit1

8
Análisis Inconsistente
  • Leer4(Cuentas8) devuelve el valor de 200
  • Escribir4(Cuentas8, 100)
  • Leer3 (Cuentas8) devuelve el valor de 100
  • Leer3 (Cuentas9) devuelve el valor de 200
  • Leer4 (Cuentas9) devuelve el valor de 200
  • Escribir4 (Cuentas9, 300)
  • Commit4
  • Commit3
  • Procedure ImprimirSuma(Cuenta1, Cuenta2)
  • begin
  • Start
  • temp1 Leer(CuentasCuenta1)
  • output(temp1)
  • temp2 Leer(CuentasCuenta2)
  • output(temp2)
  • temp1 temp1 temp2
  • output(temp1)
  • Commit
  • end

9
Sincronizador o Serializador
10
Bloqueos
  • La idea básica de un Bloqueo es que cuando se
    esta procesando una transacción, inhibe todas las
    demás transacciones

11
Bloqueos
Bloqueo Exclusivo o de Escritura
Transacciones
Base de datos
Transacción A
Tupla
Bloqueo Exclusivo
Transacción B
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
12
Bloqueos
Bloqueo Compartido o de Lectura
Transacciones
Base de datos
Tupla
Transacción A
Bloqueo Compartido
Transacción B
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
13
Bloqueos
Matriz de Compatibilidad
Si
X Bloqueo Exclusivo S Bloqueo Compartido
Write a Comment
User Comments (0)
About PowerShow.com