Está en la página 1de 24

Indices y hashing

Bases de datos II
Rodrigo Ayerdi

Indices y hashing - Bases de datos II

Conceptos bsicos
Los ndices son un mecanismo para acelerar el acceso a los datos
Llave de bsqueda atributo o conjunto de atributos que se usan
para consultar los registros
Un archivo de ndice consiste de registros en la forma de
(llave de bsqueda, puntero)

Los archivos de ndice son tpicamente mucho ms pequeos que los


archivos de datos
Dos tipos bsicos de ndices
Indices ordenados
Indices hash
Indices y hashing - Bases de datos II

Mtricos de evaluacin de ndices


Que los tipos de acceso sean soportados de forma eficiente
Registros con valores especficos en el atributo
Registros con un valor de atributo que cae en un rango especfico de valores

Tiempo de acceso
Tiempo de insercin
Tiempo de borrado
Sobrecarga de espacio

Indices y hashing - Bases de datos II

ndices ordenados
En los ndices ordenados, los valores estn almacenados en orden de la
llave de bsqueda.
ndice primario en un archivo ordenado secuencialmente, el ndice cuya
llave de bsqueda especifica el orden secuencial del archivo
Tambin llamado clustering index
La llave de bsqueda del ndice primario es usualmente, pero no necesariamente, la
llave primaria.

ndice secundario un ndice cuya llave de bsqueda especifica un orden


diferente al del orden secuencial del archivo. Tambin llamado nonclustering index.
Archivo de ndice secuencial archivo de orden secuencial con un ndice
primario
Indices y hashing - Bases de datos II

Archivo de ndice denso


ndice denso un registro de ndice aparece para cada valor de llave de bsqueda
en el archivo
P.ej. ndice en el atributo ID de la relacin instructor

Indices y hashing - Bases de datos II

Archivo de ndice denso


Indice denso sobre dept_name, con el archivo de instructor ordenado
por dept_name

Indices y hashing - Bases de datos II

Archivos de ndices dispersos


Indices dispersos contiene registros de ndice para algunos valores de las llaves de bsqueda
Aplicable cuando los registros estn secuencialmente ordenados sobre la llave de bsqueda

Para localizar un registro con el valor de llave de bsqueda K:


Encontramos el registro de ndice con el mayor valor de llave de bsqueda < K
Buscamos el archivo secuencialmente empezando en el registro hacia el que el registro de ndice
apunta

Indices y hashing - Bases de datos II

Archivos de ndices dispersos


Comparados a los ndices densos
Menos sobrecarga en espacio y mantenimiento para inserciones y borrado
Generalmente ms lento de un ndice denso para la localizacin

Buen intercambio un ndice disperso con una entrada de ndice para


cada bloque en el archivo, correspondiendo al menor valor de llave de
bsqueda en el bloque

Indices y hashing - Bases de datos II

Ejemplo de ndices secundarios


Los registros de ndice apuntan a un bucket que contiene punteros a
todos los registros fsicos de un valor particular de llave de bsqueda.
Los ndices secundarios deben ser densos

Indices y hashing - Bases de datos II

ndices primarios y secundarios


Los ndices ofrecen beneficios sustanciales en la bsqueda de
registros
Por otra parte, la actualizacin impone sobrecarga en la modificacin
de la bases de datos. Cuando un archivo se modifica, cada ndice en el
archivo debe ser actualizado.
El escaneo secuencial usando el ndice primario es eficiente, pero un
escaneo secuencial usando un ndice secundario es caro
Cada acceso a registro puede necesitar un nuevo bloque de disco
La lectura de un bloque requiere alrededor de 5 a 10 milisegundos, versus
decenas de nanosegundos para acceso a memoria
Indices y hashing - Bases de datos II

ndices multinivel
Si un ndice primario no cabe en memoria, el acceso se vuelve caro
Solucin se trata el ndice primario como un archivo secuencial en
disco, luego se construye un ndice disperso sobre ese archivo
ndice externo un ndice disperso sobre el ndice primario
ndice interno el archivo del ndice primario

Si incluso el ndice externo es demasiado grande para memoria


principal, se agrega otro nivel
Los ndices a todos niveles deben ser actualizados en inserciones o
borrados del archivo principal
Indices y hashing - Bases de datos II

ndices multinivel

Indices y hashing - Bases de datos II

Actualizacin de ndices - Borrado


Si el registro borrado era el nico registro
en el archivo para esa llave de bsqueda
en particular, la llave de bsqueda se
borra tambin del ndice

Borrados en ndices de nivel simple

ndices densos el borrado de la llave de


bsqueda es similar al borrado del registro en el
archivo
ndices dispersos
Si una entrada para la llave de bsqueda existe en
el ndice, es borrara reemplazando la entrada en el
ndice con el siguiente valor de llave de bsqueda
en el archivo, en el orden de la llave de bsqueda
Si el siguiente valor para la llave de bsqueda ya
tiene una entrada en el ndice, se borra la entrada
en lugar de reemplazarla

Indices y hashing - Bases de datos II

Actualizacin de ndices - insercin


Insercin en ndices de nivel simple
Se realiza un lookup usando la llave de bsqueda que aparece en el registro
que va a ser insertado
Indices densos si la llave de bsqueda no aparece en el ndice, se inserta
Indices dispersos si el ndice guarda una entrada para cada bloque del
archivo, no se requieren cambios a menos que se cree un nuevo bloque
Si un nuevo bloque se crea, el primer valor de la llave de bsqueda que aparece en el
nuevo bloque se inserta en el ndice

Insercin y borrado en multinivel los algoritmos son simples


extensiones de los algoritmos de nivel simple
Indices y hashing - Bases de datos II

Indices secundarios
Frecuentemente se busca encontrar todos los registros cuyos valores
en cierto campo (que no es la llave de bsqueda del ndice primario)
satisfacen cierta condicin
Ejemplo: en la relacin instructor, ordenada secuencialmente por ID,
podramos buscar todos los instructores de un departamento en particular

Podramos tener un ndice secundario, con un registro de ndice por


cada valor de la llave de bsqueda

Indices y hashing - Bases de datos II

Archivos de ndice de rbol B+


Son una alternativa a los archivos de ndice secuenciales
Desventaja de los archivos de ndice secuenciales

El rendimiento se degrada a medida que el archivo crece, se crea sobreflujo de


bloques
La reorganizacin peridica de todo el archivo es requerida

Ventajas de los archivos de ndices en rbol B+

Se reorganiza automticamente con cambios pequeos y locales en respuesta a las


inserciones y borrados
La reorganizacin del archivo completo no se requiere para mantener el rendimiento

Desventaja menor de los rboles B+

Sobrecarga extra de insercin, borrado y espacio

Las ventajas sobrepasan con creces las desventajas, son usados


ampliamente
Indices y hashing - Bases de datos II

Ejemplo de rbol B+

Indices y hashing - Bases de datos II

Archivos de ndice de rbol B+


Un rbol B+ es un rbol con raz que satisface las siguientes
propiedades
Todos los caminos de la raz una hoja tienen la misma longitud
Cada nodo que no es una raz o una hoja tiene entre n/2 y n hijos
Cada nodo hoja tiene entre ((n1)/2) y n1 hijos
Casos especiales
Si la raz no es una hoja, tiene al menos 2 hijos
Si la raz es una hoja (es decir, no hay ms nodos en el rbol), puede tener
entre 0 y (n-1)
Indices y hashing - Bases de datos II

Estructura de nodos en rbol B+


Tpico nodo en rbol B+

Ki son los valores de las llaves de bsqueda


Pi son punteros hacia los hijos (para nodos que no son hojas) o
punteros a registros o grupos de registros (para nodos hojas).
Las llaves de bsqueda en un nodo estn ordenadas
K1 < K2 < K3 < . . . < Kn1
(Para empezar asumiremos que no hay llaves duplicadas)
Indices y hashing - Bases de datos II

Nodos hoja en rboles B+


Propiedades de un nodo hoja
Para i = 1, 2, .. , n-1, el puntero Pi apunta a un registro con llave de bsqueda Ki
Si Li, Lj son nodos hoja, siendo i < j, los valores de la llave de bsqueda de Li son
menores o iguales a los valores de llave de bsqueda de Lj
Pn apunta a el siguiente nodo hoja en el orden de la llave de bsqueda

Indices y hashing - Bases de datos II

Nodos no hoja en rboles B+


Los nodos no hoja forman un ndice disperso multinivel sobre los
nodos hoja. Para nodos no hoja, con m punteros:
Todas las llaves de bsqueda en el subrbol hacia el que P1 apunta son
menores que K1
Para 2 i (n 1), todas las llaves de bsqueda en el subrbol donde Pi
apunta tienen valores mayores o iguales a Ki-1 y menores que Ki
Todas las llaves de bsqueda en el subrbol al que Pn apunta tienen valores
mayores o iguales a Kn-1

Indices y hashing - Bases de datos II

Ejemplos de rbol B+

rbol para el archivo de instructores, (n=6)


Los nodos hoja tienen que tener entre 3 y 5 valores, entre (n1)/2 y n 1
Los nodos no hoja tienen entre 3 y 6 hijos, entre n/2 y n
La raz tiene al menos 2 hijos

Indices y hashing - Bases de datos II

Observaciones acerca de rboles B+


Dado que las interconexiones entre nodos son hechas por punteros, los
bloques lgicamente cercanos no necesitan estar cercanos fsicamente.
Los niveles que no son hojas forman una jerarqua de ndices dispersos
El rbol B+ contiene un nivel relativamente pequeo de niveles

El nivel debajo de la raz tiene al menos 2(n/2) valores


El siguiente nivel tiene por lo menos 2 (n/2)*(n/2)
etc
Si hay K valores de llaves de bsqueda en el archivo, la altura del rbol es de no ms
de (log(n/2)(K))

Las inserciones y borrados del archivo principal pueden ser manejadas de


forma eficiente, ya que el ndice puede ser reestructurado en un tiempo
logartmico
Indices y hashing - Bases de datos II

Indices y hashing - Bases de datos II

También podría gustarte