You are on page 1of 20

Diseo e Implementacin de Bases de Datos

INDEXACIN Y ASOCIATIVIDAD

Leccin # 8
4/27/13

Lic. Hairol Romero Sand

Indexacin y Asociatividad
Existen diversas tcnicas de Indexado y Asociatividad, para evaluar estas tcnicas se deben de tomar en cuenta : Tiempo de acceso: es el tiempo que se tarda en encontrar un dato. Tiempo de insercin: es el tiempo que se tarda en insertar un dato nuevo. Tiempo de eliminacin: es el tiempo que se tarda en eliminar un dato. Tiempo extra: el espacio adicional que ocupa la estructura de indexacin. Un atributo o conjunto de atributos que se utilizan para buscar registros se llama clave de bsqueda, diferente de la clave primaria, clave candidata y superclave. Si existen varios ndices en una relacin habrn varias claves de bsqueda.

4/27/13

Indexacin
La estructura ndice se utiliza para permitir el acceso aleatorio rpido a los registros de un archivo. Cada ndice est asociado a una clave de bsqueda. En un archivo con varios ndices en diferentes claves de bsqueda, el ndice cuya clave de bsqueda especifica el orden del archivo, es el NDICE PRIMARIO,los dems son NDICES SECUNDARIOS.

Denso: son los que almacenan un registro ndice para cada valor de la clave de Bsqueda en el archivo. Escaso: almacenan registros ndices solamente para algunos de los registros. Encontramos el registro ndice con el valor mas alto menor o igual al que buscamos, lo ubicamos y utilizamos una bsqueda secuencial para alcanzar dicho valor. 4/27/13

Tipos de ndices

Indice Denso

Indice Escaso 4/27/13

ndice Primario
Se busca el primer registro con la clave deseada, procesamos este registro y seguimos el puntero en ese registro para localizar el siguiente registro en orden de la clave de bsqueda.

Eliminacin: Es necesario buscar el registro que se va a eliminar. Si es el ltimo eliminamos el valor particular de la clave de bsqueda. Insercin: Se realiza una bsqueda usando el valor de la clave que se va a insertar. Si el ndice es denso y el valor de la clave no aparece en el ndice lo inserta. Si es escaso no se realiza ningn cambio en el ndice a menos que se cree un nuevo bloque.

4/27/13

ndice Secundario
Los punteros en el ndice secundario no seala directamente el archivo. Utilizan un nivel extra de indireccin. En lugar de ello cada uno de esos punteros seala a una cubeta que contiene punteros al archivo. Un indice secundario puede ser denso o escaso, estos a la vez mejoran el rendimiento de las consultas que utilizan claves no primarias pero implican un gasto extra considerable en la modificacin de la base de datos.

4/27/13

ndice Secundario

4/27/13

Archivos Indexados de rboles B+


Toma la forma de un rbol equilibrado en el que cualquier camino desde la raz del rbol hasta una hoja tienen la misma longitud. La regla general es que todos los nodos tienen entre n\2 y n cantidad de hijos para un n fijo del rbol. Los valores se guardan en un determinado orden. Los nodos que no son hojas forman un ndice escaso de varios niveles de los nodos hoja, utilizan la misma estructura pero los punteros apuntan a nodos del rbol. Aunque requiere mucho gasto extra durante la insercin, eliminacin y requiere mayor espacio, es ms aceptable en archivos de alta frecuencia de modificacin, ya que evita el costo de la reorganizacin del archivo.

4/27/13

Archivos Indexados de rboles B+

La figura muestra un rbol B+ completo para el archivo deposito. La probabilidad de equilibrio es la que asegura un buen rendimiento en las bsquedas, inserciones y eliminaciones.

4/27/13

Archivos Indexados de rboles B+


Insercin: buscamos el nodo hoja en el que aparecera el valor de la clave de bsqueda. Si el valor aparece en el nodo hoja, aadimos un nuevo registro al archivo y si es necesario un punto a la cubeta. Si no aparece, insertamos el valor en el nodo hoja y lo posicionamos de forma que las claves de bsqueda estn todava en orden. Entonces insertamos el nuevo registro en el archivo y si es necesario, creamos una nueva cubeta, con el puntero adecuado. Eliminacin: encontramos el registro. Si no hay ninguna cubeta asociada se quita el nodo hoja.

4/27/13

Archivos Indexados de rboles B


La diferencia entre estos ndices y los de B+ ,es que el rbol B elimina el almacenamiento redundante de valores de clave de Bsqueda. Un rbol B permite que los valores de Bsqueda aparecen solo una vez, esto permite almacenar un rbol con menos nodos. En un rbol B+, es necesario llegar hasta las hojas pero en un rbol B, podemos encontrar el registro en cualquier nodo.

rbol B 4/27/13

Asociacin
Funciones de Asociacin Esttica
La tcnica de asociacin nos permite evitar el accesar a una estructura de ndices para localizar los datos. La funcin ideal asigna cada valor clave de bsqueda a una cubeta que se examina, como resultado de una bsqueda tiene el valor de clave deseado. La funcin de asociacin es la que convierte los valores de la clave de bsqueda en direcciones de cubeta. Una desventaja es que por disear la funcin al inicio sta pueda resultar o muy grande o muy pequea.

4/27/13

Asociacin
Funciones de Asociacin Dinmica
Asociacin extensible: maneja los cambios en el tamao de la base de datos dividiendo y fusionando cubetas conforme la base de datos crece o disminuye. Para insertar un registro con valor de clave de bsqueda, se busca el valor y se termina en alguna cubeta, si hay sitio en la cubeta insertamos la informacin apropiada y despus insertamos el registro en el archivo. Por otra parte, si la cubeta esta llena, debemos partirla y redistribuir los registros actuales.

4/27/13

Funciones de Asociacin Dinmica


Ventajas:

La asociacin extensible no disminuye el rendimiento conforme crece la base de datos. Se requiere un mnimo espacio adicional.

Desventajas:

La bsqueda implica un nivel de indireccion especial.

4/27/13

Asociacin VS Indexacin
Comparacin: Debemos de tomar en cuenta los siguientes puntos: El costo de la reorganizacin periodica del ndice o funcin de asociacin La frecuencia con que se realizan eliminaciones e inserciones Si se desea optimizar el tiempo de acceso promedio El tipo de consultas que se harn regularmente

select A1, A2, A3.... from R Where A1 = C

Es preferible la asociacin, ya que tardar lo mismo sin importar el nmero de valores. Pero la indexacin es preferible cuando se requiere un rango de valores: select A1, A2, A3....

from R Where A1 >= C1 and A1 <= C2

4/27/13

Definicin de ndice en SQL


Create index <nombre - ndice> on < nombre - relacin> (< lista - atributo>)
La lista atributo: es la lista de atributos de la relacin que forma la clave de bsqueda para el ndice. Para eliminar el ndice se utiliza:

Drop index <nombre - ndice>

4/27/13

Acceso por Claves Mltiples


Estructura de rejilla: para estructuras que usan dos claves de bsqueda, es un arreglo bidimensional indexado por los valores de las claves de bsqueda.

4/27/13

Acceso por Claves Mltiples


Funcin de asociacin dividido: Supongamos que deseamos construir una estructura adecuada para consultas en el archivo Deposito que implica tanto a nombre_cliente como a nombre_sucursal. Construimos una estructura de asociacin para la clave (nombre_cliente,nombre_ sucursal). La nica diferencia entre la estructura que vamos a crear y la que vimos anteriormente es que imponemos una restriccin adicional sobre la funcin de asociacin.

4/27/13

Acceso por Claves Mltiples


Funcin de asociacin dividido:

4/27/13

Muchas gracias por su atencin

4/27/13

You might also like