Fundamentos de Bancos de datos Carmen R. Cintrón-Ferrer, 2008, Derechos Reservados
Optimización y Control de concurrencia Módulo VIII Optimización y Control de concurrencia Carmen R. Cintrón Ferrer, 2008, Derechos Reservados
Manejo de Transacciones Acción por transacción: Examinar: Seleccionar Ordenar y Presentar Actualizar o Editar Eliminar Tipo de Transacción:: Simple Compuesta Carmen R. Cintrón Ferrer, 2008, Derechos Reservados
Transacciones compuestas Integridad y consistencia del DB: Ejecutar secuencia Verificar terminación exitosa serie Comprometer cambios (Commit) Ejemplos: Venta a crédito Recibo de inventario Cierre de cuenta de un cliente Carmen R. Cintrón Ferrer, 2008, Derechos Reservados
Carmen R. Cintrón Ferrer, 2008, Derechos Reservados Venta a crédito Crear factura de venta: INSERT INTO INVOICE INSERT INTO INVOICE DETAIL (Loop por cada item vendido) Actualizar inventario: UPDATE INVENTORY (Reducir inventario) Actualizar transacciones de ventas: UPDATE SALES Actualizar Balance Cliente UPDATE CUST_BALANCE Comprometer transacciones de la secuencia COMMIT Carmen R. Cintrón Ferrer, 2008, Derechos Reservados
Carmen R. Cintrón Ferrer, 2008, Derechos Reservados Recibo de inventario Registrar mercancía recibida: UPDATE INVENTORY (Loop por ítem) Actualizar transacciones de compras: Cotejar si se recibió toda la mercancía ordenada: UPDATE PO (marcar completo o dejar abierto) Actualizar Cuentas a Pagar: Seleccionar Proveedor Marcar Factura – PO para pago Generar transacción de pago INSERT AP Comprometer transacciones de la secuencia COMMIT Carmen R. Cintrón Ferrer, 2008, Derechos Reservados
Cierre de cuenta de cliente Identificar cliente: SEL AR Determinar transacciones en trámite: SEL INVOICE (Loop) Calcular Balance Adeudado: SEL CUST_BALANCE Cerrar cuenta: Si CUST_BALANCE = 0, UPDATE CUSTOMER Si CUST_BALANCE ne 0, UPDATE CUSTOMER Comprometer transacciones de la secuencia COMMIT Carmen R. Cintrón Ferrer, 2008, Derechos Reservados
Propiedades de las transacciones Atomicidad – Todas las operaciones de la transacción se completan con éxito Consistencia – El DB se mantiene consistente luego de cada transacción Aislación – los datos asociados a una transacción sólo pueden ser utilizados por la transacción hasta que concluye Durabilidad – Al completar la transacción (Commited) los cambios no se pierden Serialización – La secuencia de ejecución de transacciones concurrentes genera siempre el mismo resultado Carmen R. Cintrón Ferrer, 2008, Derechos Reservados
Bitácora de transacciones Begin / Set Transaction Operations: Update’s Insert’s Delete’s Commit Secuencia: IDtrans #trans Previo Siguiente Operador Relación Tuplo Atributo Valor inicial Valor final Fecha Hora Usuario Carmen R. Cintrón Ferrer, 2008, Derechos Reservados
Control de concurrencia Módulo VII Control de concurrencia Carmen R. Cintrón Ferrer, 2008, Derechos Reservados
Control de concurrencia Problemas Pérdida de actualizaciones – una transcción sobre escribe la(s) otra(s) Datos perdidos – Una transacción fue anulada (rollbacked) por error Búsquedas inconsistentes – Cuando se recuperan datos antes de haberse completado una transacción exitosa (Committed) Scheduler: Transacciones de READ Transacciones de READ/WRITE Transacciones de WRITE/READ Transacciones de WRITE/WRITE Carmen R. Cintrón Ferrer, 2008, Derechos Reservados
Carmen R. Cintrón Ferrer, 2008, Derechos Reservados Ejemplo Carmen R. Cintrón Ferrer, 2008, Derechos Reservados
Control de concurrencia Cierre (Locks) Lock – Garantiza el acceso exclusivo de los ítems de datos requeridos para completar una transacción Granularidad – Nivel de cierre: Data Base Tabla Página Tuplo /Fila Atributo Carmen R. Cintrón Ferrer, 2008, Derechos Reservados
Control de concurrencia Cierre (Locks) Tipo de Cierre (Lock): Binario: Cerrado Sin cerrar Exclusivo: Congela acceso hasta concluir ciclo Mutuamente excluyente – sólo a una transacción a la vez se le puede conceder un cierre exclusivo Carmen R. Cintrón Ferrer, 2008, Derechos Reservados
Control de concurrencia Cierre (Locks) - Serialización Tipo de Transacciones de cierre: READ LOCK WRITE LOCK UNLOCK Serialización de los Locks: Secuencia – Aumenta – Disminuye Protocolo: Dos transacciones no pueden tener Locks en conflicto Unlock no puede preceder un Lock Datos sólo se pueden modificar cuando se tienen todos los Locks requeridos Carmen R. Cintrón Ferrer, 2008, Derechos Reservados
Control de concurrencia Deadlock Definición Técnicas: Prevención Detección Evitarlo ¿Cuál emplear? Solución: Rollback Rollforward Carmen R. Cintrón Ferrer, 2008, Derechos Reservados
Carmen R. Cintrón Ferrer, 2008, Derechos Reservados Ejemplo Carmen R. Cintrón Ferrer, 2008, Derechos Reservados
Control de concurrencia Cronometraje (Time Stamping) Asignar un valor único a cada transacción Provee secuencia natural procesamiento Propiedades del cronometraje: Uniqueness – valor único Monotonicity – valor incremental Operacionalización: Asigna el mismo valor a la secuencia transaccional Ante conflictos: Una transacción se detiene Rollback Reasigna valor de cronometraje Mecánica: Wait/die o Wound/Wait Carmen R. Cintrón Ferrer, 2008, Derechos Reservados
Carmen R. Cintrón Ferrer, 2008, Derechos Reservados Módulo VII Ejecución del DB Carmen R. Cintrón Ferrer, 2008, Derechos Reservados
Carmen R. Cintrón Ferrer, 2008, Derechos Reservados Database Recovery Restauración del DB – Transacciones incompletas son abortadas Transacciones completas son exitosas Eventos: Fallos HW/SW Error humano Desastres Asegurar la integridad y consistencia DB Carmen R. Cintrón Ferrer, 2008, Derechos Reservados
Carmen R. Cintrón Ferrer, 2008, Derechos Reservados Transaction Recovery Bitácoras: Write-ahead Log – mantiene un “before image” Redundant transaction Log – diversas copias de las bitácoras de transacciones evitan pérdidas debido a problemas con los discos Buffers – propicia mayor agilidad en la ejecución al procesar transacciones en RAM CheckPoints – Facilita sincronizar las bitácoras con las actualizaciones físicas al DB Carmen R. Cintrón Ferrer, 2008, Derechos Reservados
Transaction Recovery Técnicas Write through: Actualiza inmediatamente el DB aunque la transacción esté uncommitted Recuperación: Identificar el último CheckPoint en el Log: Mantiene transacciones completadas (commited) Rehace transacciones pendientes actualizando cambios sobre la base de valor actualizado en el Log Secuencia de mayor (edad) a menor Deshace transacciones incompletas (rollbacked- uncommitted) utilizando el valor previo Carmen R. Cintrón Ferrer, 2008, Derechos Reservados
Carmen R. Cintrón Ferrer, 2008, Derechos Reservados Módulo VII Optimización del DB Carmen R. Cintrón Ferrer, 2008, Derechos Reservados
Carmen R. Cintrón Ferrer, 2008, Derechos Reservados Optimización Ajustar ejecución - performance tuning: SQL Queries: Parsing, Execution & Fetching DBMS Optimization Optimizer: Rule Based Cost Based Cache: Data/SQL/Sort RAID structuring Estadísticas: Ejecución queries Estructura tablas/archivos Indización Recursos Carmen R. Cintrón Ferrer, 2008, Derechos Reservados
Databases Distribuidos Carmen R. Cintrón Ferrer, 2008, Derechos Reservados
Carmen R. Cintrón Ferrer, 2008, Derechos Reservados Data Warehouse Carmen R. Cintrón Ferrer, 2008, Derechos Reservados
Carmen R. Cintrón Ferrer, 2008, Derechos Reservados Referencias Database Processing: Fundamentals, Design and Implementation, Kroenke, Prentice Hall,NN (Latest edition) Database Systems: Design, Implementation and Management, Rob & Coronel, Thompson, Boston (Latest edition) Database in Depth, Relational Theory for Practitioners, C.J. Date, 2005, OReilly, Sebastopol, CA, Safari Books Online Bases de Datos: Desde Chen hasta Codd, Luque, Gómez-Nieto, López y Cerruela, 2002, Alfaomega – RA-MA, Madrid, España An Introduction to Database Systems, C.J. Date, 2000, Addison Wesley, Mass. Carmen R. Cintrón Ferrer, 2008, Derechos Reservados