BIVT2 - Administración y seguridad en la BD Flashcards
¿Qué es una transacción?
- Unidad lógica de trabajo.
- Secuencia de operaciones en una BD mediante la cual un estado consistente de la BD se transforma en otro estado consistente, sin conservar por fuerza la consistencia en todos los estados intermedios.
Operaciones en SQL de una transacción
- COMMIT
- ROLLBACK
¿Qué es el COMMIT?
Indica que una transacción ha finalizado con éxito al SGBD
¿Qué es el ROLLBACK?
Indica al SGBD que debe recuperar su estado justo en el momento anterior a comenzar la transacción que no ha podido finalizar
¿Para qué sirven las propiedades ACID?
Para asegurar la integridad de los datos tras hacer el COMMIT
¿Cuáles son las propiedades ACID?
- Atomicity (Atomicidad).
- Consistency (Consistencia).
- Isolation (Aislamiento).
- Durability (Durabilidad).
¿Qué es la Atomicity (Atomicidad)?
Las acciones de una transacción se ejecutan todas o ninguna.
¿Qué es la Consistency (Consistencia)?
- La BD se encuentra en un estado consistente antes de la ejecución de la transacción y debe estar en un estado consistente cuando la transacción termine.
- Garantiza las reglas de integridad
¿Qué es la Isolation (Aislamiento)?
- La ejecución de una transacción no debe interferir en la ejecución de otras transacciones, la transacción debe ejecutarse como si estuviera aislada.
- El aislamiento se pone en acción mediante técnicas de bloqueo.
¿Qué es la Durability (Durabilidad)?
- Tras la finalización con éxito de una transacción, los cambios realizados en la BD permanecen, incluso si hay fallos en el sistema.
- Es persistente una transacción cuándo se consigue que se almacene en disco.
Estados de una transacción
- Activa.
- Parcialmente comprometida.
- Fallida.
- Abortada.
- Comprometida.
¿Cuándo una transacción está parcialmente comprometida?
Después de ejecutarse la última instrucción.
Problemas de concurrencia
- El problema de la modificación perdida.
- El problema de la dependencia no comprometida o lectura sucia.
- El problema del análisis inconsistente o lectura fantasma.
- Lectura no repetible
Problemas de concurrencia: El problema de la modificación perdida
La modificación realizada por la transacción X se pierde porque la transacción Y sobreescribe el resultado sobre el resultado anterior.
Problemas de concurrencia: El problema de la dependencia no comprometida o lectura sucia
Se producen cuando una transacción puede leer datos que están siendo escritos por otra transacción antes de que ésta realice el commit.