Transacciones en sistemas de base de datos
Procesamiento de transacciones Operaciones de negocios sobre datos compartidos Garantizan consistencia y disponibilidad Acciones complejas como unidad Escalabilidad Seguridad
Transacciones Una transaccion es una colección de acciones que transforman el estado de los datos mientras que preservan la consistencia de los mismos La base de datos puede estar en un estado inconsistente durante la ejecución Base de datos en estado consistente Base de datos en estado consistente Inicio Ejecución de la transacción Fin
Propiedades de las Transacciones Atomicidad Todo o nada Consistencia No hay violación de las limitantes de integridad Aislamiento Cambios concurrenes, indivisibles y serializables Durabilidad Persistencia de actualizaciones comprometidas
Atomicidad Todas o ninguna de las operaciones de transacción son efectuadas La atomicidad necesita en el caso que se interrumpa una transaccion por una falla, los resultados parciales deben ser deshechos.
La actividad de preservar la atomicidad de la transacción en prescencia de abortos debidos a fallas de introducción de datos, sobrecargas del sistema, o fechas expiradas se llama recuperación de transacción La actividad de asegurar la transacción en fallas del sistema se llama “crash recovery”
Consistencia Consistencia Interna Una transacción que se ejecuta sola contra una base de datos consistente, se queda en un estado consistente. Las transacciones no deben violar las restricciones de integridad de la base de datos. Las transacciones son programas correctos
Aislamiento Serialidad Si varias transacciones son efectuadas al mismo tiempo, el resultado debe ser igual que si se efectuaran en un orden Resultados Incompletos Una transacción incompleta no puede revelar sus resultados Es necesario evitar los abortos en cascada
Durabilidad Una vez que se efectúe una transacción, el sistema debe garantizar que no se pierda el resultado pese a fallas del sistema Recuperación de bases de datos
Caracterización de las Transacciones Áreas de aplicación No distribuidas Vs. distribuidas Transacciones compensatorias Transacciones Heterogéneas Tiempo On-line (short) vs. Batch (long-file) Estructura Transacciones planas Transacciones anidadas Organización de leer y escribir acciones Dos pasos Restringidas Modelos de acción
Estructura de las Transacciones Transacciones Planas Es una secuencia de operaciones primitivas entre las marcas BEGIN y END Transacciones Anidadas Las operaciones de las transacciones pueden ser en si mismas una transacción
Las transacciones proveen.. Ejecucion atómica y confiable en caso de fallas Correcta ejecución en casos de múltiples accesos Correcta administración de réplicas (si son soportadas)
Procesando Transacciones Estructura de Transacciones (llamadas modelos de transacción) Flat (simple), anidada Consistencia interna de bases de datos Control semántico de datos, algoritmos Protocolos de fiabilidad Atomicidad y Durabilidad Protocolos locales de recuperación Global commit protocols
Algoritmos de Control de Concurrencia Cómo sincronizar transacciones simultáneas Intra-transacciones, Aislamiento Control de protocolos de Réplicas Cómo controlar la mutua consistencia de réplicas Equivalentes de copia y ROWA