La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

IBD Clase 5. UNLP - Facultad de InformáticaIBD - CLASE 5 2 Búsqueda de datos - Indices Búsqueda de información: debemos minimizar el número de accesos.

Presentaciones similares


Presentación del tema: "IBD Clase 5. UNLP - Facultad de InformáticaIBD - CLASE 5 2 Búsqueda de datos - Indices Búsqueda de información: debemos minimizar el número de accesos."— Transcripción de la presentación:

1 IBD Clase 5

2 UNLP - Facultad de InformáticaIBD - CLASE 5 2 Búsqueda de datos - Indices Búsqueda de información: debemos minimizar el número de accesos Secuencial Binaria Estructuras auxiliares

3 UNLP - Facultad de InformáticaIBD - CLASE 5 3 Búsqueda de datos - Indices Las últimas págs. de un libro suelen contener un índice (tabla que contiene una lista de temas y los nº de pág. donde pueden encontrarse) El uso de un índice es mejor alternativa que buscar un tema a lo largo del libro en forma secuencial

4 UNLP - Facultad de InformáticaIBD - CLASE 5 4 Búsqueda de datos - Indices Otro ejemplo: encontrar libros en una biblioteca (por autor, título o tema) Alternativa 1: disponer 3 copias de cada libro y 3 edificios de biblioteca separados. Edificio1: libros clasificados por autor, Edif 2: libros clasif por titulo, Edif 3: libros clasif por tema (absurdo) Alternativa 2: usar un catálogo de tarjetas. En realidad es un conjunto de 3 índices, cada uno tiene una campo clave distinto, pero todos tienen el mismo número de catálogo como campo de referencia. El uso de índices proporciona varios caminos de acceso a un archivo

5 UNLP - Facultad de InformáticaIBD - CLASE 5 5 Búsqueda de datos - Indices Índices: definiciones Herramienta para encontrar registros en un archivo. Consiste de un campo de llave (búsqueda) y un campo de referencia que indica donde encontrar el registro dentro del archivo de datos. Tabla que opera con un procedimiento que acepta información acerca de ciertos valores de atributos como entrada (llave), y provee como salida, información que permite la rápida localización del registro con esos atributos. Estructura de datos (clave, dirección) usada para decrementar el tiempo de acceso a un archivo.

6 UNLP - Facultad de InformáticaIBD - CLASE 5 6 Búsqueda de datos - Indices Índice: equivale a índice temático de un libro (tema, #hoja) (clave, NRR/distancia en bytes) Estructura más simple es un árbol Característica fundamental Permite imponer orden en un archivo sin que realmente este se reacomode Varias posibilidades Una: tantas entradas como tenga el archivo de datos. Otra: que no esté completo

7 UNLP - Facultad de InformáticaIBD - CLASE 5 7 Búsqueda de datos - Indices Dir. Reg.CíaNº IDTítuloCompositoresArtista 32LON2312Romeo y JulietaProkofievMaazel 77RCA2626Cuarteto en Do...BeethovenJulliard 132WAR23699TouchstoneCorea 167ANG3795Sinfonía Nº 9BeethovenGiulini 211COL38358NebraskaSpringsteen 256DG18807Sinfonía Nº 9BeethovenKarajan 300MER75016Suite el Gallo...Rymsky-KorsakovLeinsdorf 353COL31809Sinfonía Nº 9DvorakBernstein 396DG139201Concierto para ViolínBeethovenFerras 422FF245Good NewsSweet Honey in..

8 UNLP - Facultad de InformáticaIBD - CLASE 5 8 Búsqueda de datos - Indices Llave primaria: cía grabadora + Nº de identificación de la cía Unívoca. Forma canónica: cía en mayúsculas + Nº identificación No se puede hacer búsqueda binaria sobre el archivo ya que tiene reg. de long variable (no se puede usar en NRR como medio de acceso) Dos Archivos: índice y datos Se construye un índice: llave de 12 caracteres (alineada a izq. y completada con blancos) más un campo de referencia (dir. del primer byte del registro correspondiente) Estructura del índice: archivo ordenado de reg. de long fija (puede hacerse búsqueda binaria). En memoria Más fácil de manejar que el arch. de datos

9 UNLP - Facultad de InformáticaIBD - CLASE 5 9 Búsqueda de datos - Indices LlaveRefDir. de registroRegistro de Datos ANG LON¦2312¦Romeo y Julieta¦Prokofiev... COL RCA¦2626¦Cuartetoen Do... COL WAR¦23699¦Touchstone¦Corea... DG ANG¦3795¦Sinfonía Nº9¦Beethoven... DG COL¦38358¦Nebraska¦Springsteen... FF DG¦18807¦Sinfornía Nº 9¦Beethoven... LON MER¦76016¦Suite El gallo de Oro¦Rimsky... MER COL¦31809¦Sinfornía Nº9¦Dvorak... RCA DG¦139201¦Concierto para violín¦Beethoven... WAR FF¦245¦Good News¦Sweet Honey in the....

10 UNLP - Facultad de InformáticaIBD - CLASE 5 10 Búsqueda de datos - Indices Algoritmo de recuperación con llave proc recupera_registros (llave) encontrar la posición de llave en el índice si encontre la llave entonces tomar distancia en bytes al reg desplazar en archivo de datos leer el registro sino registro inexistente fin proceso Búsqueda binaria (está en memoria) Características Índices pueden tener más información (tamaño de registro a leer)

11 UNLP - Facultad de InformáticaIBD - CLASE 5 11 Búsqueda de datos - Indices Operaciones básicas en un archivo indizado Índice en memoria (búsqueda binaria + rápida, comparada con archivos clasificados) Crear los archivos (el indice y el arch. de datos se crean vacíos, solo con registro cabecera) Cargar el índice en memoria (se supone que cabe, ya que es lo suficientem. pequeño. Se almacena en un arreglo)

12 UNLP - Facultad de InformáticaIBD - CLASE 5 12 Búsqueda de datos - Indices Agregar nuevos registros Implica agregar al archivo de datos y al archivo de indices Archivo de datos: copiar al final (se debe saber el NRR (fija) o distancia en bytes (variable) para el índice) Índice ordenarse con cada nuevo elemento en forma canónica (en mem.), setear el flag anterior Eliminar un registro Arch. datos Cualquier técnica de las vistas para reutilizar el espacio Arch. índices se quita la entrada (ó se podría marcar como borrado).

13 UNLP - Facultad de InformáticaIBD - CLASE 5 13 Búsqueda de datos - Indices Operaciones básicas en un archivo indizado Reescritura del archivo de índice Cambios: activar un flag en el reg. cabecera cuando cambia la copia del índice en memoria ppal. Todos los programas deberían revisar el flag antes de utilizarlo. Si se encuentra el flag activo, el prg sabrá que el índice no está actualizado Si un prg. detecta el índice desactualizado, debe acceder a un procedimiento para su reconstrucción

14 UNLP - Facultad de InformáticaIBD - CLASE 5 14 Búsqueda de datos - Indices Actualización de registros Sin modificar la clave (que pasa con el índice?) Si el reg. no cambia de longitud, se almacena en la misma posición física, el índice no se toca. Si el reg. cambia de longitud (se agranda) y se reubica en el arch. de datos se debe guardar la nueva posición inicial en el índice Modificando la clave (que sucede?) Se modifica el archivo de datos Se debe actualizar y reorganizar el archivo de índices Cómo simplificar Modificar = Eliminar + Agregar (ya vistos)

15 UNLP - Facultad de InformáticaIBD - CLASE 5 15 Búsqueda de datos - Indices Uso de índices Ventajas Se usa un archivo con reg. de long. fija Se almacena en memoria principal Permite búsqueda binaria El mantenimiento es menos costoso

16 UNLP - Facultad de InformáticaIBD - CLASE 5 16 Búsqueda de datos - Indices Índices grandes para entrar en memoria Acceso y mantenimiento del índice: almacén secundario Ventajas Posibilita búsqueda binaria en un arch. con reg. de long. variable La reorganización y mantenimiento es menos costoso que hacer estas tareas sobre el arch. de datos directamente (siguen siendo más pequeños que el arch. de datos) Desventajas # de desplazamientos (para búsqueda binaria en disco) Reacomodo del índice debido a la adición o borrado de reg.

17 UNLP - Facultad de InformáticaIBD - CLASE 5 17 Búsqueda de datos - Indices Índices grandes para entrar en memoria Soluciones Organización por Dispersión (hashing) (prioriza la velocidad de acceso) Uso de Árboles Otra alternativa Niveles de índices (indices de indices): permiten almacenar índices más grandes

18 UNLP - Facultad de InformáticaIBD - CLASE 5 18 Búsqueda de datos - Indices Índices Secundarios No sería natural solicitar un dato por clave En su lugar se utiliza normalmente un campo mas fácil de recordar( ej: buscar una canción por su título o por su compositor) 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)

19 UNLP - Facultad de InformáticaIBD - CLASE 5 19 Búsqueda de datos - Indices Indice deCompositores Llave SecundariaLlave Primaria BEETHOVENANG3795 BEETHOVENDG BEETHOVENDG18807 BEETHOVENRCA2626 COREAWAR23699 DVORAKCOL31809 PROKOFIEVLON2312 RIMSKY-KORSAKOVMER75016 SPRINGSTEENCOL38358 SWEET HONEY....FF245

20 UNLP - Facultad de InformáticaIBD - CLASE 5 20 Búsqueda de datos - Indices Índices Secundarios (Operaciones) Adición de registros Implica reacomodar el archivo Bajo costo si el índice está en memoria ppal. Las claves se almacenan en long. Fija podrían llegar a truncarse (la definición de forma canónica debe considerar esta restricción para que la búsqueda trabaje adecuadamente) La claves duplicadas implican un reordenamiento de 2º nivel de acuerdo a la clave primaria que referencian

21 UNLP - Facultad de InformáticaIBD - CLASE 5 21 Búsqueda de datos - Indices Índices Secundarios (Operaciones) Eliminación de registros Más complicada: eliminar referencia en índice primario + referencias en índices secundarios Alternativa, sólo borrar del primario

22 UNLP - Facultad de InformáticaIBD - CLASE 5 22 Búsqueda de datos - Indices Índices Secundarios (operaciones) Eliminación de registros Así, el indice primario sirve como una especie de búffer de protección que aisla los índices secundarios de los cambios del archivo de datos Beneficio: no hay reacomodo por cada borrado Costo: se sigue ocupando el espacio Si el archivo es poco volátil esto no es problema Si el archivo es muy volátil se podrían programar borrados físicos de los índices secundarios

23 UNLP - Facultad de InformáticaIBD - CLASE 5 23 Búsqueda de datos - Indices Índices Secundarios Análisis del costo de mantener direcciones físicas en el índice secundario Si el indice secundario referencia directam. al arch. de datos Reacomodamiento físicos implica reacomodar índice primario y en este caso secundarios tambien (pueden ser varios)

24 UNLP - Facultad de InformáticaIBD - CLASE 5 24 Búsqueda de datos - Indices Indices Secundarios Actualización 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 Consulta Mejora en gran medida el tiempo de respuestas

25 UNLP - Facultad de InformáticaIBD - CLASE 5 25 Búsqueda de datos - Indices Problemas: la repetición de información El arch. de índices se debe reacomodar con cada adición, aunque se ingrese una clave secundaria ya existente, dado que existe un 2do orden por la clave primaria. Misma clave varias ocurrencias, en distintos registros Se desperdicia espacio Menor posibilidad de que el índice quepa en memoria

26 UNLP - Facultad de InformáticaIBD - CLASE 5 26 Búsqueda de datos - Indices Soluciones Arreglo: clave + vector de punteros con ocurrencias Al agregar un nuevo reg. de una clave existente no se debe reacomodar nada-> solo reacomodar el vector de ocurrencias Al agregar un nuevo reg. con una clave nueva, se genera un arreglo con la clave y un elemento en el vector de punteros Problema: elección del tamaño del vector. Tamaño fijo Puede haber casos en que sea insuficiente Puede haber casos que sobre espacio, provocando fragmentación interna Mejora: clave + lista de punteros con ocurrencias BEETHOVEN ANG3795 DG DG18807 RCA2626

27 UNLP - Facultad de InformáticaIBD - CLASE 5 27 Búsqueda de datos - Indices Listas invertidas: Archivos en los que una llave secundaria lleva a un conjunto de una o más claves primarias lista de referencias de claves primarias No se pierde espacio (no hay reserva) Si se agrega un elem. a la lista no se necesaria una reorganización completa

28 UNLP - Facultad de InformáticaIBD - CLASE 5 28 Búsqueda de datos - Indices Listas invertidas Organización física Archivos secundarios Marcas o referencias Operaciones Agregar un nuevo consiste en agregar concurrencias en la lista invertida Idem borrar Modificaciones dependiendo el caso

29 UNLP - Facultad de InformáticaIBD - CLASE 5 29 Búsqueda de datos - Indices NRRArchivo de índice secundario NRRArch de listas de llaves primarias 0BEETHOVEN30LON2312 1COREA21RCA2626 2DVORAK72WAR PROKOFIEV103ANG RIMSKY-KORSAKOV64COL SPRINGSTEEN45DG SWET HONEY IN...96MER COL DG FF245 10ANG361930

30 UNLP - Facultad de InformáticaIBD - CLASE 5 30 Búsqueda de datos - Indices Listas invertidas Ventajas El único reacomodamiento en el arch. índice -> al agregar o cambiar un nombre Igualmente es menos costoso (indice más pequeño) Borrar o añadir grabaciones para un compositor->sólo cambiar el archivo de listas Como el reacomodamiento es a bajo costo se podría almacenar el arch. índice en mem. secundaria, liberando RAM Desventaja el arch. de listas es conveniente que esté en memoria ppal. porque podría haber muchos desplazamientos en disco costoso si hay muchos índices secundarios

31 UNLP - Facultad de InformáticaIBD - CLASE 5 31 Búsqueda de datos - Indices Índices selectivos Contienen llaves solo para una porción de los registros del archivo de datos que interesa acceder Ej. sólo contenga los títulos de música clásica Vemos solo un subconjunto de los registros del archivo


Descargar ppt "IBD Clase 5. UNLP - Facultad de InformáticaIBD - CLASE 5 2 Búsqueda de datos - Indices Búsqueda de información: debemos minimizar el número de accesos."

Presentaciones similares


Anuncios Google