Académique Documents
Professionnel Documents
Culture Documents
L(x) e(x) c
En este caso, la transaccin T2 lee 50 como el valor de x. Esto es incorrecto ya que T2 lee x
mientras que su valor se est cambiando de 50 a 51. Adems, el valor de x es 51 al final de la
ejecucin de T1 y T2, ya que la escritura de T2 sobrescribir la escritura de T1.
Asegurar el aislamiento al no permitir que los resultados incompletos sean vistos por otras
transacciones, como muestra el ejemplo anterior, resuelve el problema de las actualizaciones
perdidas. Este tipo de aislamiento se ha denominado estabilidad del cursor. Una segunda razn
para el aislamiento es la interrupcin en cascada. Si una transaccin permite a otros ver sus
resultados incompletos antes de comprometerse y luego decide abortar, cualquier transaccin
que haya ledo sus valores incompletos tendr que abortar tambin.
Es posible tratar los niveles de consistencia desde la perspectiva de la propiedad de
aislamiento. El grado 0 proporciona muy poco aislamiento aparte de prevenir las
actualizaciones perdidas. Grado 2 de consistencia evita abortos en cascada. El Grado 3
proporciona un aislamiento completo que obliga a una de las transacciones en conflicto a
esperar hasta que el otro termine.
ANSI, como parte de la especificacin estndar SQL2, ha definido un conjunto de niveles de
aislamiento [ANSI, 1992]. Se especifican tres fenmenos:
Lectura Sucia: Considere el caso en el que la transaccin T1 modifica un valor de
elemento de datos, que luego se lee por otra transaccin T2 antes de que T1 realice
una confirmacin o anulacin. En caso de interrupcin de T1, T2 ha ledo un valor que
nunca existe en la base de datos.
Lectura no repetible o difusa: La transaccin T1 lee el valor de un dato. Otra
transaccin T2 entonces modifica o elimina ese dato y hace commit. Si T1 intenta volver
a leer el valor del dato, o bien lee un valor diferente o no puede encontrar el dato en
absoluto; As dos lecturas dentro de la misma transaccin T1 devuelven resultados
diferentes.
Lectura Fantasma: Ocurre cuando T1 hace una bsqueda con un predicado y T2
inserta nuevas tuplas que satisfacen el predicado.
Basndose en estos fenmenos, los niveles de aislamiento se definen como sigue.
Read uncommitted: Para transacciones que operan a este nivel, los tres fenmenos son
posibles.
Read committed: Las lecturas difusas y fantasma son posibles, pero las lecturas sucias no lo
son.
Repeatable read: Slo lecturas fantasmas son posibles.
Anomaly serializable: Ninguno de los fenmenos es posible.
10.2.4 Durabilidad
Durabilidad se refiere a la propiedad de las transacciones que garantiza que una vez que una
transaccin se compleata, sus resultados son permanentes y no se pueden borrar de la base
de datos. Por lo tanto, el DBMS garantiza que los resultados de una transaccin sobrevivirn
fallas subsiguientes del sistema. La propiedad de durabilidad plantea el problema de la
recuperacin de la base de datos, es decir, cmo recuperar la base de datos a un estado
consistente en el que se reflejan todas las acciones hechas commit.
10.3 Tipos de transacciones
Las transacciones han sido clasificadas de acuerdo a varios criterios. Uno de los criterios es la
duracin de la transaccin. De acuerdo con esto las transacciones pueden ser clasificadas
como en lnea o por lotes. Las cuales son llamadas de vida-corta o vida-larga respectivamente.
Las transacciones en lnea tienen como principal caracterstica tener tiempos de respuesta
cortos y porque acceden a una pequea porcin de la base de datos. Por otro lado, las
transacciones por lotes, toman largos tiempos de ejecucin y acceden a una gran porcin de la
base de datos.
Otro tipo de clasificacin que se ha propuesto es con respecto a la organizacin de las
acciones de escritura y lectura. El tipo de transacciones que permiten tanto lectura y escritura
sin un orden especfico, son llamadas transacciones generales. Si las transacciones son
restringidas y todas las acciones de lectura deben ser ejecutadas antes de las acciones de
escritura, entonces la transaccin es llamada two-step. De forma similar si un elemento de los
datos debe ser ledo antes de que pueda ser actualizado, se denominan restricted(o lectura
antes de escritura). Si la transaccin es two-step y restricted a la vez, se denomina como una
transaccin restricted two-step. Finalmente tenemos el modelo de accin de transacciones, el
cual consiste del tipo restringido, donde cada par (lectura, escritura) es ejecutado
automticamente.
Tambin se pueden clasificar las transacciones de acuerdo a su estructura. Se pueden
distinguir cuatro amplias categoras en incremento de complejidad: transacciones tipo flat,
transacciones anidadas cerradas, transacciones anidadas abiertas, modelos workflow que en
algunos casos son combinaciones de varias formas anidadas. Esta clasificacin es
probablemente la ms comn.
10.3.1 Transacciones de tipo flat
Las transacciones flat tienen un nico punto de inicio y un nico punto de finalizacin. La
mayora del trabajo de gestin de transacciones se centran en transacciones flat.
10.3.2 Transacciones Anidadas
Un modelo alternativo de transacciones es permitir a una transaccin incluir otra transaccin
con sus propios puntos de inicio y retroalimentacin. Este tipo de transacciones que son
incrustadas dentro de otras son llamadas subtransacciones.
Se diferencian entre anidamiento cerrado y abierto por sus caractersticas de terminacin. Las
transacciones anidadas cerradas se comprometen en un modelo ascendente a travs de la
raz. Por lo tanto, una subtransaccin anidada comienza luego de que su padre haya
empezado y termina antes de este. Una transaccin anidada abierta permite que sus
resultados sean observados por fuera de la transaccin.
Las ventajas de las transacciones anidadas son: primero, proveen un nivel de concurrencia
ms alto entre transacciones. Como una transaccin consiste de un nmero de otras
transacciones, una mayor concurrencia es posible dentro de una sola transaccin.
Un segundo argumento a favor de las transacciones anidadas est relacionada a la
recuperacin. Es posible recuperarse independientemente de los fallos de cada
subtransaccin. Esto limita el dao a una pequea parte de la transaccin.
Finalmente, es posible crear nuevas transacciones de las ya existentes.
10.3.3 Workflows
Una definicin aceptada es que workflows es una coleccin de tareas organizadas para llevar a
cabo algn proceso de negocio.
Se pueden identificar tres tipos de workflows:
1. Workflows orientados al ser humano los cuales involucran a los humanos en la realizacin de
las tareas.
2. Workfllows orientados al sistema son los que consisten de computacin y tareas
especializadas que pueden ser ejecutadas por un computador.
3. Workflows transaccionales su alcance est entre orientado al ser humano y orientado al
sistema y toma caractersticas de ambos.
Un workflow es modelado con semntica de anidamiento abierto.