UNIVERSIDAD DISTRITAL DISTRITAL FRANCISCO JOSE DE CALDAS Facultad de Ingeniería Ingeniería de Sistemas
Ciencias de la Computación II
Índices de un solo Nivel - Secundarios Profesor: Julio Cesar Flórez Báez
Julián Andrés Gil Santos Código: 20112020105
[email protected] [email protected] David Fernando Parra Código: 20112020107
[email protected] Juan Sebastián Gómez Gutiérrez Código: 20111020036
[email protected]
23 de Marzo del 2014 Bogotá D.C – Cundinamarca
CONTENIDO INDICE ......................................................................................................................... 3 FUNCION DE LOS INDICES ........................................................................................ 3 TIPOS DE INDICES...................................................................................................... 3 Campo de indexación: ............................................................................................... 3 Numero de referencias: ......................................................................................... 4 Tipo de referencias: ............................................................................................... 4 Estructura de referencias: ...................................................................................... 4 INDICES DE UN SOLO NIVEL ..................................................................................... 4 INDICES DE UN SOLO NIVEL SECUNDARIOS .......................................................... 4 DEFINICION ............................................................................................................. 4 PROCEDIMIENTO .................................................................................................... 4 INDICES DE UN SOLO NIVEL SECUNDARIOS – OPCION A ..................................... 6 INDICES DE UN SOLO NIVEL SECUNDARIOS – OPCION B ..................................... 7 INDICES DE UN SOLO NIVEL SECUNDARIOS – OPCION C ..................................... 8 PROPIEDADES DE LOS TIPOS DE INDICES ............................................................. 8 BIBLIOGRAFÍA ............................................................................................................. 9
INDICE
Un índice es un archivo usado para agilizar la recuperación de los registros. Es redundante puesto que la información que almacena se encuentra en el archivo al cual indexa. Las estructuras de índices normalmente proporcionan caminios de acceso secundario, que proporcionan caminos alternativos para acceder a los registros sin que afecte la posición física de los registros en el fichero. La ventaja, sin duda, viene por la vía de recuperar los registros de manera más rápida. Proporc ionan camin os de acceso alternativo para encontrar los registros de fo rm a m ás efi cien te
FUNCION DE LOS INDICES
-
Reducir el gasto de tiempo en la búsqueda de registros. Un fichero puede tener más de un índice. Se utilizan sobre campos sobre los cuales se hacen búsquedas frecuentes. Permite un acceso eficiente a registros basándose en campos de indexación que se utilizan para construir el índice.
TIPOS DE INDICES
Los tipos de índice más utilizados se basan en ficheros ordenados (índices de un solo nivel) y estructuras de datos en árbol (índices multinivel, arboles B+). -
Índices de un solo nivel Índices multinivel Árboles b y árboles b+ Índices dispersos
Existen diversos criterios para identificar los distintos tipos de índices, algunos de éstos son:
Campo de indexación: Según el campo usado para construir el índice, éste se llamará primario, de grupos o secundario. -
-
construye sobre el campo clave de ordenamiento de un archivo ordenado de registros. Índi ce A gru pado (clusterizado ): Se construye sobre un campo de ordenamiento que abarca varios registros con el mismo valor, dentro de un archivo ordenado de registros. Índ ice Sec un dar io: Se construye sobre un campo que no se utiliza para ordenar el archivo. Índi ce
Prim ario
(princ ipal): Se
Numero de referencias: Si el índice tiene una entrada por cada registro del archivo se denomina denso, en caso contrario, dicho índice se llama no denso o disperso.
Tipo de referencias: Si la entrada en el índice contiene un puntero físico al área de datos, es decir, un puntero que indica la dirección física de un registro en el disco, el índice se llama físico.
Estructura de referencias: Las referencias al área de datos se pueden estructurar como: -
Entrada de largo fijo , con un puntero al área de datos (bloque o registro). Registr os de larg o variable en el índi ce , con un campo repetitivo que permita
almacenar un puntero a cada bloque de disco que contiene un registro. Este esquema se llama archivo o lista invertida. -
Mantener entradas en el índ ice de larg o f ijo y tener u na únic a entrada p or cada valor del campo de indexación, pero creando un nivel extra de
dirección para manipular los múltiples punteros. -
Entrad as en el índic e de largo fijo y tener u n bitm ap asoc iado acada una de ellas , el cual tenga un bit por cada bloque del archivo de datos; el bitmap
guarda un valor 1 en los bits de los bloques que contiene un registro con el valor de la entrada, y un valor 0 en caso contrario. (M, 2do Semestre 2005)
INDICES DE UN SOLO NIVEL INDICES DE UN SOLO NIVEL SECUNDARIOS DEFINICION Un índice secundario es también un fichero ordenado con dos campos. El primer campo es del mismo tipo de datos que el de cualquier campo que no sea el de ordenación del fichero de datos, y se denomina campo de indexación. El segundo campo es o bien un puntero a bloque o bien un puntero a registro. Puede haber varios índices secundarios (y por tanto, campos de indexación) para el mismo fichero.
PROCEDIMIENTO Primero consideremos una estructura de acceso de índice secundario sobre un campo clave que tiene un valor distinto para cada registro. En ocasiones a estos campos se les llama claves secundarias. En este caso hay una entrada de índice por cada registro del fichero de datos, que contiene el valor de la clave secundaria para ese registro y un puntero, ya sea al bloque en el que está almacenado ese registro o al registro mismo. Por tanto, el índice es denso.
Figura 1. Índice de agrupación con un grupo de bloques separado para cada grupo de registros que comparten el mismo valor del campo de agrupación. Una vez no referimos a los dos valores de la entrada de índice como () () . Las entradas están ordenadas según el valor de (), así que podemos realizar una búsqueda binaria. Como los registros del fichero de datos no están ordenados físicamente según los valores del campo de clave secundaria, no podemos usar anclas de bloques. Por eso se crea una entrada de índice por cada registro del fichero de datos y no por cada bloque, como en el caso de un índice primario. La figura 1, ilustra un índice secundario en el que los punteros () de las entradas del índice son punteros a bloques, no
punteros a registros. Una vez transferido el bloque apropiado a la memoria principal, se puede efectuar una búsqueda del registro deseado dentro del bloque. Normalmente un índice secundario necesita más espacio de almacenamiento y tiempos de bs de búsqueda más largos que un índice primario, debido a su mayor número de entradas. No obstante, la mejoría en el tiempo de búsqueda de un registro arbitrario es mucho mayor para un índice secundario que para uno primario, pues tendríamos que realizar una búsqueda lineal en el fichero de datos si no existiera el índice secundario. En el caso de un índice primario, podríamos realizar una búsqueda binaria en el fichero principal, incluso si no existiera dicho índice. El ejemplo 1 ilustra la mejoría en el número de accesos a bloques.(datos)
Figura 2. Índice secundario denso (con punteros a bloques) sobre un campo clave que no es el de ordenación de un fichero.
INDICES DE UN SOLO NIVEL SECUNDARIOS – OPCION A Consiste en incluir varias entradas del índice con el mismo valor K(i), una por registro. El índice seria denso.
Figura 3. Índice secundario opción a
INDICES DE UN SOLO NIVEL SECUNDARIOS – OPCION B Consiste en usar registros de longitud variable para las entradas del índice, con un campo repetitivo para el puntero. Mantendremos una lista de punteros
en la entrada del índice de K(i), con un puntero a cada bloque que contenga un registro cuyo valor del campo de indexación sea igual a K(i). Tanto en la opción A como en la B será necesario modificar apropiadamente el algoritmo de búsqueda binaria sobre el índice
Figura 4. Índice secundario opción b
INDICES DE UN SOLO NIVEL SECUNDARIOS – OPCION C Consiste en usar entradas de índice de longitud fija y tener una sola entrada por cada valor del campo de indexación, pero creando un nivel de dirección adicional para manejar los punteros múltiples. En este esquema no denso, el puntero () de una entrada de índice () () apunta a un bloque de punteros a registros, cada puntero a registro de ese bloque apunta a uno de los registros del fichero de datos que tiene el valor () en el campo de indexación, SI () se repite entonces se utilizara una lista enlazada de bloques. La recuperación a trabes del índice requiere uno o más accesos adicionales a bloque debido al nivel extra, además, las recuperaciones con condiciones de selección complejas pueden manejarse haciendo referencia punteros.
Figura 5. Índice secundario (con punteros a registro) sobre un campo no clave implementado usando un nivel de dirección para entradas del índice.
PROPIEDADES DE LOS TIPOS DE INDICES La siguiente tabla resume las propiedades y características de los t ipos de índices.
Primario Agrupación
Tipos de índices
Secundario (Clave) Secundario clave)
(No
Número de entradas del índice (PrimerNivel) Numero de bloques del fichero de datos Numero de valores distintos del campo índice
Denso o no denso
Ancla de bloque del fichero de datos
No denso
Si
No denso
Numero de registros del fichero de datos Numero de registros o numero de valores distintos del campo índice
Denso
Si/No(Si si cada valor distinto del campo de ordenación inicia un nuevo bloque; no en cualquier otro caso) No
Denso o no denso
No
BIBLIOGRAFÍA datos, F. d. (s.f.). Bases de Datos. Recuperado el 23 de 03 de 2014, de Estructuras de Índices para Ficheros: http://changuitos.free.fr/Basesdedatos/Capitulo6.pdf M, W. P. (2do Semestre 2005). Departamento de Informatica Universidad Tecnica Federico Santa Maria. Recuperado el 23 de 03 de 2014, de http://www.inf.utfsm.cl/~wpalma/ari/indices.pdf