fundamentos de bancos de datos
DESCRIPTION
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:: - PowerPoint PPT PresentationTRANSCRIPT
FUNDAMENTOS DE BANCOS DE DATOS
Carmen R. Cintrón-Ferrer, 2008, Derechos Reservados
Carmen R. Cintrón Ferrer, 2008, Derechos Reservados 2
Optimización y Control de concurrencia
Módulo VIII
Manejo de Transacciones Acción por transacción:
Examinar:○ Seleccionar○ Ordenar y Presentar
Actualizar o EditarEliminar
Tipo de Transacción::SimpleCompuesta
Carmen R. Cintrón Ferrer, 2008, Derechos Reservados 3
Transacciones compuestas Integridad y consistencia del DB:
Ejecutar secuenciaVerificar terminación exitosa serieComprometer cambios (Commit)
Ejemplos:Venta a créditoRecibo de inventarioCierre de cuenta de un cliente
Carmen R. Cintrón Ferrer, 2008, Derechos Reservados 4
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 5
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 6
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 7
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 8
Bitácora de transacciones Begin / Set Transaction Operations:
Update’sInsert’sDelete’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 9
Control de concurrencia
Módulo VII
Carmen R. Cintrón Ferrer, 2008, Derechos Reservados 10
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 11
Ejemplo
Carmen R. Cintrón Ferrer, 2008, Derechos Reservados 12
Lock – Garantiza el acceso exclusivo de los ítems de datos requeridos para completar una transacción
Granularidad – Nivel de cierre:Data BaseTablaPáginaTuplo /FilaAtributo
Carmen R. Cintrón Ferrer, 2008, Derechos Reservados 13
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 14
Control de concurrenciaCierre (Locks)
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 15
Control de concurrenciaCierre (Locks) - Serialización
Definición Técnicas:
PrevenciónDetecciónEvitarlo
¿Cuál emplear? Solución:
RollbackRollforward
Carmen R. Cintrón Ferrer, 2008, Derechos Reservados 16
Control de concurrenciaDeadlock
Ejemplo
Carmen R. Cintrón Ferrer, 2008, Derechos Reservados 17
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 18
Control de concurrenciaCronometraje (Time Stamping)
Ejecución del DBMódulo VII
Carmen R. Cintrón Ferrer, 2008, Derechos Reservados 19
Database Recovery Restauración del DB –
Transacciones incompletas son abortadasTransacciones completas son exitosas
Eventos:Fallos HW/SWError humanoDesastres
Asegurar la integridad y consistencia DB
Carmen R. Cintrón Ferrer, 2008, Derechos Reservados 20
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 21
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 LogSecuencia de mayor (edad) a menorDeshace transacciones incompletas (rollbacked-
uncommitted) utilizando el valor previo
Carmen R. Cintrón Ferrer, 2008, Derechos Reservados 22
Optimización del DBMódulo VII
Carmen R. Cintrón Ferrer, 2008, Derechos Reservados 23
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 24
Databases Distribuidos
Carmen R. Cintrón Ferrer, 2008, Derechos Reservados 25
Data Warehouse
Carmen R. Cintrón Ferrer, 2008, Derechos Reservados 26
Carmen R. Cintrón Ferrer, 2008, Derechos Reservados 27
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.