Está en la página 1de 82

Base de Datos II

Dr. Javier Tejada Crcamo


jawitejada@hotmail.com
jtejada@ucsp.edu.pe

Evaluacin
Evaluacin Permanente I: 15%
Tareas, prcticas en el laboratorio,
exposiciones, intervencin en clases.

Examen Parcial : 30%


Evaluacin Permanente II: 15%
Trabajo final.

Examen Final : 40%


Trabajo final: 10%

Trabajo final
Diseo de un sistema de
simulacin y monitoreo de
vehculos de transporte
interprovincial.
Range Partitioning y
visualizacin de datos.

Introduccin
Qu factores motivan el
crecimiento de la data?
Estructurada, semi-estructurada,
no estructurada.

Qu es un petabyte?

Worldwide Production of Original Content, Stored Digitally, in Terabytes.


Source: University of California at Berkeley study, 1999.

Costo de Almacenamiento (Source: IBM


Research.)

Physical DB: Motivacin


La perspectiva del usuario final no tiene en
cuenta el crecimiento de los datos.
El hardware avanza, el software tambin;
pero surgen nuevas necesidades SIEMPRE.
El poder computacional debe ser usado
para detectar informacin y no procesar
data. Ej. OLAP y Minera de datos.
Por qu es importante?

Database Life Cycle

Discos Duros
Platos
Motor RPM
Pistas (16000) y Sectores
(512 bytes)
Cabeza de lectura y
escritura
Las cabezas se desplazan
conjuntamente
Cabezas prximas al
disco
Qu es disco de cabezas
fijas?
Discos con varios
brazos?

Controlador de discos
Interfaz
Comprobacin de suma
Reasignacin de
sectores daados
El controlador no
administra cabezas,
brazos.
Interfaz ATA, IDE, SCSI
Discos se conectan con
cables o Red de rea de
Almacenamiento.

Medidas del rendimiento


Capacidad
Tiempo de acceso: Solicitud-Transferencia
Tiempo de bsqueda (2-30 ms).
Tiempo de latencia rotacional (4 a 11.1 ms)

Velocidad de transferencia de datos (25 a 40


mbps)
Fiabilidad.
Tiempo medio de fallos
Ej. Proveedor garantiza 30,000 a 1200,000 (3,4 aos a
136 aos)
Probabilidad fallo. Si hay 1000 discos nuevos sera
1200,000 /1000 = 1200 horas

Optimizacin del acceso a los


bloques del disco
Bloques: 512 bytes o ms
Planificacin del brazo del disco
Algoritmo del ascensor

Organizacin de archivos
Evitar fragmentacin

Uso de memoria intermedia de


escritura
RAM no voltil

Tarea de RAID

Acceso al almacenamiento (1/2)


Bd mantienen al SO fuera !
Minimizar transferencia entre disco y
memoria
Memoria principal e intermedia
(buffer).
Se gestiona la memoria intermedia,
parecido a memoria virtual

Acceso al almacenamiento (1/2)


Tcnicas de gestin de memoria
Estrategia de sustitucin (LRU. Last
recently used)
Bloques clavados
Salida forzada de los bloques

Polticas para la sustitucin.


Los SO utilizan LRU
Las BD pueden predecir referencias
futuras

Polticas para la sustitucin


Uso de MRU (Most Recently used)
Consulta al diccionario de datos
Acceso de ndices

Organizacin de archivos
Se organizan en registros acorde a
los bloques?
Registros de longitud fija. Ej.
registros de cuentas de una BD
Bancaria

Registros de Longitud fija


40 bytes por cada uno

Problemas:
Borrado de registros
Traslape de bloques

Registros de Longitud fija


Borrado de registros

No basta colocar una marca como


borrado

Registros de Longitud fija


Insercin de cabecera y listas
enlazadas

Registros de longitud variable (1/6)

Registros de longitud variable (2/6)


Representacin en cadenas de bytes
Smbolo especial de fin de registro
Almacenar la longitud al inicio.

Problemas
Reutilizar espacio de registros borrados
Datos fragmentados
Crecimiento de registros

Registros de longitud variable (3/6)


Estructura de pginas con ranuras.

Nmero de elementos.
Espacio libre.
Un de entradas: Ubicacin y tamao.
Tamao de registros?
Costo de trasladar registros es elevado?

xito: Indireccin

Registros de longitud variable (4/6)


Mediante registros de longitud fija
Espacio reservado

Si mayor parte de registros tiene


longitud cercana a la mxima.
Existe desperdicio

Registros de longitud variable (5/6)

Representacin con listas

Desperdicio significativo de
espacio

Registros de longitud variable (6/6)

Representacin con listas


Bloque ancla
Bloque de desbordamiento

ndices
ndice de BD = ndice de libro =
Fichas de Biblioteca
Evaluacin de ndices

Tipos de acceso
Tiempo de acceso
Tiempo de insercin
Tiempo de borrado
Espacio adicional requerido

ndices ordenados
ndices primarios y secundarios
Clave de bsqueda
Archivos secuenciales indexados

ndices ordenados: Densos y dispersos

ndices densos y dispersos


ndice disperso: Menos espacio y
menor mantenimiento.
Tiempo de acceso vs. Espacio
adicional
1 entrada por bloque
Registros ocupan varios bloques?

ndices ordenados: Multinivel (1/2)

Ej. 100.000 registros. 10 por bloque.


Un registro ndice por bloque: 10000
100 registros ndices en un bloque,
Nm. Bloques ndice: 100

ndices ordenados: Multinivel (2/2)


Diccionario es ej. de ndice multinivel.
ndice disperso sobre ndice primario

Actualizacin del ndice (1/4)


Insercin en ndice denso
Si valor de clave no est en el
ndice..
Si no
Si ndice almacena ptr. a reg. de
mismo valor..
Si ndice slo apunta al primer reg. de
tabla.

Actualizacin del ndice (2/4)


Insercin en ndice disperso.
Se asume un ndice por bloque.
Si se crea un bloque nuevo
Sino
Si nuevo registro tiene menor clave de
bsqueda..
Sino

Actualizacin del ndice (3/4)


Borrado en ndice denso
Si reg borrado tiene nica clave de
bsqueda.
Si no
Si reg. ndice almacena ptr para cada
reg. archivo.
Si reg. ndice almacena ptr slo para
el primer reg. archivo.

Actualizacin del ndice (4/4)


Borrado en ndice disperso
Si reg. borrado no es clave en
ndice.
Si no
Si fuera el nico registro con la clave
de bsqueda.
Si nueva clave ya est en el ndice...

Sino..

ndices secundarios
Son densos con un ptr. a cada registro.

Por qu no pueden ser dispersos?

rbol B+
Degradacin de archivos secuenciales
indexados y sus ndices
rbol equilibrado

n punteros y n-1 claves


Valores de clave de bsqueda de un nodo se
mantienen ordenados

rbol B+. Hojas


Hojas. Ptrs. apuntan al registro o a un cajn de
punteros.

Una hoja guarda hasta n-1 valores y est permitido


como mnimo
Rangos de valores en hoja no se solapan

rbol B+. Nodos internos (1/2)


Cul es el uso del puntero

Nodos internos forman ndice multinivel (disperso)


sobre nodos hoja.
Deben guardar al menos
punteros
Grado de salida de un nodo

rbol B+. Nodos internos (2/2)


Para
ptrs, apunta menores a
y >=
A quien apunta ?
Nodo raz puede tener menos de
valores
Debe tener al menos dos punteros.

rboles balanceados

rbol B+. Ejemplos

rbol B+. Consultas (1/3)


Examinar nodo raz para buscar menor
valor de clave de bsqueda mayor que V
Si clave es se sigue puntero
Si no se encuentra,
se sigue
Hasta que se alcanza hoja. Si
es V

rbol B+. Consultas (2/3)

rbol B+. Consultas (3/3)


Con K valores de la clave de bsqueda en el archivo,
el camino no sera mayor
Un nodo por un bloque?
Ej.

Bloques de 4 KB.
Clave de bsqueda de 12 bytes.
Tamao de puntero de 8 bytesn sera
Clave de bsqueda de 32 bytesn sera
200
Si se tiene un milln de valores de la clave de bsqueda :
100
= 4 accesos

En un rbol binario
nodos

tendramos 20 accesos a

rbol B+. Actualizaciones


Divisin de un nodo.

Fusin de nodos. (menor que

Insercin:
Si valor de la clave de bsqueda ya existe.
Si no, se inserta valor en la hoja y luego en el archivo.

Cmo sera el borrado?

rbol B+. Divisin de nodo


por insercin (1/2)
Cmo insertar Cdiz?

rbol B+. Divisin de nodo


por insercin (2/2)

rbol B+. Fusin de nodos


por borrado (1/4)

rbol B+. Fusin de nodos


por borrado (2/4)

rbol B+. Fusin de nodos por


borrado (3/4)
Borrado sobre padre de un nodo

rbol B+. Fusin de nodos por


borrado (4/4)

Organizacin de archivos con


rboles B+ (1/2)

rboles B (1/3)

rboles B (2/3)

Transacciones
Transferencia de fondos.
Coleccin de operaciones -> Unidad lgica
Una BD debe garantizar
Ejecucin correcta
Ejecucin concurrente

Implementacin en BD y lenguajes.

Transacciones: Propiedades
Atomicidad.
Todas o ninguna

Consistencia
Ejecucin aislada

Aislamiento
Ejecucin concurrente

Durabilidad
Permanencia de cambios.

Transacciones: Ejemplo (1/4)


Leer(x): BD a memoria
Escribir (x): Memoria BD
Transaccin: Transferencia de 50 de A a B

Consistencia
Suma de A + B no sea alterada
De quin es la responsabilidad?

Transacciones: Ejemplo (2/4)

Atomicidad
Antes de: A=1000 y B = 2000
Fallo despus de escribir (A), antes
de escribir (B)
Nuevos valores 950 y B = 2000
Estado inconsistentedentro de Ti ?
Qu hace la BD para no mostrar estados
inconsistentes?
Componente de gestin de transacciones

Transacciones: Ejemplo (3/4)


Durabilidad
Finalizada la transaccin, las
modificaciones persisten.
Cmo puede perderse los datos?
Cmo se garantiza la durabilidad?
Guardar datos en disco
Guardar datos suficientes en disco

Componente de gestin de
recuperaciones

Transacciones: Ejemplo (4/4)


Aislamiento
Varias transacciones sobre
los mismos datos
Solucin: ejecucin secuencial
Componente de control de concurrencia

Estados de una transaccin

Abortada -> Retrocedido


Transaccin comprometida no se aborta
Transaccin compensadora
Abortada: Reiniciar o Cancelar?
Escrituras externas observables.
Mostrar datos en transacciones largas?

Implementacin de Atomicidad y
Durabilidad (1/2)
Copia en la sombra

Implementacin de Atomicidad y
Durabilidad (1/2)
Cundo pasara a estado comprometida?
Fallo de transaccin
Antes de escribir el puntero

Fallo de sistema
Antes de escribir el puntero
Despus de actualizar el puntero

Escritura atmica del punteroBsico!


Ejemplo. Sesin de edicin de texto

Ejecuciones concurrentes
Ms simple es secuencial que concurrente
Productividad y utilizacin de recursos mejorada.
CPU y E/S en paralelo

Tiempo de espera reducido


Transacciones largas y cortas

Basado en multiprogramacin del SO


Esquemas de control de concurrencia

Planificaciones
A=2000 y B=1000
A = 855 y B = 2145

Caractersticas
Incluir todas las instrucciones
Conservar el orden

Planificaciones secuenciales. N!
Planificaciones concurrentes. > N!

Planificaciones concurrentes
Estado consistente e inconsistente

Se necesita componente de Control de Concurrencia.

Secuencialidad
Planificaciones consistentes y no !
No se interpretan tipos de operaciones

Slo Leer y Escribir

Secuencialidad en cuanto a conflictos


Sea
. Si actan sobre datos diferentes no hay
problemacaso contrario

Conflicto: Operaciones de
diferentes transacciones
sobre mismo dato y al menos una instruccin es
escribir. Ej. Planificacin 3.

Secuencialidad en cuanto a conflictos


Si dos instrucciones no estn en conflicto se puede
cambiar el orden. Ej. Escribir (A) x Leer (B)

Producen el mismo estado al sistema

Secuencialidad en cuanto a conflictos


Planificacin 3 es equivalente a una planificacin
secuencial
Si P se puede transformar en P intercambiando
instrucciones no conflictivas, entonces son
equivalentes en cuanto a conflictos

Secuencialidad en cuanto a conflictos


P es secuenciable en cuanto a conflictos si es
equivalente en cuanto a conflictos a una
planificaciones secuencial. Ej. Plan. 3

Secuencialidad en cuanto a conflictos


Existen planificaciones que producen el mismo resultado; pero
no son equivalentes en conflictos

960 y 2040

P8 no es equivalente en cuanto a conflictos a


P
Secuencial <T1,T5>
Valores de A y B son los mismos, tanto al ejecutar P8 y
PSecuencial <T1,T5>

Secuencialidad en cuanto
a vistas (1/4)

Secuencialidad en cuanto
a vistas (2/4)
P1 es equivalente a P2?

Secuencialidad en cuanto
a vistas (3/4)
P1 es equivalente a P3?

Secuencialidad en cuanto
a vistas (4/4)
P es secuenciable en cuanto a vistas si es equivalente
en cuanto a vistas a una planificacin secuencial
P9 es equivalente a Psecuencia <T3,T4,T6>?

Toda planificacin secuencial en cuanto a conflictos es


secuenciable en cuanto a vistas y no al revs

Escritura a ciegas?

Recuperabilidad (1/2)
Si Tj depende de Ti y Ti falla, hay que abortar
ambas.
Es necesario poner restricciones
Planificaciones recuperables
Sean Ti y Tj, tal que Tj lee lo escrito por Ti, la
operacin de comprometer Ti aparece antes que Tj

Recuperabilidad (2/2)
Planificaciones sin cascada

Es posible retroceso en cascada


Una planificacin sin cascada implica que si Tj depende
de Ti, entonces comprometer Ti aparece antes de la Tj

Implementacin del aislamiento


Planificaciones secuenciales en cuanto a
conflictos y vistas y sin cascada son seguras
Esquemas de control de Concurrencia:
Tcnica del Bloqueo

Comprobacin de la
secuencialidad (1/3)
Grafo G =(V,A) para determinar la
secuencialidad.
Arcos:

Si

en toda P, Ti precede a Tj

Comprobacin de la
secuencialidad (2/3)

Comprobacin de la
secuencialidad (3/3)

Si G tiene ciclos, P no es secuenciable e


cuanto a conflictos. Si no los tiene, P es
secuenciable en cuanto a conflictos