Un SGBD se dice transaccional, si es capaz de mantener la integridad de los datos, haciendo que estas transacciones no puedan finalizar en un estado intermedio.
Cuando por alguna causa el sistema debe cancelar la transacción, empieza a deshacer las órdenes ejecutadas hasta dejar la base de datos en su estado inicial (llamado punto de integridad), como si la orden de la transacción nunca se hubiese realizado.
Para esto, el lenguaje de consulta de datos SQL (Structured Query Language), provee los mecanismos para especificar que un conjunto de acciones deben constituir una transacción.
- BEGIN TRAN: Especifica que va a empezar una transacción.
- COMMIT TRAN: Le indica al motor que puede considerar la transacción completada con éxito.
- ROLLBACK TRAN: Indica que se ha alcanzado un fallo y que debe restablecer la base al punto de integridad.
En un sistema ideal, las transacciones deberían garantizar todas las propiedades ACID; en la práctica, a veces alguna de estas propiedades se simplifica o debilita con vistas a obtener un mejor rendimiento.
Transacciones planas: Consisten en una secuencia de operaciones primitivas encerradas entre las palabras clave BEGIN y END
Transacciones Anidadas: Consiste en tener transacciones que dependen de otras, estas transacciones están incluidas dentro de otras de un nivel superior y se las conoce como subtransacciones. La transacción de nivel superior puede producir hijos (subtransacciones) que hagan más fácil la programación del sistema y mejoras del desempeño.
Estados de una Transacción
- Transacción Activa: se encuentra en este estado justo después de iniciar su ejecución.
- Transacción Parcialmente Confirmada: en este punto, se efectúan diferentes operaciones de verificación para asegurar que la transacción no interfiera con otras transacciones en ejecución.
- Transacción Confirmada: Ha concluido su ejecución con éxito.
- Transacción Fallida: En este caso, es posible que la transacción deba ser cancelada.
- Transacción Terminada: indica que la transacción a abandonado el sistema.
Planificaciones
- Conservar el orden de la transacción.
- P1 y P2 son secuénciales.
- N! Plantaciones válidas para N transacciones.
- No consistencia
- Dejar concurrencia al SO.
- Se puede asegurar la consistencia.
- Secuencialidad
- El sistema debe controlar la ejecución concurrente de las transacciones para asegurar que el estado de la base sigue siendo consistente.
Planificaciones que aseguran consistencia
- Se debe tener en cuenta:
- No se verifican todas las instrucciones, sólo las operaciones de lectura y de escritura de la base de datos.
- Cuando se poseen operaciones secuenciales de lectura y de escritura en el mismo punto de la base de datos entonces la planificación puede generar inconsistencias.
- La mejor forma de asegurar planificaciones correctas es asegurando las equivalencias de planificación y esto se logra con dos posibles técnicas: Secuencialidad en cuanto a conflictos y Secuencialidad en cuanto a vistas.
No hay comentarios.:
Publicar un comentario