La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

IBD Clase 5.

Presentaciones similares


Presentación del tema: "IBD Clase 5."— Transcripción de la presentación:

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 UNLP - Facultad de Informática

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 UNLP - Facultad de Informática

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 UNLP - Facultad de Informática

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. IBD - CLASE 5 UNLP - Facultad de Informática

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 Como es un índice? Reg. de longitud fija Índice file (todo el registro ocupa F bytes) Alfa cab cab Alfa Beta cab+3F cab+F Epsilon Delta cab+5F cab+2F Omega Epsilon cab+F cab+3F Beta Gamma cab+4F cab+4F Gamma Mu cab+6F cab+5F Delta Omega cab+2F cab+6F Mu no nec. Long. Fija reg. Long variable, ponemos distancia en bytes Estructura, registros de longitud fija con campos de long. fija IBD - CLASE 5 UNLP - Facultad de Informática

7 Búsqueda de datos - Indices
Dir. Reg. Cía Nº ID Título Compositores Artista 32 LON 2312 Romeo y Julieta Prokofiev Maazel 77 RCA 2626 Cuarteto en Do... Beethoven Julliard 132 WAR 23699 Touchstone Corea 167 ANG 3795 Sinfonía Nº 9 Giulini 211 COL 38358 Nebraska Springsteen 256 DG 18807 Karajan 300 MER 75016 Suite el Gallo... Rymsky-Korsakov Leinsdorf 353 31809 Dvorak Bernstein 396 139201 Concierto para Violín Ferras 422 FF 245 Good News Sweet Honey in.. Como es un índice? Reg. de longitud fija Índice file (todo el registro ocupa F bytes) Alfa cab cab Alfa Beta cab+3F cab+F Epsilon Delta cab+5F cab+2F Omega Epsilon cab+F cab+3F Beta Gamma cab+4F cab+4F Gamma Mu cab+6F cab+5F Delta Omega cab+2F cab+6F Mu no nec. Long. Fija reg. Long variable, ponemos distancia en bytes Estructura, registros de longitud fija con campos de long. fija IBD - CLASE 5 UNLP - Facultad de Informática

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 UNLP - Facultad de Informática

9 Búsqueda de datos - Indices
Llave Ref Dir. de registro Registro de Datos ANG3795 167 32 LON¦2312¦Romeo y Julieta¦Prokofiev... COL31809 353 77 RCA¦2626¦Cuartetoen Do... COL38358 211 132 WAR¦23699¦Touchstone¦Corea... DG139201 396 ANG¦3795¦Sinfonía Nº9¦Beethoven... DG18807 256 COL¦38358¦Nebraska¦Springsteen... FF245 442 DG¦18807¦Sinfornía Nº 9¦Beethoven... LON2312 300 MER¦76016¦Suite El gallo de Oro¦Rimsky... MER75016 COL¦31809¦Sinfornía Nº9¦Dvorak... RCA2626 DG¦139201¦Concierto para violín¦Beethoven... WAR23699 422 FF¦245¦Good News¦Sweet Honey in the.... IBD - CLASE 5 UNLP - Facultad de Informática

10 Búsqueda de datos - Indices
Búsqueda binaria (está en memoria) Características Índices pueden tener más información (tamaño de registro a leer) 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 IBD - CLASE 5 UNLP - Facultad de Informática

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 UNLP - Facultad de Informática

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). Sin modificar la clave, el indice no cambia, salvo que se tenga reg de long. Variable y que el elemento modificado sea cambiado de lugar en el archivo de datos. Modificando la clave, necesariamente debemos modificar el índice. IBD - CLASE 5 UNLP - Facultad de Informática

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 UNLP - Facultad de Informática

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 UNLP - Facultad de Informática

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 UNLP - Facultad de Informática

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 UNLP - Facultad de Informática

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 UNLP - Facultad de Informática

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 UNLP - Facultad de Informática

19 Búsqueda de datos - Indices
Indice de Compositores Llave Secundaria Llave Primaria BEETHOVEN ANG3795 DG139201 DG18807 RCA2626 COREA WAR23699 DVORAK COL31809 PROKOFIEV LON2312 RIMSKY-KORSAKOV MER75016 SPRINGSTEEN COL38358 SWEET HONEY.... FF245 IBD - CLASE 5 UNLP - Facultad de Informática

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 UNLP - Facultad de Informática

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 UNLP - Facultad de Informática

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 UNLP - Facultad de Informática

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 UNLP - Facultad de Informática

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 UNLP - Facultad de Informática

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 UNLP - Facultad de Informática

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 IBD - CLASE 5 UNLP - Facultad de Informática

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 UNLP - Facultad de Informática

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 UNLP - Facultad de Informática

29 Búsqueda de datos - Indices
NRR Archivo de índice secundario Arch de listas de llaves primarias BEETHOVEN 3 LON2312 -1 1 COREA 2 RCA2626 DVORAK 7 WAR23699 PROKOFIEV 10 ANG3795 8 4 RIMSKY-KORSAKOV 6 COL38358 5 SPRINGSTEEN DG18807 SWET HONEY IN... 9 MER76016 COL31809 DG139201 FF245 ANG36193 IBD - CLASE 5 UNLP - Facultad de Informática

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 UNLP - Facultad de Informática

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 UNLP - Facultad de Informática


Descargar ppt "IBD Clase 5."

Presentaciones similares


Anuncios Google