Transacciones - Ejercicio de Gestión de Transacciones

HumbleAlliteration avatar
HumbleAlliteration
·
·
Download

Start Quiz

Study Flashcards

44 Questions

¿Cuál es la condición necesaria para que un grafo de precedencia sea válido?

Que sea un grafo dirigido

¿Cuál es el nombre del teorema relacionado con la complejidad del proceso de serialización?

Teorema de la complejidad exponencial

¿Qué representa cada nodo en un grafo de precedencia?

Una transacción

¿Cuál es el nombre del proceso que se muestra en el ejemplo?

Permutación

¿Cuál es el resultado de la permutación mostrada en el ejemplo?

T1;T2;T3 es conflict serializable

¿Qué tipo de grafo es el grafo de precedencia?

Grafo dirigido

¿Cuál es la complejidad del proceso de serialización?

Exponencial

¿Qué ocurre si se encuentra un ciclo en un grafo de precedencia?

El grafo no es válido

¿Cuál es el problema en la situación de deadlock en 2PL?

Dos transacciones esperan una a la otra

¿Qué tipo de lock se está utilizando en el ejemplo de deadlock?

Lock compartido

¿Qué es lo que ocurre cuando una transacción realiza un COMMIT?

Se desbloquean los locks

¿Qué ocurre cuando una transacción empieza?

Se inicia un nuevo TRANSACTION

¿Por qué se produce un deadlock en el ejemplo?

Porque T1 y T2 esperan uno al otro

¿Qué es lo que sucede cuando se conecta a una base de datos?

Se inicia automáticamente una TRANSACTION

¿Qué es lo que hace un TRANSACTION?

Garantiza la atomicidad de las operaciones

¿Cuál es el papel de un COMMIT en una TRANSACTION?

Finaliza una TRANSACTION

¿Qué características de las transacciones se encarga de asegurar el Transaction Manager?

Isolation y Consistency

¿Cuál es el objetivo principal del Log y Recovery Manager?

Asegurar la Atomicity y Durability

¿Qué pasa cuando el acceso es concurrente?

Depende del tipo de transacción

¿Qué es la capacidad de permitir que múltiples usuarios o procesos accedan o modifiquen la base de datos al mismo tiempo?

Concurrency

¿Cuál es el resultado de la transferencia doble concurrente en la opción 1?

El saldo de la cuenta C es 1300

¿Cuál es el resultado de la transferencia doble concurrente en la opción 2?

El saldo de la cuenta C es 1100

¿Qué características de las transacciones se encarga de asegurar el Log y Recovery Manager?

Atomicity y Durability

¿Por qué es importante manejar la concurrencia en las transacciones?

Para asegurar la integridad de la base de datos

¿Qué sucede cuando se producen transacciones concurrentes sin un manejo adecuado?

Se puede perder información

¿Cuál es el objetivo principal del Transaction Manager y del Log y Recovery Manager?

Asegurar la isolation y durability de las transacciones

¿Qué ocurre cuando se produce una transacción de escritura-lectura?

La transacción i escribe X y la transacción j lee X.

¿Qué tipo de transacciones no se pueden intercambiar en un schedule?

Escritura-escritura y escritura-lectura.

¿Cuál es la condición para permutar un par de operaciones consecutivas en un schedule?

No usan el mismo recurso o usan el mismo recurso pero ambas son de lectura.

¿Qué significa que un schedule es conflict serializable?

Que puedo transformarlo a uno serial usando permutaciones.

¿Qué ocurre cuando se produce una transacción de escritura-escritura?

Ambas transacciones, i y j, escriben en X.

¿Cuál es el nombre de las transacciones que no se pueden intercambiar en un schedule?

Permutaciones no permitidas.

¿Qué es una transacción de lectura?

Una transacción que lee un recurso.

¿Cuál es el nombre de las transacciones que se pueden intercambiar en un schedule?

Permutaciones permitidas.

¿Qué instrucción se utiliza para cancelar una transacción?

ROLLBACK

¿Qué es un SAVEPOINT en una transacción?

Un punto de restauración para una transacción

¿Qué sucede cuando se ejecuta un ROLLBACK TO SAVEPOINT?

Se restaura la transacción hasta el punto de SAVEPOINT

¿Qué tipo de lock se utiliza cuando se selecciona una tabla completa?

Lock seguro

¿Qué es un 'fantasma' en una transacción?

Un registro que se ha insertado en la tabla

¿Qué instrucción se utiliza para establecer el nivel de aislamiento en una transacción?

SET TRANSACTION ISOLATION LEVEL

¿Qué significa el nivel de aislamiento READ ONLY?

Sólo se pueden leer datos

¿Qué tipo de lock se utiliza cuando se selecciona una tupla específica?

Lock razonable

¿Qué sucede cuando se tiene un shared lock en una transacción?

Se puede leer datos, pero no escribir

¿Qué instrucción se utiliza para iniciar una transacción?

START TRANSACTION

Study Notes

Transacciones

  • UnTransaction Manager se encarga de asegurar la Isolation y Consistency, mientras que el Log y Recovery Manager se encargan de asegurar la Atomicity y Durability.

Ejemplo de Transacción

  • Supongamos un ejemplo de transferencia de dinero entre dos cuentas:
    • UPDATE cuentas SET saldo = saldo - v WHERE cid = 1
    • UPDATE cuentas SET saldo = saldo + v WHERE cid = 2

Concurrente

  • El acceso concurrente es la capacidad de permitir que múltiples usuarios o procesos accedan o modifiquen la base de datos al mismo tiempo.

Ejemplo de Transferencia Doble

  • Supongamos que Alice y Bob tienen una cuenta bancaria en común y ambos quieren transferir dinero a Charles:
    • Proceso Alice: READ(saldoAB, x), WRITE(saldoAB, x - 100), READ(saldoC, x), WRITE(saldoC, x + 100)
    • Proceso Bob: READ(saldoAB, y), WRITE(saldoAB, y - 200), READ(saldoC, y), WRITE(saldoC, y + 200)

Problemas con el Acceso Concurrente

  • El problema de la doble escritura y lectura puede ocurrir cuando hay acceso concurrente.

Permutaciones no Permitidas

  • No se pueden cambiar el orden de las operaciones en un schedule a la ligera, por ejemplo:
    • T1: READ(A), WRITE(A)
    • T2: WRITE(A), READ(A)

Acciones Conflictivas

  • Una acción pueden ser conflictiva si usan el mismo recurso y ambas no son de lectura.

Grafo de Precedencia

  • Un grafo de precedencia es un grafo dirigido y sin ciclos donde los nodos corresponden a instrucciones (transacciones en este caso).

SQL y Transacciones

  • START TRANSACTION; SELECT a_nombre FROM Actores; COMMIT;
  • En algunos lenguajes de programación, la conexión a la base de datos implica un START TRANSACTION automático.

Cancelar una Transacción

  • START TRANSACTION; UPDATE Actores SET bio = 'El mejor actor' WHERE nombre = 'Adrian Soto'; ROLLBACK;

Savepoints

  • START TRANSACTION; UPDATE Actores SET bio = 'El mejor actor' WHERE nombre = 'Adrian Soto'; SAVEPOINT MejorActor; UPDATE Actores SET bio = 'El peor actor' WHERE nombre = 'Juan Reutter'; ROLLBACK TO SAVEPOINT MejorActor;

Granularidad de Locks

  • SELECT S.rating, MIN(S.age) FROM Sailors AS S WHERE S.rating = 8;
  • Lock seguro: La tabla S
  • Lock razonable: Tuplas de S con rating = 8

"Fantasmas" en Transacciones

  • T1: SELECT S.rating, MIN(S.age) FROM Sailors AS S WHERE S.rating = 8;
  • T2: INSERT INTO Sailors AS S VALUES (5,22,8);
  • "Fantasma" en la transacción T1, el registro (5,22,8) no existía en la tabla Sailors cuando se inició la transacción.

Nivel de Aislamiento

  • SET TRANSACTION ISOLATION LEVEL READ ONLY
  • SET TRANSACTION ISOLATION LEVEL READ WRITE

El administrador de transacciones garantiza la isolation y consistencia, mientras que el administrador de registro y recuperación se encarga de la atomicidad y durabilidad. Evalúa tus conocimientos sobre transacciones concurrentes.

Make Your Own Quizzes and Flashcards

Convert your notes into interactive study material.

Get started for free
Use Quizgecko on...
Browser
Browser