1 / 31

IBD

IBD . Clase 5. Búsqueda de datos - Indices. Búsqueda de información : debemos minimizar el número de accesos Secuencial Binaria Estructuras auxiliares. Búsqueda de datos - Indices.

loe
Download Presentation

IBD

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. IBD Clase 5

  2. Búsqueda de datos - Indices • Búsqueda de información: debemos minimizar el número de accesos • Secuencial • Binaria • Estructuras auxiliares IBD - 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 IBD - 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 IBD - CLASE 5

  5. Búsqueda de datos - Indices • Índices: definiciones • Herramientapara 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. • Tablaque 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. IBD - 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 IBD - CLASE 5

  7. Búsqueda de datos - Indices IBD - 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 IBD - CLASE 5

  9. Búsqueda de datos - Indices IBD - CLASE 5

  10. 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) Búsqueda de datos - Indices IBD - 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) IBD - 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). IBD - 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 IBD - 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) IBD - 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 IBD - 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. IBD - 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 IBD - 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) IBD - CLASE 5

  19. Búsqueda de datos - Indices IBD - 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 IBD - 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 IBD - 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 IBD - 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) IBD - 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 IBD - 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 IBD - 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 IBD - 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 IBD - 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 IBD - CLASE 5

  29. Búsqueda de datos - Indices IBD - 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 IBD - 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 IBD - CLASE 5

More Related