Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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.
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.
PROBLEMAS DE CONCURRENCIA
Procedure ImprimirSuma(Cuenta1,
• Leer4(Cuentas[8]) devuelve el valor de $200
Cuenta2)
begin • Escribir4(Cuentas[8], $100)
Start;
• Leer3 (Cuentas[8]) devuelve el valor de $100
temp1 := Leer(Cuentas[Cuenta1]);
output(temp1); • Leer3 (Cuentas[9]) devuelve el valor de $200
temp2 := Leer(Cuentas[Cuenta2]);
• Leer4 (Cuentas[9]) devuelve el valor de $200
output(temp2);
temp1 := temp1 $+$ temp2; • Escribir4 (Cuentas[9], $300)
output(temp1);
• Commit4
Commit;
end • Commit3
Sincronizador o Serializador
Bloqueos
La idea básica de un Bloqueo es que
cuando se esta procesando una
transacción, inhibe todas las demás
transacciones
Bloqueos
Bloqueo Exclusivo o de Escritura
Transacciones
Base de datos
Transacción
Transacción A
A Tupla
Bloqueo
Exclusivo
Transacción
Transacción B
B DB
Si
Si la
la transacción
transacción A
A pone
pone un
un bloqueo
bloqueo exclusivo
exclusivo (X)
(X) sobre
sobre una
una tupla,
tupla,
entonces
entonces se rechazará una petición de cualquier otra transacción BB
se rechazará una petición de cualquier otra transacción
para
para un un bloqueo
bloqueo de
de cualquier
cualquier tipo
tipo sobre
sobre la
la tupia
tupia
Bloqueos
Bloqueo Compartido o de Lectura
Tupla
Transacción
Transacción A
A
Bloqueo
Compartido
Transacción
Transacción B
B
DB
Transacción
Transacción C
C
Bloqueo
Exclusivo
Si
Si la
la transacción
transacción AA pone
pone un
un bloqueo
bloqueo compartido
compartido (S)(S) sobre
sobre la
la tupla
tupla entonces:
entonces:
Se
Se rechazará
rechazará unauna petición
petición de
de cualquier
cualquier otra
otra transacción
transacción BB para
para un
un bloqueo
bloqueo Exclusivo
Exclusivo sobre
sobre
la
la tupla.
tupla.
Se
Se otorgará
otorgará unauna petición
petición de
de cualquier
cualquier otra
otra transacción
transacción BB para
para un un bloqueo
bloqueo SS sobre
sobre la
la tupla
tupla
(esto es, ahora también B tendrá un bloqueo S sobre la
(esto es, ahora también B tendrá un bloqueo S sobre la tupla tupla
Bloqueos
Matriz de Compatibilidad
Transacción
TransacciónAA
TransacciónBB XX SS --
XX No
No No
No Si
Si
Transacción
SS No
No Si
Si Si
Si
Si
Si
-- No
No Si
Si Si
Si
X
X Bloqueo
Bloqueo Exclusivo
Exclusivo
S
S Bloqueo
Bloqueo Compartido
Compartido