Documente Academic
Documente Profesional
Documente Cultură
Silberschatz, A., Korth, H.F., Sudarshan, S., Fundamentos de Bases de Datos, 5 edicin, Madrid, 2006 Pons, et al. Introduccin a las Bases de datos, Thomson, 2005
Tabla de contenidos
Introduccin Medios de almacenamiento fsico Mtodo de acceso a datos El gestor de disco del SO El gestor de archivos del SGBD Representacin de la base de datos en el nivel interno Indexacin y asociacin Organizacin de registros en archivos Organizacin secuencial Indexacin Fichero secuencial indexado ndices densos y dispersos ndices jerrquicos o multinivel ndices B y B+ Asociacin Hashing esttico y dinmico Comparacin entre indexacin ordenada y hashing Definicin de ndices en SQL
Lecturas recomendadas
Bsicas Cap. 11 y 12. Silberschatz, A., Korth, H.F., Sudarshan, S., Fundamentos de Bases de Datos, 5 edicin, Madrid, 2006. Cap. 13 y 14. Elmasri, R., Navathe, S.B., Fundamentos de Sistemas de Bases de Datos, 3; edicin, Pearson Education, 2008. Cap. 1. Pons, O. et al. Introduccin a los sistemas de bases de datos. Paraninfo. 2008 Complementarias Delaney, Kalen. Inside Microsoft SQL server 2005 : the storage engine. 2007. England, Ken. Microsoft SQL server 2000 performance optimization and tuning handbook. 2001.
Introduccin
SGBD: almacenar grandes cantidades de informacin de forma permanente y de manera eficiente. Nivel interno expresa las operaciones sobre los datos en trminos de actuacin sobre unidades mnimas de almacenamiento denominadas pginas de BD. Provee al administrador del gestor mecanismos para optimizar el almacenamiento y el acceso a datos. Nivel fsico se encuentra implementado en el sistema operativo, proporciona al gestor una capa de abstraccin sobre el hardware. El nivel interno del gestor realiza el acceso a los medios de almacenamiento mediante llamadas a los servicios del sistema de archivos proporcionado por el SO.
Programa Programa 11 Programa Programa 22 Programa Programa nn
Vista A
Nivel Lgico
Nivel Interno
Dispositivos de almacenamiento
Velocidad Velocidad de acceso de acceso (ns) (ns) Cach Cach Memoria principal Memoria principal Memoria flash Memoria flash Discos magnticos Discos magnticos Discos pticos Discos pticos Cintas magnticas Cintas magnticas 10-6 10-5 10-4 5-10 8-150 >1000 10 0.1 0.5 1 10-3 0.5 *10-3 10-3 Coste Coste ($/Mb) ($/Mb) Capacidad Capacidad (Mb) (Mb) 0-10 1-104 1-104 104 - 105 102 - 104 102 - 106 Volatilidad Volatilidad
Si Si No No No No
Coste: coste de adquisicin entre capacidad de almacenamiento Fiabilidad: tiempo medio entre fallos Prdida de datos ante fallos de alimentacin y cadas del sistema Fallos fsicos del dispositivo de almacenamiento
Memoria flash
Los datos se mantienen ante un fallo de alimentacin Los datos se pueden escribir una sola vez en una posicin, pero una posicin se puede borrar y escribir de nuevo Pueden soportar slo un nmero limitado de ciclos de escritura/borrado. El borrado se tiene que hacer sobre bancos enteros de memoria La lectura es aproximadamente tan rpida como la de memoria principal Pero la escritura es lenta (pocos microsegundos), el borrado es an ms lento El coste por unidad es similar al de la memoria principal Ampliamente utilizado en dispositivos embebidos tales como cmaras digitales tambin conocida como EEPROM (Electrically Erasable Programmable Read-Only Memory)
Discos magnticos
Los datos se almacenan en discos giratorios, y que se leen/escriben magnticamente Es el principal medio de almacenamiento de datos a largo plazo; tpicamente almacenan bases de datos enteras. Los datos se deben mover de disco a memoria principal para acceder a ellos, y escritos de nuevo hacia el disco si se modifican Los accesos son mucho ms lentos que a memoria principal Acceso directo es posible leer datos de disco en cualquier orden, al contrario que en las cintas magnticas Las capacidades actuales llegan hasta a cientos de GB Mucha mayor capacidad y menor coste/byte que la memoria principal/flash Crece de manera constante y rpida con las mejoras tecnolgicas (factor de 2 a 3 cada 2 aos) Sobrevive a fallos de corriente y cadas del sistema Los fallos de disco pueden destruir datos, pero son muy infrecuentes
Almacenamiento ptico
No-voltil, los datos se leen pticamente de un disco giratorio utilizando un lser Los medios ms comunes son CD-ROM (640 MB) y DVD (4.7 a 17 GB) Los discos pticos de una-escritura, muchas lecturas (WORM) se utilizan para almacenamiento de archivos (CD-R y DVD-R) Tambin existen versiones de mltiples escrituras (CD-RW, DVD-RW, y DVD-RAM) Las lecturas y escrituras son ms lentas que en los discos magnticos Juke-box: son sistemas con un nmero elevado de discos extrables, unos pocos lectores y un mecanismo para la carga y descarga automtica de discos. Permiten el almacenamiento de grandes volmenes de datos
Cinta magntica
No voltil, se utiliza principalmente para copias de seguridad (recuperacin frente a fallos de disco) y para archivo de datos Acceso secuencial mucho ms lento que el disco Capacidad muy alta (hay cintas de 40 a 300 GB) Las cintas se pueden extraer del dispositivo El almacenamiento es mucho ms barato que en disco, pero los dispositivos son caros Existen jukeboxes de cintas para el almacenamiento de cantidades masivas de datos Cientos de terabytes (1 terabyte = 109 bytes) hasta un petabyte (1 petabyte= 1012bytes)
10
Jerarqua
Almacenamiento primario (registro temporal de datos)
11
Almacenamiento secundario o en lnea (almacenamiento persistente) Almacenamiento terciario o fuera de lnea (copias de seguridad)
Discos magnticos
El nivel interno organiza el almacenamiento y el acceso a la BD en los discos magnticos atendiendo a su estructura. Un disco duro est constituido por un conjunto de discos magnticos (platos) insertados en un eje de rotacin Sobre cada una de las caras del disco se ubica una cabeza de lectura/escritura dotada de movimiento transversal. Cuando el disco est en funcionamiento, rota y con los cabezales es posible acceder a cualquier punto de cada una de las caras de los discos. Cada disco est compuesto por un conjunto de pistas concntricas que a su vez se dividen en sectores, los cuales representan la unidad mnima de almacenamiento (512 bytes) Para acceder a un sector es preciso indicar el cilindro, el n de sector en ese cilindro y el plato que lo alberga El cilindro est constituido por la i-ava pista de todos los platos. A nivel de SO puede utilizarse un mltiplo de sectores contiguos que se denomina bloque como unidad de E/S
12
13
Tasa de transferencia: ATA-5: 66 MB/sg. SCSI-3: 40 MB/sg. Canal de fibra: 256 MB/sg.
14
Niveles de RAID
Nivel 0: No redundancia Aplicaciones de alta velocidad donde no sea crtico la prdida de informacin Nivel 1: Buen comportamiento en escritura Discos espejo
15
Eleccin de RAID
Factores a tener en cuenta Coste Prestaciones: Nmero de operaciones de E/S por segundo, y ancho de banda durante la utilizacin normal Prestaciones durante un fallo Prestaciones durante reconstruccin de disco que fall Incluido el tiempo que se tarda en reconstruir el disco que fall El nivel 1 proporciona unas prestaciones de escritura mucho mejores que el nivel 5 El nivel 5 requiere al menos 2 lecturas de bloque y dos escrituras de bloque para escribir un solo bloque, mientras que el nivel1 slo requiere dos escrituras de bloque El nivel1 es mejor para entornos de muchas actualizaciones, tales como discos de histricos (logs) El nivel 5 es preferible para aplicaciones con baja tasa de actualizacin y grandes cantidades de datos El nivel 1 es preferible para todas las dems aplicaciones.
16
Mtodo de acceso a la BD
La descripcin de la arquitectura de tres niveles culmina con la expresin de los datos a nivel interno en trminos de archivo, registro y campo almacenado. Un archivo se organiza lgicamente en pginas (8KB) que es la unidad de almacenamiento que utiliza el gestor de BD para operaciones de E/S y de bloqueo. Cada una de estas pginas, puede contener desde una fraccin de registro a varios registros dependiendo del tamao de pgina. A nivel de SO, cada una de estas pginas est integrada por varios fragmentos denominados bloques de SO. Un bloque est compuesto por uno o varios sectores de disco. Archivo almacenado Pgina 1
Bloque 0 P1 P2 Pedro Mara Prez Garca P5
17
Pgina 2
Bloque 3 Ana Sez Unidad de disco
Bloque 4
Sector 4
Sector 1
Sector 3
Sector 2
18
Para insertar, actualizar y borrar, el gestor de archivos tendr que recuperar las pginas del archivo involucradas y operar con ellas para modificarlas o incluso aadir ms pginas.
19
20
almacenado han de organizarse de forma que el gestor de archivos pueda recuperar todos ellos de forma secuencial, por tanto habr de conocer a travs de la cabecera la ubicacin del primer registro y cada registro debe proporcionar informacin para acceder al siguiente.
21
Pgina
Para que el gestor de archivos pueda localizar en qu pgina de la BD se encuentra el registro almacenado y la ubicacin dentro de la pgina, se utiliza la informacin que registra el RID (Record Identifier). El RID almacena el nmero de pgina en la que se encuentra el registro almacenado y un puntero a una posicin, dentro de un vector de direcciones de la pgina, que contiene la direccin de comienzo del registro almacenado en dicha pgina.
22
RID
Pg. offset
La cabecera de una pgina contiene, al menos: El nmero de registros El final del espacio libre de la pgina La localizacin y tamao de cada registro Los registros se pueden mover dentro de la pgina para mantenerlos contiguos sin espacio libre entre ellos; se debe actualizar la entrada de la cabecera. Pginas diferentes para tipos LOB (generalmente el contenido se almacena en pginas independientes de las pginas de datos)
23
No existe relacin directa archivo almacenado / fichero fsico ya que todos los conjuntos de pginas irn almacenados en uno o varios ficheros fsicos del SO. El nivel interno es el que se encarga de absorber esta diferencia.
24
Organizacin secuencial
Los registros se almacenan manera secuencial, en base al valor de la clave de bsqueda de cada registro. Estos se vinculan mediante punteros, lo que agiliza la bsqueda. Acceder a un registro determinado requiere pasar obligatoriamente por todos los registros que le preceden Tiempo de consulta: O(n) Problema si hay muchos registros!!!
25
CLAVE: nombre
26
Se requieren estructuras adicionales que aceleren las bsquedas y disminuyan los bloques de disco a transferir.
Consideraciones previas
Ninguna de las tcnicas de direccionamiento es la mejor en trminos absolutos Evaluacin de las estructuras de datos utilizada para agilizar las bsquedas se realizan en base a: El tiempo de acceso a los datos, medido en nmero de registros accedidos bajo dos condiciones: Bsqueda por valor de clave Bsqueda por rango (intervalo) en la clave Nmero de accesos a disco en operaciones de insercin y borrado de datos El espacio de almacenamiento que ocupan respecto a la informacin que indexa.
27
Indexacin
Mecanismos de indexacin empleados para acelerar el acceso a los datos deseados. Por ejemplo, el ndice de un libro Clave de bsqueda atributo, del conjunto de atributos, empleado para buscar registros en un archivo. Un archivo de ndices consta de registros (denominados entradas de ndice) de la forma
CLAVE DE BSQUEDA PUNTERO
28
Los archivos de ndices generalmente son ms pequeos que el archivo original Dos clases bsicas de ndices: ndices ordenados: las claves de bsqueda se almacenan de forma ordenada ndices asociativos: las claves de bsqueda estn distribuidas uniformemente en cajones, empleando una funcin de asociacin.
ndices ordenados
Las entradas de ndices se almacenan ordenadas sobre el valor de la clave de bsqueda. Por ejemplo, el nombre de la sucursal. ndice primario: en un archivo ordenado secuencialmente, es el ndice cuya clave de bsqueda determina el orden secuencial del archivo. Tambin denominado ndice con agrupacin (cluster) La clave de bsqueda de un ndice primario es generalmente, pero no necesariamente, la clave primaria. Solo puede haber uno por relacin ndice secundario: un ndice cuya clave de bsqueda determina un orden diferente del orden secuencial del archivo. Tambin llamado ndice sin agrupacin. Archivo secuencial indexado (ISAM): archivo secuencial ordenado con un ndice primario.
29
ndice denso
ndice denso Registro del ndice que aparece por cada valor de la clave de bsqueda del archivo.
ndice primario denso Fichero secuencial por campo nombre
30
RID
Clave de bsqueda
ndice no denso
ndice disperso: slo contiene registros del ndice para algunos valores de la clave de bsqueda. Aplicable cuando los registros estn ordenados secuencialmente sobre la clave de bsqueda (ndices primarios) Para localizar un registro con valor K de la clave de bsqueda: Encontrar el registro del ndice con mayor valor de clave de bsqueda < K Bsqueda secuencial del archivo, empezando por el registro al que apunta el registro del ndice Menos espacio y menores costes de mantenimiento para las inserciones y los borrados. Generalmente ms lento, para localizar registros, que el ndice denso.
31
32
Se alcanza buen equilibrio estableciendo un ndice disperso con una entrada del ndice por cada bloque en el archivo, que se corresponda con el menor valor de la clave de bsqueda en el bloque.
ndice multinivel
Aunque se usen ndices dispersos, puede que el tamao del mismo sea muy grande para cargarlo en memoria principal, lo que har que haya que almacenarlo en disco y aumentar las operaciones de E/S. Para reducir el nmero de accesos a disco, se puede tratar el ndice como un archivo secuencial y construir un ndice disperso sobre el ndice con agrupacin. ndice externo un ndice disperso de ndice primario ndice interno el archivo del ndice primario Si incluso el ndice externo es demasiado grande para cargarse en memoria principal, siempre se puede crear otro nivel de ndice. Reducen el nmero de accesos a disco cuando se busca por la clave, reducindose a n accesos a disco ( n niveles de jerarqua) pero Al insertar o borrar del archivo, se deben actualizar los ndices a todos los niveles. Algunos diseadores dejan espacio en cada uno de los bloques para insertar nuevas entradas, ndices multinivel dinmicos, que generalmente se implementan mediante rboles B y B+
33
34
35
36
ndices secundarios
Frecuentemente, se quieren encontrar todos los registros cuyos valores en un cierto campo (que no es la clave de bsqueda del ndice primario) cumplen alguna condicin. Ejemplo: encontrar todas las cuentas con un determinado saldo o rango de saldos Se puede tener un ndice secundario con un registro del ndice por cada valor de la clave de bsqueda; el registro del ndice apunta a un cajn que contiene punteros a todos los registros actuales, con ese valor particular de clave de bsqueda.
37
38
ndices B+
Inconvenientes de los archivos secuenciales indexados: El rendimiento baja cuando el archivo crece, dado que se crean muchos bloques de desbordamiento. Es necesario reorganizar peridicamente todo el archivo. ndices B+ Ventajas Se reorganiza automticamente por s mismo con pequeos cambios locales, a pesar de las inserciones y los borrados. No es necesario reorganizar todo el archivo para mantener el rendimiento. Inconvenientes inserciones extras sobrecarga de borrados Gasto de espacio en disco mayor. Las ventajas de los rboles B+ superan a los inconvenientes, por lo que se emplean ampliamente. Los ndices de rbol B+ son una alternativa a los archivos secuenciales indexados.
39
ndices B+ (cont)
Un rbol B+ es un rbol con raz que satisface las siguientes propiedades: Todos los caminos, desde la raz a las hojas, tienen la misma longitud Cada nodo que no es ni raz ni hoja, tiene entre [n/2] y n hijos. Un nodo hoja tiene entre [(n1)/2] y n1 valores Casos especiales: Si la raz no es una hoja, tiene al menos 2 hijos. Si la raz es una hoja (es decir, no hay otros nodos en el rbol), puede tener entre 0 y (n1) valores. Dado que las conexiones entre nodos se hacen mediante punteros, los bloques lgicamentecercanos no necesitan estar fsicamente prximos.
40
Estructura de un nodo B+
Nodo
41
Ki son los valores de la clave de bsqueda Pi son los punteros a los hijos (para nodos no hoja) o a los registros o cajones de registros (para nodos hoja). En un nodo las claves de bsqueda estn ordenadas K1 < K2 < K3 < . . . < Kn1
42
RID
43
Ejemplos B+
B+-tree para archivo cuentas (n = 3)
44
Los nodos hoja deben tener entre 2 y 4 valores ( (n1)/2 y (n 1), con n= 5 ). Los nodos que no son hoja, excepto la raz, deben tener entre 3 y 5 hijos (n/2 y n ) La raz debe tener al menos 2 hijos.
45
46
Ejemplo insercin en B+
B+ antes y despus de aadir Cadiz
47
rboles B+ : borrado
Encontrar el registro a borrar y eliminarlo del archivo principal y del cajn (si est presente) Eliminar (valor de la clave de bsqueda y puntero) del nodo hoja si no hay ningn cajn, o si se ha quedado vaco. Si el nodo tiene demasiadas pocas entradas debido a la eliminacin y las entradas en el nodo y un hermano encajan en un solo nodo, entonces Insertar todos los valores de claves de bsqueda de los dos nodos en un solo nodo (el de la izquierda) y borrar el otro. Borrar el par (Ki1, Pi),donde Pi es el puntero al nodo borrado, desde su padre, empleando recursivamente el procedimiento anterior.
48
Ejemplo de borrado en B+
Borrado de Pamplona
49
50
51
Es importante la buena utilizacin del espacio, dado que los registros emplean ms espacio que los punteros. Para mejorar la utilizacin del espacio se puede implicar ms nodos hermanos en la redistribucin durante las divisiones y las mezclas y no solo al de la izquierda.
52
Archivo de ndices B
Similar a B+, pero elimina el almacenamiento redundante de los valores de la clave de bsqueda. Esto optimiza el espacio de almacenamiento pero dado que las claves de bsqueda no aparecen en los nodos intermedios, es necesario incluir un campo adicional para un puntero por cada clave de bsqueda de un nodo interno.
53
rbol B
rbol B+
54
55
56
57
ndice cluster
ndice no cluster
58
Las pginas Mapa de asignacin de ndices (IAM, Index Allocation Map) asignan las extensiones de un archivo de la base de datos utilizadas por un montn o por un ndice
Heap
Asociacin esttica
La asociacin permite localizar registros sin utilizar la estructura de ndices Un cajn es una unidad de almacenamiento que contiene uno o ms registros (generalmente un cajn es un bloque de disco). En una organizacin de archivos asociativa se obtiene el cajn de un registro directamente desde su valor de clave de bsqueda, empleando una funcin de asociacin. La funcin de asociacin h es una funcin desde el conjunto de todos los valores de claves de bsqueda K, hasta el conjunto de todas las direcciones de cajones B. La funcin de asociacin se emplea para localizar registros para accesos, inserciones y borrados. Los registros con diferentes valores de claves de bsqueda pueden asociarse al mismo cajn; de este modo, para localizar un registro, se ha de recorrer secuencialmente el cajn entero. Tcnica eficiente para la bsqueda por clave pero no por rangos.
59
60
Hay 10 cajones La representacin binaria del carcter i-simo se asume que sea el entero i. La funcin de asociacin devuelve la suma de las representaciones binarias de los caracteres mdulo 10 Por ejemplo, h(Navacerrada) = 5 h(Ronda) = 3 h(Galapagar) = 3
Funciones Hash
Una funcin hash mala es aquella que asocia todos los valores de las claves de bsqueda al mismo cajn; esto hace que el tiempo de acceso sea proporcional al nmero de valores de claves de bsqueda en el archivo. La funcin de asociacin ideal debe ser uniforme, es decir, que asigne a cada cajn el mismo nmero de valores de claves de bsqueda, desde el conjunto de todos los valores posibles. La funcin de asociacin ideal es random; as cada cajn tendr asignado el mismo nmero de registros, independientemente de la distribucin real de los valores de las claves de bsqueda en el archivo. Las funciones de asociacin tpicas realizan clculos sobre la representacin binaria interna de la clave de bsqueda.
61
62
63
ndices asociativos
La asociacin no slo se puede emplear en la organizacin de archivos, sino tambin para la creacin de estructuras de ndices. Un ndice asociativo organiza las claves de bsqueda, con sus punteros de registros asociados, en una estructura de archivos asociativa.
64
65
66
Mapas de bits
Son un tipo de ndice especializado para la consulta sencilla sobre varias claves, aunque cada ndice de mapa de bits se construya para una nica clave El mapa de bits es un array de bits. Un mapa de bits sobre el atributo A de la relacin r es un array con tantas posiciones como tuplas, y un bit a 1 para aquellas posiciones donde el atributo A tome un determinado valor.
67
68