Fundamentos de Bancos de datos
description
Transcript of Fundamentos de Bancos de datos
![Page 1: Fundamentos de Bancos de datos](https://reader036.fdocuments.ec/reader036/viewer/2022081603/56815cea550346895dcaf37a/html5/thumbnails/1.jpg)
FUNDAMENTOS DE BANCOS DE DATOS
Carmen R. Cintrón-Ferrer, 2008, Derechos Reservados
![Page 2: Fundamentos de Bancos de datos](https://reader036.fdocuments.ec/reader036/viewer/2022081603/56815cea550346895dcaf37a/html5/thumbnails/2.jpg)
Carmen R. Cintrón Ferrer, 2008, Derechos Reservados 2
Optimización y Control de concurrencia
Módulo VIII
![Page 3: Fundamentos de Bancos de datos](https://reader036.fdocuments.ec/reader036/viewer/2022081603/56815cea550346895dcaf37a/html5/thumbnails/3.jpg)
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
![Page 4: Fundamentos de Bancos de datos](https://reader036.fdocuments.ec/reader036/viewer/2022081603/56815cea550346895dcaf37a/html5/thumbnails/4.jpg)
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
![Page 5: Fundamentos de Bancos de datos](https://reader036.fdocuments.ec/reader036/viewer/2022081603/56815cea550346895dcaf37a/html5/thumbnails/5.jpg)
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
![Page 6: Fundamentos de Bancos de datos](https://reader036.fdocuments.ec/reader036/viewer/2022081603/56815cea550346895dcaf37a/html5/thumbnails/6.jpg)
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
![Page 7: Fundamentos de Bancos de datos](https://reader036.fdocuments.ec/reader036/viewer/2022081603/56815cea550346895dcaf37a/html5/thumbnails/7.jpg)
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
![Page 8: Fundamentos de Bancos de datos](https://reader036.fdocuments.ec/reader036/viewer/2022081603/56815cea550346895dcaf37a/html5/thumbnails/8.jpg)
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
![Page 9: Fundamentos de Bancos de datos](https://reader036.fdocuments.ec/reader036/viewer/2022081603/56815cea550346895dcaf37a/html5/thumbnails/9.jpg)
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
![Page 10: Fundamentos de Bancos de datos](https://reader036.fdocuments.ec/reader036/viewer/2022081603/56815cea550346895dcaf37a/html5/thumbnails/10.jpg)
Control de concurrencia
Módulo VII
Carmen R. Cintrón Ferrer, 2008, Derechos Reservados 10
![Page 11: Fundamentos de Bancos de datos](https://reader036.fdocuments.ec/reader036/viewer/2022081603/56815cea550346895dcaf37a/html5/thumbnails/11.jpg)
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
![Page 12: Fundamentos de Bancos de datos](https://reader036.fdocuments.ec/reader036/viewer/2022081603/56815cea550346895dcaf37a/html5/thumbnails/12.jpg)
Ejemplo
Carmen R. Cintrón Ferrer, 2008, Derechos Reservados 12
![Page 13: Fundamentos de Bancos de datos](https://reader036.fdocuments.ec/reader036/viewer/2022081603/56815cea550346895dcaf37a/html5/thumbnails/13.jpg)
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)
![Page 14: Fundamentos de Bancos de datos](https://reader036.fdocuments.ec/reader036/viewer/2022081603/56815cea550346895dcaf37a/html5/thumbnails/14.jpg)
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)
![Page 15: Fundamentos de Bancos de datos](https://reader036.fdocuments.ec/reader036/viewer/2022081603/56815cea550346895dcaf37a/html5/thumbnails/15.jpg)
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
![Page 16: Fundamentos de Bancos de datos](https://reader036.fdocuments.ec/reader036/viewer/2022081603/56815cea550346895dcaf37a/html5/thumbnails/16.jpg)
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
![Page 17: Fundamentos de Bancos de datos](https://reader036.fdocuments.ec/reader036/viewer/2022081603/56815cea550346895dcaf37a/html5/thumbnails/17.jpg)
Ejemplo
Carmen R. Cintrón Ferrer, 2008, Derechos Reservados 17
![Page 18: Fundamentos de Bancos de datos](https://reader036.fdocuments.ec/reader036/viewer/2022081603/56815cea550346895dcaf37a/html5/thumbnails/18.jpg)
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)
![Page 19: Fundamentos de Bancos de datos](https://reader036.fdocuments.ec/reader036/viewer/2022081603/56815cea550346895dcaf37a/html5/thumbnails/19.jpg)
Ejecución del DBMódulo VII
Carmen R. Cintrón Ferrer, 2008, Derechos Reservados 19
![Page 20: Fundamentos de Bancos de datos](https://reader036.fdocuments.ec/reader036/viewer/2022081603/56815cea550346895dcaf37a/html5/thumbnails/20.jpg)
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
![Page 21: Fundamentos de Bancos de datos](https://reader036.fdocuments.ec/reader036/viewer/2022081603/56815cea550346895dcaf37a/html5/thumbnails/21.jpg)
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
![Page 22: Fundamentos de Bancos de datos](https://reader036.fdocuments.ec/reader036/viewer/2022081603/56815cea550346895dcaf37a/html5/thumbnails/22.jpg)
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
![Page 23: Fundamentos de Bancos de datos](https://reader036.fdocuments.ec/reader036/viewer/2022081603/56815cea550346895dcaf37a/html5/thumbnails/23.jpg)
Optimización del DBMódulo VII
Carmen R. Cintrón Ferrer, 2008, Derechos Reservados 23
![Page 24: Fundamentos de Bancos de datos](https://reader036.fdocuments.ec/reader036/viewer/2022081603/56815cea550346895dcaf37a/html5/thumbnails/24.jpg)
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
![Page 25: Fundamentos de Bancos de datos](https://reader036.fdocuments.ec/reader036/viewer/2022081603/56815cea550346895dcaf37a/html5/thumbnails/25.jpg)
Databases Distribuidos
Carmen R. Cintrón Ferrer, 2008, Derechos Reservados 25
![Page 26: Fundamentos de Bancos de datos](https://reader036.fdocuments.ec/reader036/viewer/2022081603/56815cea550346895dcaf37a/html5/thumbnails/26.jpg)
Data Warehouse
Carmen R. Cintrón Ferrer, 2008, Derechos Reservados 26
![Page 27: Fundamentos de Bancos de datos](https://reader036.fdocuments.ec/reader036/viewer/2022081603/56815cea550346895dcaf37a/html5/thumbnails/27.jpg)
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.