2i- indices 1

26
Universidad Politécnica Salesiana Programación III Capítulo 3 Índices

Upload: margarita-illescas-christian-vazquez

Post on 05-Nov-2015

224 views

Category:

Documents


0 download

DESCRIPTION

jkkk

TRANSCRIPT

  • 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.