Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Clase 5
Bsqueda de informacin:
Secuencial
Binaria Estructuras auxiliares
IBD - CLASE 5 UNLP - Facultad de Informtica
ltimas pgs. de un libro suelen contener un ndice (tabla que contiene una lista de temas y los n de pg. donde pueden encontrarse)
uso de un ndice es mejor alternativa que buscar un tema a lo largo del libro en forma secuencial
El
IBD - CLASE 5
Otro ejemplo: encontrar libros en una biblioteca (por autor, ttulo 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 catlogo de tarjetas. En realidad es un conjunto de 3 ndices, cada uno tiene una campo clave distinto, pero todos tienen el mismo nmero de catlogo como campo de referencia.
IBD - CLASE 5
ndices: definiciones
Consiste de un campo de llave (bsqueda) y un campo de referencia que indica donde encontrar el registro dentro del archivo de datos.
informacin acerca de ciertos valores de atributos como entrada (llave), y provee como salida, informacin que permite la rpida localizacin del registro con esos atributos.
Caracterstica 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
6
IBD - CLASE 5 UNLP - Facultad de Informtica
IBD - CLASE 5
Llave primaria: ca grabadora + N de identificacin de la ca Unvoca. Forma cannica: ca en maysculas + N identificacin No se puede hacer bsqueda 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) ms un campo de referencia (dir. del primer byte del registro correspondiente) Estructura del ndice: archivo ordenado de reg. de long fija (puede hacerse bsqueda binaria). En memoria Ms fcil de manejar que el arch. de datos
8
IBD - CLASE 5 UNLP - Facultad de Informtica
MER75016
RCA2626 WAR23699
300
77 132
353
396 422
COL31809Sinforna N9Dvorak...
DG139201Concierto para violnBeethoven... FF245Good NewsSweet Honey in the....
IBD - CLASE 5 UNLP - Facultad de Informtica
Caractersticas
10
IBD - CLASE 5
ndice en memoria (bsqueda binaria + rpida, comparada con archivos clasificados) Crear los archivos (el indice y el arch. de datos se crean vacos, solo con registro cabecera)
Cargar el ndice en memoria (se supone que cabe, ya que es lo suficientem. pequeo. Se almacena en un arreglo)
11
IBD - CLASE 5 UNLP - Facultad de Informtica
Eliminar un registro
Arch. datos Cualquier tcnica de las vistas para reutilizar el espacio Arch. ndices se quita la entrada ( se podra marcar como borrado).
12
IBD - CLASE 5
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 deberan revisar el flag antes de utilizarlo. Si se encuentra el flag activo, el prg sabr que el ndice no est actualizado
Actualizacin de registros
Sin modificar la clave (que pasa con el ndice?) Si el reg. no cambia de longitud, se almacena en la misma posicin fsica, 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 posicin inicial en el ndice Modificando la clave (que sucede?) Se modifica el archivo de datos Se debe actualizar y reorganizar el archivo de ndices Cmo simplificar Modificar = Eliminar + Agregar (ya vistos)
14
IBD - CLASE 5 UNLP - Facultad de Informtica
Uso de ndices
15
IBD - CLASE 5
Desventajas
# de desplazamientos (para bsqueda binaria en disco) Reacomodo del ndice debido a la adicin o borrado de reg.
16
IBD - CLASE 5 UNLP - Facultad de Informtica
Soluciones Organizacin por Dispersin (hashing) (prioriza la velocidad de acceso) Uso de rboles Otra alternativa Niveles de ndices (indices de indices): permiten almacenar ndices ms grandes
17
IBD - CLASE 5 UNLP - Facultad de Informtica
ndices Secundarios
No sera natural solicitar un dato por clave En su lugar se utiliza normalmente un campo mas fcil de recordar( ej: buscar una cancin por su ttulo 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)
18
IBD - CLASE 5 UNLP - Facultad de Informtica
Compositores
Llave Primaria
ANG3795 DG139201 DG18807 RCA2626 WAR23699 COL31809 LON2312 MER75016 COL38358 FF245
19
IBD - CLASE 5
Adicin de registros Implica reacomodar el archivo Bajo costo si el ndice est en memoria ppal. Las claves se almacenan en long. Fija podran llegar a truncarse (la definicin de forma cannica debe considerar esta restriccin para que la bsqueda trabaje adecuadamente) La claves duplicadas implican un reordenamiento de 2 nivel de acuerdo a la clave primaria que referencian
20
IBD - CLASE 5
21
IBD - CLASE 5
Eliminacin de registros
As, el indice primario sirve como una especie de bffer de proteccin 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 voltil esto no es problema Si el archivo es muy voltil se podran programar borrados fsicos de los ndices secundarios
22
IBD - CLASE 5 UNLP - Facultad de Informtica
ndices Secundarios
Anlisis del costo de mantener direcciones fsicas en el ndice secundario Si el indice secundario referencia directam. al arch. de datos
Reacomodamiento fsicos implica reacomodar ndice primario y en este caso secundarios tambien (pueden ser varios)
23
IBD - CLASE 5
Indices Secundarios
Actualizacin
Cambia la llave secundaria
Se debe reacomodar el ndice secundario puede ser relativamente costosa.
Consulta
Mejora en gran medida el tiempo de respuestas
24
IBD - CLASE 5 UNLP - Facultad de Informtica
Soluciones
Arreglo: clave + vector de punteros con ocurrencias
BEETHOVEN ANG3795 DG139201 DG18807 RCA2626
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: eleccin del tamao del vector.
Tamao fijo Puede haber casos en que sea insuficiente Puede haber casos que sobre espacio, provocando fragmentacin interna
No se pierde espacio (no hay reserva) Si se agrega un elem. a la lista no se necesaria una reorganizacin completa
27
IBD - CLASE 5 UNLP - Facultad de Informtica
Listas invertidas
Organizacin fsica
Archivos secundarios Marcas o referencias
Operaciones
Agregar un nuevo consiste en agregar concurrencias en la lista invertida Idem borrar Modificaciones dependiendo el caso
28
IBD - CLASE 5 UNLP - Facultad de Informtica
0
1
BEETHOVEN
COREA
3
2
0
1
LON2312
RCA2626
-1
-1
2
3 4 5 6
DVORAK
PROKOFIEV RIMSKY-KORSAKOV SPRINGSTEEN SWET HONEY IN...
7
10 6 4 9
2
3 4 5 6 7 8 9 10
WAR23699
ANG3795 COL38358 DG18807 MER76016 COL31809 DG139201 FF245 ANG36193
-1
8 -1 1 -1 -1 5 -1 0
UNLP - Facultad de Informtica
29
IBD - CLASE 5
Listas invertidas
Ventajas
El nico reacomodamiento en el arch. ndice -> al agregar o cambiar un nombre
Igualmente es menos costoso (indice ms pequeo)
Borrar o aadir grabaciones para un compositor->slo cambiar el archivo de listas Como el reacomodamiento es a bajo costo se podra almacenar el arch. ndice en mem. secundaria , liberando RAM
Desventaja
el arch. de listas es conveniente que est en memoria ppal. porque podra haber muchos desplazamientos en disco costoso si hay muchos ndices secundarios
30
IBD - CLASE 5 UNLP - Facultad de Informtica
ndices selectivos
Contienen llaves solo para una porcin de los registros del archivo de datos que interesa acceder
Ej. slo contenga los ttulos de msica clsica