Transacciones - Ejercicio de Gestión de Transacciones
44 Questions
2 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

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

  • Que tenga ciclos
  • Que sea un grafo dirigido (correct)
  • Que sea un grafo no dirigido
  • Que tenga nodos repetidos
  • ¿Cuál es el nombre del teorema relacionado con la complejidad del proceso de serialización?

  • Teorema de la serialización
  • Teorema de la conflict serialización
  • Teorema de la complejidad exponencial (correct)
  • No se menciona explícitamente
  • ¿Qué representa cada nodo en un grafo de precedencia?

  • Un conjunto de instrucciones
  • Una transacción (correct)
  • Un conjunto de transacciones
  • Una operación
  • ¿Cuál es el nombre del proceso que se muestra en el ejemplo?

    <p>Permutación</p> Signup and view all the answers

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

    <p>T1;T2;T3 es conflict serializable</p> Signup and view all the answers

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

    <p>Grafo dirigido</p> Signup and view all the answers

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

    <p>Exponencial</p> Signup and view all the answers

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

    <p>El grafo no es válido</p> Signup and view all the answers

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

    <p>Dos transacciones esperan una a la otra</p> Signup and view all the answers

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

    <p>Lock compartido</p> Signup and view all the answers

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

    <p>Se desbloquean los locks</p> Signup and view all the answers

    ¿Qué ocurre cuando una transacción empieza?

    <p>Se inicia un nuevo TRANSACTION</p> Signup and view all the answers

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

    <p>Porque T1 y T2 esperan uno al otro</p> Signup and view all the answers

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

    <p>Se inicia automáticamente una TRANSACTION</p> Signup and view all the answers

    ¿Qué es lo que hace un TRANSACTION?

    <p>Garantiza la atomicidad de las operaciones</p> Signup and view all the answers

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

    <p>Finaliza una TRANSACTION</p> Signup and view all the answers

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

    <p>Isolation y Consistency</p> Signup and view all the answers

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

    <p>Asegurar la Atomicity y Durability</p> Signup and view all the answers

    ¿Qué pasa cuando el acceso es concurrente?

    <p>Depende del tipo de transacción</p> 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?

    <p>Concurrency</p> Signup and view all the answers

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

    <p>El saldo de la cuenta C es 1300</p> Signup and view all the answers

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

    <p>El saldo de la cuenta C es 1100</p> Signup and view all the answers

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

    <p>Atomicity y Durability</p> Signup and view all the answers

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

    <p>Para asegurar la integridad de la base de datos</p> Signup and view all the answers

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

    <p>Se puede perder información</p> Signup and view all the answers

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

    <p>Asegurar la isolation y durability de las transacciones</p> Signup and view all the answers

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

    <p>La transacción i escribe X y la transacción j lee X.</p> Signup and view all the answers

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

    <p>Escritura-escritura y escritura-lectura.</p> Signup and view all the answers

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

    <p>No usan el mismo recurso o usan el mismo recurso pero ambas son de lectura.</p> Signup and view all the answers

    ¿Qué significa que un schedule es conflict serializable?

    <p>Que puedo transformarlo a uno serial usando permutaciones.</p> Signup and view all the answers

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

    <p>Ambas transacciones, i y j, escriben en X.</p> Signup and view all the answers

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

    <p>Permutaciones no permitidas.</p> Signup and view all the answers

    ¿Qué es una transacción de lectura?

    <p>Una transacción que lee un recurso.</p> Signup and view all the answers

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

    <p>Permutaciones permitidas.</p> Signup and view all the answers

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

    <p>ROLLBACK</p> Signup and view all the answers

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

    <p>Un punto de restauración para una transacción</p> Signup and view all the answers

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

    <p>Se restaura la transacción hasta el punto de SAVEPOINT</p> Signup and view all the answers

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

    <p>Lock seguro</p> Signup and view all the answers

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

    <p>Un registro que se ha insertado en la tabla</p> Signup and view all the answers

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

    <p>SET TRANSACTION ISOLATION LEVEL</p> Signup and view all the answers

    ¿Qué significa el nivel de aislamiento READ ONLY?

    <p>Sólo se pueden leer datos</p> Signup and view all the answers

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

    <p>Lock razonable</p> Signup and view all the answers

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

    <p>Se puede leer datos, pero no escribir</p> Signup and view all the answers

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

    <p>START TRANSACTION</p> 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.

    Quiz Team

    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.

    More Like This

    Database Concurrency Control Quiz
    48 questions
    Concurrency Control in Database Systems
    10 questions
    Database Management Systems: Multiuser Transactions
    24 questions
    Use Quizgecko on...
    Browser
    Browser