270 likes | 392 Views
Carmen R. Cintrón-Ferrer , 2008, Derechos Reservados. Fundamentos de Bancos de datos. Módulo VIII. Optimización y Control de concurrencia. Manejo de Transacciones. Acción por transacción: Examinar: Seleccionar Ordenar y Presentar Actualizar o Editar Eliminar Tipo de Transacción::
E N D
Carmen R. Cintrón-Ferrer, 2008, DerechosReservados Fundamentos de Bancos de datos
MóduloVIII 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
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
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
Módulo VII Control de concurrencia Carmen R. Cintrón Ferrer, 2008, Derechos Reservados
Control de concurrenciaProblemas • 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
Ejemplo Carmen R. Cintrón Ferrer, 2008, Derechos Reservados
Control de concurrenciaCierre (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 concurrenciaCierre (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 concurrenciaCierre (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 concurrenciaDeadlock • Definición • Técnicas: • Prevención • Detección • Evitarlo • ¿Cuál emplear? • Solución: • Rollback • Rollforward Carmen R. Cintrón Ferrer, 2008, Derechos Reservados
Ejemplo Carmen R. Cintrón Ferrer, 2008, Derechos Reservados
Control de concurrenciaCronometraje(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
Módulo VII Ejecución del DB 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
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 RecoveryTé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
Módulo VII Optimización del DB 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
Data Warehouse 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