2i- indices 1
DESCRIPTION
jkkkTRANSCRIPT
-
Universidad Politcnica Salesiana
Programacin IIICaptulo 3ndices
-
Temtica:
ndices Tipos de ndices ndices Primarios ndices Densos vs. ndices Dispersos
ndices Secundarios Implementacin de ndices
-
ndices
Concepto:Un ndice para un archivo del sistema funciona como el ndice de un libro: si se va buscar informacin sobre un tema, se busca inicialmente en el ndice las pginas en las cuales aparece el tema y luego se accede a esas pginas para encontrar la informacin
-
ndices
Las palabras del ndice estn ordenadas, lo que hace ms fcil la bsqueda del trmino que se est buscando
Los catlogos de Bibliotecas funcionan de esta manera (un catlogo ordenado de fichas y en la ficha el lugar dnde est el libro; se denominan sistemas referenciales)
-
ndices
Claves de bsqueda:Los atributos o conjuntos de atributos usados para buscar en un archivo se llaman claves de bsquedaPueden existir varias claves de bsqueda
-
Tipos de ndices
Existen dos tipos de ndices: ndices Primarios ndices Secundarios
-
ndices Primarios
Si el archivo que contiene los registros estordenado secuencialmente, el ndice cuya clave de bsqueda especifica el orden secuencial del archivo es el ndice primario
-
ndices Primarios
-
ndices Primarios ndices Densos vs. Dispersos Un registro ndice o entrada del ndice
consiste en un valor de la clave de bsqueda y punteros a uno o ms registros con ese valor de la clave de bsqueda
-
ndices Primarios ndices Densos vs. Dispersos ndice Denso: Aparece un registro ndice por
cada valor de la clave de bsqueda en el archivo
ndice Disperso: Slo se crea un registro ndice para algunos de los valores de la clave de bsqueda
-
ndices Primarios ndices Densos vs. Dispersos
-
ndices Primarios ndices Densos vs. Dispersos Para localizar un registro en un ndice
disperso:Se busca la entrada del ndice con el valor ms grande que sea menor o igual que el valor que se est buscando; Se empieza por el registro apuntado por esa entrada de ndice y se contina hasta encontrar el registro deseado
-
ndices Primarios ndices Densos vs. Dispersos Para localizar un registro en un ndice
denso:Se busca la entrada del ndice con el valor igual al valor que se est buscando; Se empieza por el registro apuntado por esa entrada de ndice y se contina hasta encontrar el registro deseado
-
ndices Primarios ndices Densos vs. Dispersos Es ms rpido localizar un registro si se usa un
ndice denso en vez de un ndice disperso
Los ndices dispersos necesitan un espacio ms reducido y un mantenimiento adicional menor para las inserciones y los borrados
Tener un ndice disperso con una entrada de ndice por cada bloque (el mayor coste de una peticin es traer desde el disco a la memoria un bloque de datos)
-
ndices Densos vs. DispersosInsercin en Densos Bsqueda usando el valor de la clave de
bsqueda del registro a insertar: Si el valor de la clave de bsqueda no aparece en
el ndice, el sistema inserta en ste un registro ndice con el valor de la clave de bsqueda en la posicin adecuada y sita el registro a insertar
Si el valor de la clave de bsqueda aparece en el ndice, el sistema sita el registro insertado despus de los otros con los mismos valores de la clave de bsqueda
-
ndices Densos vs. DispersosInsercin en Densos
-
ndices Densos vs. DispersosInsercin en Dispersos Bsqueda usando el valor de la clave de bsqueda
del registro a insertarAsumiendo una entrada por bloque Si el sistema crea un bloque nuevo, inserta el primer valor
de la clave de bsqueda (en el orden de la clave de bsqueda) que aparezca en el nuevo bloque del ndice
Si el nuevo registro tiene el menor valor de la clave de bsqueda en su bloque, el sistema actualiza la entrada del ndice que apunta al bloque (si no, el sistema no realiza ningn cambio sobre el ndice)
-
ndices Densos vs. DispersosInsercin en Dispersos
-
ndices Densos vs. DispersosBorrado en Densos Si el registro borrado era el nico registro con
ese valor de la clave de bsqueda, el sistema borra el registro ndice correspondiente del ndice
En caso contrario, si el registro borrado era el primer registro con el valor de la clave de bsqueda, el sistema actualiza el registro ndice para apuntar al siguiente registro
-
ndices Densos vs. DispersosBorrado en Densos
-
ndices Densos vs. DispersosBorrado en Dispersos Si el ndice no contiene un registro ndice con el
valor de clave de bsqueda del registro borrado, no hay que hacer nada
En caso contrario 1. Si el registro borrado era el nico registro con la clave
de bsqueda, el sistema reemplaza el registro ndice correspondiente con un registro ndice para el siguiente valor de la clave de bsqueda (si el siguiente valor ya tiene una entrada entonces se borra)
2. En caso contrario, el sistema actualiza el registro ndice para que apunte al siguiente registro con el mismo valor de la clave de bsqueda
-
ndices Densos vs. DispersosBorrado en Dispersos
-
ndices Secundarios
Los ndices cuyas claves de bsqueda especifican un orden diferente del orden secuencial del archivo se llaman ndices secundarios
Los ndices secundarios deben ser densos, con una entrada en el ndice por cada valor de la clave de bsqueda, y un puntero a cada registro del archivo (nivel adicional de indireccin)
-
ndices Secundarios
Las actualizaciones son similares a las de los ndices primarios
Los ndices secundarios mejoran el rendimiento de las consultas que emplean claves que no son la de bsqueda del ndice primario
Los ndices secundarios implican un tiempo adicional importante al modificar la base de datos
-
ndices Secundarios
-
Implementacin de ndices
Es obvio que se debe tener un acceso aleatorio a los ficheros, por lo tanto, en java, se debe trabajar con la clase RandomAccessFile para ubicarnos en cualquier byte del archivo.