La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

MIA - Grupo 5 Unidad 2.

Presentaciones similares


Presentación del tema: "MIA - Grupo 5 Unidad 2."— Transcripción de la presentación:

1 MIA - Grupo 5 Unidad 2

2 INDEXACION O INDIZACION INDICES SECUNDARIOS LISTAS INVERTIDAS
Temas a tratar INDEXACION O INDIZACION INDICES SECUNDARIOS LISTAS INVERTIDAS

3 INDEXACIÓN O INDIZACIÓN

4 ¿Porqué usar índices? Si el archivo no está ordenado el único método de búsqueda posible es secuencial, lo cual no resulta ni eficiente ni practico en muchos casos. Si el archivo está ordenado puede aplicarse una búsqueda binaria, pero en cualquier caso puede resultar costosa, y si el fichero recibe muchas altas y bajas no resulta factible mantenerlo ordenado. Pasar los datos de disco a memoria para ser ordenados es impracticable si el archivo es excesivamente grande.

5 ÍNDICE Un índice es una estructura de datos (en memoria) que permite el acceso a la información almacenada en un archivo imponiendo algún tipo de orden. El índice mantiene en memoria: Un dato que identifica cierta información. La dirección física (o lógico) del registro en el fichero que guarda la información completa. Un mismo archivo puede tener asociados distintos índices, dependiendo del campo asociado al índice se denomina INDICE PRIMARIO ó INDICE SECUNDARIO.

6 INDICE PRIMARIO Un índice simple o primario es aquel que guarda únicamente la llave primaria, identificando de forma única a un registro almacenado en un fichero. El índice guarda el campo clave y la dirección física de fichero. El fichero guarda los registros sin orden establecido.

7 El índice de un archivo secuencial indexado está mezclado con los datos del archivo. Normalmente, la mayoría de los bloques son usados para los datos, pero algunos son usados para el índice. La principal ventaja de un archivo secuencial indexado es que la búsqueda binaria del archivo ordenado puede ser reemplazada por un árbol de búsqueda de índices, siendo ésta una solución más eficiente que las búsquedas binarias.

8 Operaciones Crear los archivos vacíos originales de índices y datos : Tanto el archivo de índice como el archivo de datos se crean como archivos vacíos, con registros de encabezado y nada más.

9 Crear archivo de índices:
Recorrer el fichero de datos secuencialmente e ir extrayendo de cada registro el campo clave. Crear la dupla <clave, dir_fichero>, siendo dir_fichero la dirección física del fichero donde se encuentra en registro con dicha clave. Insertar dicha dupla en el índice en memoria En este momento es conveniente guardar el índice en fichero para mantener la integridad del sistema. Se hace un recorrido secuencial del índice y se guarda la dupla <clave, dir_fichero> en el fichero de índices.

10 Carga del Archivo de índices en Memoria
En un principio la aplicación necesita leer a memoria la totalidad del archivo de índices (duplas <clave, dir_regDatos>) usando diversos tipos de estructuras según la complejidad y cantidad de los registros, para así realizar de manera optima la navegación en los registros. La estructura más utilizada para el manejo de los índices en memoria son los Arboles B+, debido al bajo tiempo de realización de las operaciones de búsqueda, inserción, actualización y eliminación además no requiere muchos recursos para el reordenamiento de los datos y es muy eficiente realizando búsquedas directas y secuenciales.

11 Carga del Archivo de índices en Memoria
________________________________________________________ Archivo de Índices

12 Modificación de índices en Memoria
El fichero de datos siempre permanece actualizado, pero el fichero de índices puede no estarlo debido a una modificación de los datos en memoria. Esto puede causar inconsistencias en la información si otra aplicación hace uso del archivo de índices no actualizado o por un cierre inesperado de la aplicación

13 Modificación de índices en Memoria
Esto puede solucionarse con la utilización de un registro flag al inicio del archivo de índices el cual indica si la información es idéntica tanto en memoria como en el archivo ___________________________________ 1 – Archivo de índices Actualizado 0 – Archivo de Índices NO Actualizado

14 Se extrae la clave del registro a insertar.
AÑADIR NUEVO REGISTRO Añadir un nuevo registro al fichero de datos también implica añadir una nueva entrada al índice: Se extrae la clave del registro a insertar. Se busca una posición válida para insertar el registro en el fichero de datos y se inserta en registro en dicha posición. Se insertan los valores <clave, dir_fichero> en el índice en memoria.

15 Eliminar un registro en un fichero de datos también implica eliminar la entrada correspondiente en el índice: Se busca la clave del dato a borrar en el índice, para conocer su localización en fichero. Según las características y disposición de los datos en fichero se utilizará un método de borrado u otro. Se elimina en memoria la dupla <clave, dir_fichero> del índice.

16 Actualizar registros del archivo de datos esta entra en dos categorías:
o La actualización cambia el valor del campo de llave: esta clase de actualización puede traer consigo un reacomodo del archivo de índices, así como del de datos. Puede implementarse un método de eliminar y agregar, y dar al usuario del programa la impresión de que simplemente está cambiando un registro. o La actualización no afecta el campo de llave: aquí si se requiere reacomodo del archivo de datos, pero no del archivo de índices. Si el tamaño del registro no cambia, o si disminuye por la actualización, el registro puede escribirse directamente en el espacio que tenía, pero si aumenta por la actualización, se tendrá que encontrar una nueva entrada para el registro.

17 Índices secundarios

18 Índices secundarios No es natural solicitar un dato por su clave
En su lugar se utiliza normalmente un campo mas fácil de recordar Este campo es un campo que pertenece a una llave secundaria El índice secundario relaciona la llave secundaria con la llave primaria Las claves secundarias se pueden repetir Acceso  1º por llave secundaria (se obtiene la clave primaria) y luego llave primaria (en índice primario) 2do- ej: buscar una canción por su título o por su compositor Índices secundarios

19 Los índices secundarios permiten ordenar la tabla en un orden diferente al dado por el campo llave. Su principal característica es la utilización de direccionamiento simbólico (la clave proporciona la clave primaria del registro, y no su dirección física, ni relativa, y el sistema emplea la clave primaria para localizar ese registro), en definitiva, emplea punteros indirectos. Los ficheros que usan este tipo de direccionamiento reciben el nombre de ficheros invertidos. Índices secundarios

20 Existen dos tipos de ficheros invertidos: Los ficheros totalmente invertidos y los ficheros parcialmente invertidos. En los Ficheros Totalmente Invertidos de una clave secundaria se obtienen todas las primarias relacionadas. Ej.: La estructura de índices secundarios es la única que es una es estructura de índice denso Esto quiere decir que hay un entrada en el registro de índices por cada registro en el archivo de datos Este tipo de ficheros cuentan con una ventaja añadida, que es la de poder responder a ciertas preguntas sin tener que usar el fichero de datos (¿Número de alumnos en Almería?) Índices secundarios

21 Los Ficheros Parcialmente Invertidos se utilizan para evitar que el índice crezca mucho. Cuando buscamos por medio de una clave secundaria, no aparecen todas las claves primarias relacionadas a ella, sino que sólo aparece la primera clave primaria, y dentro del fichero de datos Existen punteros a los registros de igual clave secundaria. Estos ficheros también son llamados Ficheros Multilista. La técnica más usada es la de usar "punteros empotrados" en el fichero de datos. Los ficheros de este tipo son los más utilizados, empleando para implementar el índice un árbol tipo B. Índices secundarios

22 Índices secundarios (MULTILISTA)
Supongamos que se tiene un archivo en el cual cada registro almacena la siguiente información: Se tienen los datos de seis personas: Nombre Profesión Categoría Índices secundarios (MULTILISTA)

23 Índices secundarios (multilista)
En este caso, la información de cada individuo puede accesarse por medio de su profesión y por medio de su categoría, que son los atributos que permiten realizar búsqueda directa en el archivo. Como puede verse en la figura siguiente, se tiene una lista por profesión y una por categoría. Índices secundarios (multilista)

24 Índices secundarios (operaciones)
Adición de Registros Implica reacomodar y añadir nuevas entradas en el fichero de datos, índice primario e índices secundarios Bajo costo si el índice está en memoria principal La claves duplicadas implican un reordenamiento de 2º nivel de acuerdo a la clave primaria que referencian Índices secundarios (operaciones)

25 Índices secundarios (operaciones)
Eliminación de Registros Más complicada: eliminar referencia en índice primario + referencias en índices secundarios. La eliminación de un registro puede implicar el reacomodo de los registros restantes, para cerrar el espacio abierto dejado por la eliminación. Alternativa, sólo borrar del primario Beneficio: no hay reacomodo por cada borrado Costo: se sigue ocupando el espacio Índices secundarios (operaciones)

26 Actualización Índices secundarios (operaciones)
- Cambia la llave secundaria Se debe reacomodar el índice secundario  puede ser relativamente costosa. - Cambia la llave primaria Se debe cambiar la ref. en el reg. de índice secundario Si existen reg. repetidos, se deben reclasificar localmente el índice secundario Cambia el resto del registro Índices secundarios (operaciones)

27 LISTAS INVERTIDAS Archivos donde una llave secundaria lleva a un conjunto de una o más llaves primarias. Característica: En estas se trabaja retrocediendo de una llave secundaria a la llave primaria y al registro mismo.

28 LISTAS INVERTIDAS VENTAJAS
Al agregar o insertar una llave secundaria, únicamente se reacomoda la lista asociada a la llave primaria. DESVENTAJAS El archivo demuestra menos localidad. Esto quiere decir que es menos probable que los registros asociados estén físicamente asociados.

29 LISTAS INVERTIDAS EJEMPLO


Descargar ppt "MIA - Grupo 5 Unidad 2."

Presentaciones similares


Anuncios Google