Está en la página 1de 17

CONCURRENCIA, TRANSACCIONES,

ACCESOS Y BLOQUEOS

Introducción 3
1. CONTROL DE CONCURRENCIA 3
2. TRANSACCIONES Y ACCESOS 4
3. TRANSACCIONES Y ESTADOS DE LA BASE DE DATOS 5
4. ESTADOS DE LA TRANSACCIÓN 6
5. MANEJADOR DE TRANSACCIONES 7
6. BLOQUEOS 8
6.1 Tipos de bloqueos 9
6.2 Protocolos de bloqueos 10
6.3 Problemas con bloqueos 12
6.4 Marcas de tiempo 14
BIBLIOGRAFÍA 15
GLOSARIO 16

FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje


Concurrencia, Transacciones, Accesos y Bloqueos
Mapa conceptual

2
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Concurrencia, Transacciones, Accesos y Bloqueos

CONCURRENCIA, TRANSACCIONES,
ACCESOS Y BLOQUEOS

INTRODUCCIÓN

Los administradores de base de datos tienen varias responsabilidades en


los procesos de control del rendimiento para lo cual uno de los elementos
básicos a detectar es el control de concurrencia de distintos usuarios.

De igual manera el control de concurrencia es uno de los principios funda-


mentales a administrar ya que en las bases de datos siempre se debe
garantizar la consistencia y disponibilidad de la información.

La persistencia del almacenamiento de datos, el control de acceso no


autorizado y las actualizaciones correctas de los usuarios son otros aspec-
tos de alta prioridad que se debe tener en un buen proceso de Gestión de
Base de Datos.

1. CONTROL DE CONCURRENCIA

La concurrencia se refiere a la ejecución de múltiples procesos al mismo


tiempo, es una propiedad que permite la interacción entre los sistemas de
Información y las bases de datos.

El control de concurrencia va orientado a la coordinación de los procesos


que actúan en forma concurrente sobre datos que se encuentran compar-
tidos, evitando la interferencia entre ellos.

A nivel de Sistema Manejador de Base de Datos se debe implementar un


modelo que garantice la consistencia de la base de datos en los casos
donde se realicen modificaciones concurrentes.

3
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Concurrencia, Transacciones, Accesos y Bloqueos

Ejecución de la
Manejador de
Transacción Inicio TRANSACCIÓN i Fin
Transacciones

Inicio TRANSACCIÓN 1 Fin Estados de


Transacción

Estados de las Bloqueos


Bases de Datos

2. TRANSACCIONES Y ACCESOS

Las transacciones son aquellos procesos concurrentes sobre datos com-


partidos que cumplen con las siguientes propiedades:

Atomicidad (Atomicity): toma a la transacción como una unidad de opera-


ción. Todas las acciones de la transacción se deben realizar o ninguna de
ellas se lleva a cabo, es decir, se ejecuta o no se ejecuta. Si existe una
falla y la transacción se interrumpe, los resultados parciales son totalmen-
te anulados.

Consistencia (Consistency preservation): las transacciones deben llevar


una base de datos de un estado consistente a otro estado consistente, de
tal forma no se viola ninguna restricción de integridad.

Aislamiento (Isolation): una transacción no debe interferir con otra.


Cuando la transacción se encuentra en ejecución sus resultados no son
mostrados a otras transacciones concurrentes, sino solamente cuando
ésta termine.

Durabilidad (Durability): esta propiedad también se le llama Permanencia.


El objetivo es que una vez una transacción termine exitosamente y la
transacción sea confirmada, los resultados son permanentes en la base de
datos.

4
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Concurrencia, Transacciones, Accesos y Bloqueos

El conjunto de estas propiedades son conocidas como ACID, por las inicia-
les de cada una de ellas.

Una transacción se considera como una unidad lógica de procesamiento


que utiliza varias operaciones de accesos a bases de datos, como por
ejemplo las consultas y modificaciones, definidas dentro de un intervalo
donde existe un punto de inicio y un punto de finalización, el primero
llamado begin transaction y el segundo llamado end transaction.

3. TRANSACCIONES Y ESTADOS DE LA BASE DE DATOS

La transacción como tal debe realizarse garantizando los estados consis-


tentes que debe tener la base de datos, de lo contrario no se estaría utili-
zando un modelo formal adecuado que controle el rendimiento esperado.

La siguiente gráfica muestra cómo es planteada la ejecución de la transac-


ción y su relación con los estados de la base de datos.

La Base de Datos temporalmente


en un estado inconsistente durante
la ejecución de la transacción.

La Base de Datos en La Base de Datos en


estado consistente estado consistente

5
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Concurrencia, Transacciones, Accesos y Bloqueos

4. ESTADOS DE LA TRANSACCIÓN

Existen operaciones que son básicas para definir los estados de una tran-
sacción. Las operaciones que se utilizan son las siguientes:

Read: la transacción lee un ítem especificado en la base de datos.

Write: la transacción escribe sobre un ítem especificado en la base de


datos.

Commit: la transacción confirma que sus modificaciones deben ser per-


manentes en la base de datos.

Abort: la transacción establece que ninguna de sus modificaciones deben


ser permanentes en la base de datos. La acción de recuperar el estado
anterior de una transacción frente a un abort se llama Rollback.

Estas operaciones determinan los estados de la transacción que son:

Activa: se encuentra en este estado si se está ejecutando.

Parcialmente confirmada: se presenta después que la última instruc-


ción fue ejecutada.

Confirmada: se ejecutó en forma satisfactoria.

Falla: en este estado es imposible continuar con su ejecución. Se retroce-


de la transacción y la base de datos se restaura al estado anterior de su
ejecución.

Completada: se terminó la transacción.

La siguiente gráfica ilustra la forma cómo se relaciona los estados de la


transacción con las operaciones dadas.

6
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Concurrencia, Transacciones, Accesos y Bloqueos

Inicio
Read, Write

Activa
Fin Transacción
Abort
Parcialmente
Abort Confirmada

Falla Commit
Se abortan las
modificaciones
Confirmada
Se hacen las
modificaciones
Rollback

Completada

5. MANEJADOR DE TRANSACCIONES

Es una aplicación que interactúa con el Sistema Manejador de Base de


Datos para administrar las transacciones que se presenten.

Recibe instrucciones de ejecución por los programas y organiza en forma


relativa las lecturas y escrituras de las transacciones. Establece todo lo
necesario para la implementación de ACID.

El manejador de transacciones opera con aplicaciones y servidores de apli-


caciones que controlan el alcance y duración de las transacciones.

De igual forma ayuda a completar transacciones globales, sincronización y


recuperación transaccional, así como también puede comunicarse con
otras instancias de administrador de transacciones.

7
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Concurrencia, Transacciones, Accesos y Bloqueos

Programas de
Base de Datos
Aplicación

T2
T1
T4

T3

T5

6. BLOQUEOS

La gran finalidad de los bloqueos es que impiden los conflictos de actuali-


zación. Se presentan cuando usuarios requieren la lectura o modificación
de datos que en ese instante están siendo modificados por otros usuarios.
Entre las características básicas de los bloqueos tenemos:

• Permiten la serialización de las transacciones, haciendo que un usurio


a la vez pueda modificar un dato.

• Son necesarios en las transacciones simultáneas ya que permiten que


usuarios accedan y actualicen datos en mismo intervalos de tiempo.

Un bloqueo asocia variables a cada elemento de datos de acuerdo con las


operaciones posibles. Entre las variables tenemos: Identificador del ele-
mento bloqueado, identificador de la transacción que lo bloquea.

La transacción debe solicitar un bloqueo que garantice cierta exclusividad


sobre los datos requeridos.

8
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Concurrencia, Transacciones, Accesos y Bloqueos

6.1 Tipos de bloqueos

Bloqueos exclusivos, primarios o binarios

Se presentan cuando se solicita un bloqueo por un solo recurso especifica-


do. Puede tener dos estados: bloqueado y desbloqueado (1,0). Si el valor
del bloqueo es 1, quiere decir que ninguna operación de la base de datos
que solicite el elemento puede tener acceso al mismo. Por lo contrario, si
el valor es 0, significa que se podrá tener acceso al elemento cuando sea
solicitado. Se consideran dos operaciones:

•Bloquear_elemento: Una transacción solicita acceso a un elemento X


y le asigna el valor de 1 al procedimiento para bloquear el elemento.

•Desbloquear_elemento: Cuando una transacción termina de usar un


elemento, emite una operación de desbloquear al elemento asignán-
dole el valor de 0 al procedimiento, liberándolo para que otras tran
sacciones tengan acceso a él.

El bloqueo binario determina una exclusión mutua sobre el elemento de


información.

Bloqueos compartidos

Se presentan cuando se dan muchos bloqueos para un recurso específico,


donde se permite que varias transacciones tengan acceso al recurso si se
hace exclusivamente para lectura, pero si la transacción va a escribir en un
elemento entonces debe tener acceso exclusivo al mismo. Se manejan las
operaciones: bloquear_lectura, bloquear_escritura y desbloquear.

Las reglas en los bloqueos múltiples son:

•La transacción T debe ejecutar la operación bloquear_lectura o


bloquear_escritura antes de que realice cualquier operación
leer_elemento. Luego debe ejecutar desbloquear_elemento.

•La transacción T debe ejecutar la operación bloquear_escritura antes


de que realice cualquier operación escribir_elemento. Luego debe eje-
cutar desbloquear_elemento.

•No se ejecutan bloqueo sobre un elemento si ya tiene un bloqueo


sobre este mismo. Si se requiere se pueden permitir excepciones.

9
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Concurrencia, Transacciones, Accesos y Bloqueos

•Una transacción T no ejecutará una operación desbloquear_elemento


a menos que ya posea un bloquear_lectura o bloquear_escritura para
el elemento especificado.

6.2 Protocolos de bloqueos

6.2 Protocolo de bloqueos

El protocolo de Bloqueos define un conjunto de reglas de uso con el fin de


garantizar la serialización de las transacciones, estableciendo las ubicacio-
nes de las operaciones de bloqueo y desbloqueo dentro de una transac-
ción. El protocolo más utilizado es el de dos fases:

• Fase de crecimiento: Creación de bloqueos.


• Fase de contracción: Liberación de bloqueos.

El gran objetivo de este protocolo de bloqueo de dos fases es que todas


las operaciones de bloqueo se deben realizar antes de la primera opera-
ción de desbloqueo, es decir, primero se dan todos los bloqueos y luego se
liberan.

Las transacciones deberían cumplir las siguientes reglas para garantizar la


seriabilidad:

a)La transacción debe realizar un bloqueo sobre el elemento antes de


operar sobre el mismo.

b)Cuando se libera un bloqueo la transacción no adquiere otro bloqueo, ya


que entran a ejecutarse las operaciones o transacciones que están en
espera. Las ejecuciones intercaladas de estas transacciones son enton-
ces serializables.

Si una transacción cumple con éstas dos reglas se considera que cumple
con el protocolo de dos fases.

10
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Concurrencia, Transacciones, Accesos y Bloqueos

Un ejemplo sería así:

Dado X,Y elementos de datos, se dan T1 y T2 dos transacciones, se pre-


senta el siguiente bloqueo en dos fases.

T1 T2
Bloquear(Y, leer) Bloquear(X,leer)
Leer(Y) Bloquear(Y, escribir + leer)
Bloquear(X, escribir + leer) Leer(X)
Leer(X) Desbloquear(X)
X=X+Y Leer(Y)
Escribir(X) Y=Y+X
Desbloquear(Y) Escribir(Y)
Desbloquear(X) Desbloquear(Y)

Estas dos transacciones están en protocolo de 2 fases, por lo tanto la pla-


nificación que se realice puede ser serializable. Así:

PLANIFICACION

T1 T2

Bloquear(Y, leer)
Leer(Y)
Bloquear(X, escribir + leer)
Bloquea(X, leer)
(en espera que se X
se desbloque por T1)
Leer(X)
X=X+Y
ESCRIBIR (X)
Desbloquear(Y)
Bloquear(Y, escribir + leer)
Desbloquear(X)
Leer(X)
Desbloquear(X)
Leer(Y)
Y=Y+X
Escribir(Y)
Desbloquear(Y)

11
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Concurrencia, Transacciones, Accesos y Bloqueos

6.3 Problemas con bloqueos

Deadlock

Es uno de los problemas más comunes en bloqueos de acceso a datos,


también es conocido como bloqueo mutuo, abrazo mortal, interbloqueo,
traba mortal. Cuando dos o más transacciones esperan unas por otras se
presenta este problema. Las condiciones que se presentan para producir
un deadlock son las siguientes:

•Mutua exclusión: cuando las transacciones solicitan un control exclu-


sivo sobre el recurso.
•Retención y espera: la transacción tiene recursos asignados y se
encuentra esperando por otros recursos de otras transacciones.
•No remoción: las transacciones tienen control sobre los recursos y
únicamente pueden ser liberados por éstas
•Espera circular: transacciones que tienen recursos asignados y espe-
ran por recursos de otras transacciones.

En las gráficas se muestra el ejemplo clásico de deadlock donde una tran-


sacción T1 está tratando de bloquear un elemento de dato de otra tran-
sacción T2, y de igual manera T2 está tratando de bloquear un elemento
de T1.

Refer
tado id
Solici Recurso
o por

A
Proceso Proceso
P1 P2
Recurso
Refer B tado
id o por Solici

T1 T2

12
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Concurrencia, Transacciones, Accesos y Bloqueos

Transacción 1
Inicio Transacción Tabla A

Operación SQL
Operación SQL
Operación SQL

Operación SQL Transacción 2


Operación SQL Tabla B
Operación SQL Inicio Transacción

Commit Operación SQL


Fin Transacción Operación SQL
Operación SQL
La Transacción 1 esta esperando
que la Transacción 2
libere el bloqueo sobre la Tabla B

Operación SQL
Operación SQL
Operación SQL
La Transacción 2 esta esperando
que la Transacción 1
Commit
libere el bloqueo sobre la Tabla A
Fin Transacción

En las gráficas anteriores se muestra el ejemplo clásico de deadlock


donde a una transacción T1 está tratando de bloquear un elemento de
dato de otra transacción T2, y de igual manera T2 está tratando de blo-
quear un elemento de T1.

Métodos para solucionar o prevenir los Deadlocks:

•Prevención: Establecer reglas de prioridad o protocolos con restric-


ciones para prevenir la aparición de los deadlocks.

•Evasión: De acuerdo con los requerimientos establecidos se puede


determinar un posible deadlock por lo que se evita que las transac-
ciones pidan recursos que les cause estados de espera, diseñando
protocolos para la evasión del Deadlock.

•Recuperación: Para recuperar un proceso de un deadlock se puede


cancelar la ejecución y reiniciar. También se pueden desasignar
recursos y correr en forma individual las transacciones requeridas.

13
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Concurrencia, Transacciones, Accesos y Bloqueos

6.4 Marcas de tiempo

Es una técnica de manejo de bloqueo que consiste en determinar en


forma anticipada una ordenación en las transacciones. La marca de
tiempo es un identificador asociado a cada transacción.

Utiliza protocolos para la solución de conflictos en los bloqueos de las


transacciones. Los protocolos son Wait-die y Wound-wait.

El protocolo Wait-die establece obligar una transacción a esperar si está


en conflicto con otra transacción que tenga una marca de tiempo más
reciente.

El protocolo Wound-wait se orienta a que una transacción termine o mate


a otra que tenga una marca de tiempo más reciente o que espere la tran-
sacción de la solicitud.

Algoritmo Wait-Die Algoritmo Wound-Wait

Pide Mantiene Pide Mantiene


Recursos Recursos Recursos Recursos

A (t=7) B (t=11) A (t=7) B (t=11)

espera reemplaza

Pide Mantiene Pide Mantiene


Recursos Recursos Recursos Recursos

B (t=11) A (t=7) B (t=11) A (t=7)

termina espera

14
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Concurrencia, Transacciones, Accesos y Bloqueos

RECURSOS BIBLIOGRÁFICOS

Date, C. (2001). Introducción a los Sistemas de Base de Datos. Prentice


Hall.

Peter Eisentraut, Bernd Helmle (Octubre 2008).


PostgreSQL-Administration

Vargas Valencia Magaly, Cano Yur (200) . Concurrencia en las bases de


datos. Consultado el 6 de Marzo de 2012 en
http://www.monografias.com/trabajos24/concurrencia-base-datos/conc
urrencia-base-datos.shtml

De Ves, Esther, Cerverón Vicente (2007). Técnicas de control de


concurrencia. Consultado el 7 de marzo de 2012 en
http://informatica.uv.es/iiguia/2000/BD2/4_0_BD2Tema4_06.pdf

Romani Loyola, Julio Cesar, Ortiz Velasquez Vladimir.Transacciones y


control de concurrencia. Consultado el 14 de Marzo de 2012 en
http://es.scribd.com/doc/414370/CONTROL-DE-CONCURRENCIA

Universidad Carlos III de Madrid. Opencourseware, Diseño y


administración de base de datos. Consultado el 15 de Marzo de 2012 en
http://ocw.uc3m.es/ingenieria-informatica/diseno-y-administracion-de-b
ases-de-datos/teoria/Tema4_6(Administracion_Concurrencia).pdf

Oracle Corp.(2005). Oracle database concepts. Consultado el 15 de


Marzo de 2012 en
http://docs.oracle.com/cd/B19306_01/server.102/b14220/transact.htm

15
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Concurrencia, Transacciones, Accesos y Bloqueos

GLOSARIO

Integridad: En contexto de Base de datos se refiere a la Integri-


dad de los datos. Está relacionada con la completi-
tud y corrección de los datos almacenados en una
base de datos. Pueden modificarse datos existentes
tomando valores incorrectos o cambios en la base
de datos que se pierden cuando hay un error del
sistema o un fallo de energía.

Protocolo: Conjunto de reglas establecidas para proceso en


sistemas informático en diferentes aspectos tales
como comunicación, manejo de datos, procesamien-
tos, entre otros.

Serialización: Es un mecanismo para transporte de objetos de


datos en diferentes contextos de los sistemas infor-
máticos. Su características es el procesamiento de
dichos datos uno a la vez.

Servidores de Son equipos de hardware o servidores de datos que


Aplicaciones: ejecutan ciertas aplicaciones y le proporcionan ser-
vicios a computadoras clientes.

Sistema También conocido como Sistema Gestor de Base de


Manejador de Datos, son aplicativos que tienen como objetivo
Base de Datos: facilitar la construcción y manipulación de bases de
datos sirviendo como interfaz entre éstas, los usua-
rios y los distintos tipos de aplicaciones que las uti-
lizan. Sus siglas pueden ser SMBD o SGBD.

16
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Concurrencia, Transacciones, Accesos y Bloqueos

OBJETO DE Concurrencia, Transacciones,


APRENDIZAJE Accesos y Bloqueos

Desarrollador de contenido
Experto temático Manuel G. Hormechea Lance

Asesor Pedagógico Rafael Neftalí Lizcano Reyes

Productor Multimedia José Jaime Luis Tang Pinzón


Victor Hugo Tabares Carreño

Programadores Daniel Eduardo Martínez Díaz


Francisco José Lizcano

Líder expertos temáticos Ana Yaqueline Chavarro Parra

Líder línea de producción Santiago Lozada Garcés

Atribución, no comercial, compartir igual

Este material puede ser distribuido, copiado


y exhibido por terceros si se muestra en los
créditos. No se puede obtener ningún ben-
eficio comercial y las obras derivadas tienen
que estar bajo los mismos términos de
licencia que el trabajo original.

17
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje

También podría gustarte