Vous êtes sur la page 1sur 96

Base de Datos II

Dr. Javier Tejada Crcamo


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)

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 (1 reg. en ms de un bloque)

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. Array de entradas: Ubicacin y tamao. Cmo se hace el borrado? Cmo se incrementa tamao?

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

Organizacin de registros en archivos (1/5)


Archivos secuenciales
Clave de bsqueda Vinculacin mediante punteros Almacenamiento fsico contiguo

Organizacin de registros en archivos (2/5)


Archivos secuenciales
Difcil mantener orden fsico. Gestin mediante punteros. Insercin:

Reordenamiento temporal. De qu depende?

Organizacin de registros en archivos (3/5) Archivos en agrupaciones


Bases simples: Un archivo por cada relacin. Tamao del cdigo objeto. SI BD aumenta es necesaria una estructura mas compleja.

Organizacin de registros en archivos (4/5)


Un archivo para varias relaciones.

Tablas de impositor y cliente

Organizacin de registros en archivos (5/5)

Impositor x cliente

Qu pasa con?

Diccionario de bases de datos (1/2)

Tipos de informacin.
Nombres tablas, atributos, vistas y definiciones, restricciones de integridad.

Sobre usuarios
Nombres, informacin de cuentas, contraseas, autenticacin

Inf. estadstica y descriptiva.


Nm. Tuplas, mtodo de almacenamiento.

Diccionario de bases de datos (2/2)

Organizacin de almacenamiento
Si usan archivos del SO Si usan un solo archivo administrado por la BD.

Sobre ndices
Nombre, relacin a la que aplica, atributos, tipos.

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

Puede haber mas de un ndice por archivo?

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

ndices ordenados: Multinivel (1/2)

Ej. 100.000 registros. 10 por bloque.


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

Si fuera bsqueda binaria


Log2(100)= 7
Lectura de un bloque 30ms, necesito = 210 ms

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)


Borrado en ndice denso
Si reg. borrado era el nico con esa 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 (3/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 (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.reemplaza con el sgte?
Si nueva clave ya est en el ndice...

Sino..

Tarea
12.3. ARCHIVOS DE NDICES DE RBOL B+

ndices secundarios
Son densos con un ptr. a cada registro. Por qu no pueden ser dispersos?

rbol B+
Degradacin de archivos secuenciales rbol equilibrado

n punteros y n-1 claves Valores de clave de bsqueda de un nodo se mantienen ordenados

rbol B+. Hojas (1/2)


Ptrs. apuntan al registro? Ptrs. apuntan a cajn de punteros?

Una hoja guarda hasta n-1 valores y como mnimo

rbol B+. Hojas (2/2)


Rangos de valores no se solapan
Dos nodos: de j si i < j => claves de i < claves

El rbol puede ser denso o disperso?


Cul es el uso del puntero en hojas ?

rbol B+. Nodos internos (1/2)


Nodos internos forman ndice multinivel (disperso) sobre nodos hoja.
Puede guardar hasta n punteros y al menos Grado de salida de un nodo: n

rbol B+. Nodos internos (2/2)


Para >=
A quien apunta

ptrs, apunta menores a

<a

Nodo raz puede tener menos de


Debe tener al menos dos punteros.

valores

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
se sigue

Si no se encuentra,

Hasta que se alcanza hoja. Si Vsino?

es

rbol B+. Consultas (2/3)

rbol B+. Consultas (3/3)


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

En un rbol binario accesos a nodos

tendramos 20

rbol B+. Actualizaciones


Divisin de un nodo. Fusin de nodos. (menor que
)

Asumimos: Nodos nunca sern demasiado grandes, ni demasiado pequeos 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)

Insercin de forma general


Determinar el nodo hoja h en el cual se debe realizar la insercin.
Si es necesario dividir, se inserta el menor valor del nuevo nodo en padre de h. (como Daimiel)

Y si no hay espacio?

rbol B+. Fusin de nodos por borrado (1/6)

rbol B+. Fusin de nodos por borrado (2/6)

rbol B+. Fusin de nodos por borrado (3/6) Borrado del padre de un nodo

rbol B+. Fusin de nodos por borrado (4/6)

rbol B+. Fusin de nodos por borrado (5/6)


No siempre es posible fusionar datos.

rbol B+. Fusin de nodos por borrado (6/6)


No siempre es posible fusionar datos.

Organizacin de archivos con rboles B+

rboles B (1/2)

rboles B (2/2)

Puntero adicional n-1 claves en hojas y m-1 claves en nodos internos. m < n ? Bsqueda es ms eficaz en B?
Ms accesos Menos claves de bsqueda en nodos internos Almacenamiento de espacio.

rboles B (2/2)
Bsqueda es ms eficaz en B?
Ms accesos Menos claves de bsqueda en nodos internos Almacenamiento de espacio.

Insercin y borrado complicado.


Si se borra ki la clave +pequea en el subrbol de Pi +1 la reemplaza.

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 (2/2)


Cundo pasara a estado comprometida? Fallo de transaccin
Fallo de sistema 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
Iniciales: A=1000 y B=2000 Fin: A = 855 y B = 2145

Caractersticas
Incluir todas las instrucciones Conservar el orden

Planificaciones secuenciales. N! Planificaciones concurrentes. > N!

Planificaciones concurrentes
A=1000, B=2000

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. Dos tipos:
Secuencialidad en cuanto a conflictos Secuencialidad en cuanto a vistas

Secuencialidad en cuanto a conflictos


Sea y 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


Es secuenciable en cuanto a conflictos?

Cmo va con respecto a <T3,T4> y <T4,T3>

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> Entonces, sera necesario analizar clculos..

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

Toda Plan. Sec. en cuanto a conflictos es secuenciable en cuanto a vistas y no viceversa.

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

Vous aimerez peut-être aussi