Fundamentos de Bancos de datos

Post on 10-Feb-2016

37 views 3 download

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 Presentation

Transcript of Fundamentos de Bancos de datos

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.