Podcast
Questions and Answers
¿Cuál es la condición necesaria para que un grafo de precedencia sea válido?
¿Cuál es la condición necesaria para que un grafo de precedencia sea válido?
¿Cuál es el nombre del teorema relacionado con la complejidad del proceso de serialización?
¿Cuál es el nombre del teorema relacionado con la complejidad del proceso de serialización?
¿Qué representa cada nodo en un grafo de precedencia?
¿Qué representa cada nodo en un grafo de precedencia?
¿Cuál es el nombre del proceso que se muestra en el ejemplo?
¿Cuál es el nombre del proceso que se muestra en el ejemplo?
Signup and view all the answers
¿Cuál es el resultado de la permutación mostrada en el ejemplo?
¿Cuál es el resultado de la permutación mostrada en el ejemplo?
Signup and view all the answers
¿Qué tipo de grafo es el grafo de precedencia?
¿Qué tipo de grafo es el grafo de precedencia?
Signup and view all the answers
¿Cuál es la complejidad del proceso de serialización?
¿Cuál es la complejidad del proceso de serialización?
Signup and view all the answers
¿Qué ocurre si se encuentra un ciclo en un grafo de precedencia?
¿Qué ocurre si se encuentra un ciclo en un grafo de precedencia?
Signup and view all the answers
¿Cuál es el problema en la situación de deadlock en 2PL?
¿Cuál es el problema en la situación de deadlock en 2PL?
Signup and view all the answers
¿Qué tipo de lock se está utilizando en el ejemplo de deadlock?
¿Qué tipo de lock se está utilizando en el ejemplo de deadlock?
Signup and view all the answers
¿Qué es lo que ocurre cuando una transacción realiza un COMMIT?
¿Qué es lo que ocurre cuando una transacción realiza un COMMIT?
Signup and view all the answers
¿Qué ocurre cuando una transacción empieza?
¿Qué ocurre cuando una transacción empieza?
Signup and view all the answers
¿Por qué se produce un deadlock en el ejemplo?
¿Por qué se produce un deadlock en el ejemplo?
Signup and view all the answers
¿Qué es lo que sucede cuando se conecta a una base de datos?
¿Qué es lo que sucede cuando se conecta a una base de datos?
Signup and view all the answers
¿Qué es lo que hace un TRANSACTION?
¿Qué es lo que hace un TRANSACTION?
Signup and view all the answers
¿Cuál es el papel de un COMMIT en una TRANSACTION?
¿Cuál es el papel de un COMMIT en una TRANSACTION?
Signup and view all the answers
¿Qué características de las transacciones se encarga de asegurar el Transaction Manager?
¿Qué características de las transacciones se encarga de asegurar el Transaction Manager?
Signup and view all the answers
¿Cuál es el objetivo principal del Log y Recovery Manager?
¿Cuál es el objetivo principal del Log y Recovery Manager?
Signup and view all the answers
¿Qué pasa cuando el acceso es concurrente?
¿Qué pasa cuando el acceso es concurrente?
Signup and view all the answers
¿Qué es la capacidad de permitir que múltiples usuarios o procesos accedan o modifiquen la base de datos al mismo tiempo?
¿Qué es la capacidad de permitir que múltiples usuarios o procesos accedan o modifiquen la base de datos al mismo tiempo?
Signup and view all the answers
¿Cuál es el resultado de la transferencia doble concurrente en la opción 1?
¿Cuál es el resultado de la transferencia doble concurrente en la opción 1?
Signup and view all the answers
¿Cuál es el resultado de la transferencia doble concurrente en la opción 2?
¿Cuál es el resultado de la transferencia doble concurrente en la opción 2?
Signup and view all the answers
¿Qué características de las transacciones se encarga de asegurar el Log y Recovery Manager?
¿Qué características de las transacciones se encarga de asegurar el Log y Recovery Manager?
Signup and view all the answers
¿Por qué es importante manejar la concurrencia en las transacciones?
¿Por qué es importante manejar la concurrencia en las transacciones?
Signup and view all the answers
¿Qué sucede cuando se producen transacciones concurrentes sin un manejo adecuado?
¿Qué sucede cuando se producen transacciones concurrentes sin un manejo adecuado?
Signup and view all the answers
¿Cuál es el objetivo principal del Transaction Manager y del Log y Recovery Manager?
¿Cuál es el objetivo principal del Transaction Manager y del Log y Recovery Manager?
Signup and view all the answers
¿Qué ocurre cuando se produce una transacción de escritura-lectura?
¿Qué ocurre cuando se produce una transacción de escritura-lectura?
Signup and view all the answers
¿Qué tipo de transacciones no se pueden intercambiar en un schedule?
¿Qué tipo de transacciones no se pueden intercambiar en un schedule?
Signup and view all the answers
¿Cuál es la condición para permutar un par de operaciones consecutivas en un schedule?
¿Cuál es la condición para permutar un par de operaciones consecutivas en un schedule?
Signup and view all the answers
¿Qué significa que un schedule es conflict serializable?
¿Qué significa que un schedule es conflict serializable?
Signup and view all the answers
¿Qué ocurre cuando se produce una transacción de escritura-escritura?
¿Qué ocurre cuando se produce una transacción de escritura-escritura?
Signup and view all the answers
¿Cuál es el nombre de las transacciones que no se pueden intercambiar en un schedule?
¿Cuál es el nombre de las transacciones que no se pueden intercambiar en un schedule?
Signup and view all the answers
¿Qué es una transacción de lectura?
¿Qué es una transacción de lectura?
Signup and view all the answers
¿Cuál es el nombre de las transacciones que se pueden intercambiar en un schedule?
¿Cuál es el nombre de las transacciones que se pueden intercambiar en un schedule?
Signup and view all the answers
¿Qué instrucción se utiliza para cancelar una transacción?
¿Qué instrucción se utiliza para cancelar una transacción?
Signup and view all the answers
¿Qué es un SAVEPOINT en una transacción?
¿Qué es un SAVEPOINT en una transacción?
Signup and view all the answers
¿Qué sucede cuando se ejecuta un ROLLBACK TO SAVEPOINT?
¿Qué sucede cuando se ejecuta un ROLLBACK TO SAVEPOINT?
Signup and view all the answers
¿Qué tipo de lock se utiliza cuando se selecciona una tabla completa?
¿Qué tipo de lock se utiliza cuando se selecciona una tabla completa?
Signup and view all the answers
¿Qué es un 'fantasma' en una transacción?
¿Qué es un 'fantasma' en una transacción?
Signup and view all the answers
¿Qué instrucción se utiliza para establecer el nivel de aislamiento en una transacción?
¿Qué instrucción se utiliza para establecer el nivel de aislamiento en una transacción?
Signup and view all the answers
¿Qué significa el nivel de aislamiento READ ONLY?
¿Qué significa el nivel de aislamiento READ ONLY?
Signup and view all the answers
¿Qué tipo de lock se utiliza cuando se selecciona una tupla específica?
¿Qué tipo de lock se utiliza cuando se selecciona una tupla específica?
Signup and view all the answers
¿Qué sucede cuando se tiene un shared lock en una transacción?
¿Qué sucede cuando se tiene un shared lock en una transacción?
Signup and view all the answers
¿Qué instrucción se utiliza para iniciar una transacción?
¿Qué instrucción se utiliza para iniciar una transacción?
Signup and view all the answers
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
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Description
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.