Está en la página 1de 31

IBD

Clase 5

Bsqueda de datos - Indices

Bsqueda de informacin:

debemos minimizar el nmero de accesos

Secuencial
Binaria Estructuras auxiliares
IBD - CLASE 5 UNLP - Facultad de Informtica

Bsqueda de datos - Indices


Las

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

UNLP - Facultad de Informtica

Bsqueda de datos - Indices

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.

El uso de ndices proporciona varios caminos de acceso a un archivo

IBD - CLASE 5

UNLP - Facultad de Informtica

Bsqueda de datos - Indices

ndices: definiciones

Herramienta para encontrar registros en un archivo.

Consiste de un campo de llave (bsqueda) y un campo de referencia que indica donde encontrar el registro dentro del archivo de datos.

Tabla que opera con un procedimiento que acepta

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.

Estructura de datos (clave, direccin) usada para


decrementar el tiempo de acceso a un archivo.
5
IBD - CLASE 5 UNLP - Facultad de Informtica

Bsqueda de datos - Indices

ndice: equivale a ndice temtico de un libro


(tema, #hoja) (clave, NRR/distancia en bytes) Estructura ms simple es un rbol

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

Bsqueda de datos - Indices


Dir. Reg. 32 77 132 167 211 256 300 353 396 422 Ca LON RCA WAR ANG COL DG MER COL DG FF N ID 2312 2626 23699 3795 38358 18807 75016 31809 139201 245 Ttulo Romeo y Julieta Cuarteto en Do... Touchstone Sinfona N 9 Nebraska Sinfona N 9 Suite el Gallo... Sinfona N 9 Concierto para Violn Good News Compositores Prokofiev Beethoven Corea Beethoven Springsteen Beethoven Rymsky-Korsakov Dvorak Beethoven Sweet Honey in.. Artista Maazel Julliard Corea Giulini Springsteen Karajan Leinsdorf Bernstein Ferras Sweet Honey in..

IBD - CLASE 5

UNLP - Facultad de Informtica

Bsqueda de datos - Indices

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

Bsqueda de datos - Indices


Llave ANG3795 COL31809 COL38358 DG139201 DG18807 FF245 LON2312 Ref 167 353 211 396 256 442 32 Dir. de registro 32 77 132 167 211 256 300 Registro de Datos LON2312Romeo y JulietaProkofiev... RCA2626Cuartetoen Do... WAR23699TouchstoneCorea... ANG3795Sinfona N9Beethoven... COL38358NebraskaSpringsteen... DG18807Sinforna N 9Beethoven... MER76016Suite El gallo de OroRimsky...

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

Bsqueda de datos - Indices


Algoritmo de recuperacin con llave
proc recupera_registros (llave) encontrar la posicin 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

Bsqueda binaria (est en memoria)

Caractersticas

ndices pueden tener ms informacin (tamao de registro a leer)

10

IBD - CLASE 5

UNLP - Facultad de Informtica

Bsqueda de datos - Indices

Operaciones bsicas en un archivo indizado

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

Bsqueda 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 cannica (en mem.), setear el flag anterior

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

UNLP - Facultad de Informtica

Bsqueda de datos - Indices

Operaciones bsicas 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 deberan 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 reconstruccin


13
IBD - CLASE 5 UNLP - Facultad de Informtica

Bsqueda de datos - Indices

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

Bsqueda de datos - Indices

Uso de ndices

Ventajas Se usa un archivo con reg. de long. fija


Se almacena en memoria principal Permite bsqueda binaria El mantenimiento es menos costoso

15

IBD - CLASE 5

UNLP - Facultad de Informtica

Bsqueda de datos - Indices

ndices grandes para entrar en memoria

Acceso y mantenimiento del ndice: almacn secundario Ventajas


Posibilita bsqueda binaria en un arch. con reg. de long. variable La reorganizacin y mantenimiento es menos costoso que hacer estas tareas sobre el arch. de datos directamente (siguen siendo ms pequeos que el arch. de datos)

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

Bsqueda de datos - Indices

ndices grandes para entrar en memoria

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

Bsqueda de datos - Indices

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

Bsqueda de datos - Indices


Indice de
Llave Secundaria
BEETHOVEN BEETHOVEN BEETHOVEN BEETHOVEN COREA DVORAK PROKOFIEV RIMSKY-KORSAKOV SPRINGSTEEN SWEET HONEY....

Compositores
Llave Primaria
ANG3795 DG139201 DG18807 RCA2626 WAR23699 COL31809 LON2312 MER75016 COL38358 FF245

19

IBD - CLASE 5

UNLP - Facultad de Informtica

Bsqueda de datos - Indices

ndices Secundarios (Operaciones)

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

UNLP - Facultad de Informtica

Bsqueda de datos - Indices

ndices Secundarios (Operaciones)


Eliminacin de registros Ms complicada: eliminar referencia en ndice primario + referencias en ndices secundarios

Alternativa, slo borrar del primario

21

IBD - CLASE 5

UNLP - Facultad de Informtica

Bsqueda de datos - Indices

ndices Secundarios (operaciones)

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

Bsqueda de datos - Indices

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

UNLP - Facultad de Informtica

Bsqueda de datos - Indices

Indices Secundarios

Actualizacin
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
24
IBD - CLASE 5 UNLP - Facultad de Informtica

Bsqueda de datos - Indices

Problemas: la repeticin de informacin


El arch. de ndices se debe reacomodar con cada adicin, 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
25
IBD - CLASE 5 UNLP - Facultad de Informtica

Bsqueda de datos - Indices

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

Mejora: clave + lista de punteros con ocurrencias


26
IBD - CLASE 5 UNLP - Facultad de Informtica

Bsqueda de datos - Indices

Listas invertidas: Archivos en los que una llave


secundaria lleva a un conjunto de una o ms 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 reorganizacin completa
27
IBD - CLASE 5 UNLP - Facultad de Informtica

Bsqueda de datos - Indices

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

Bsqueda de datos - Indices


NRR Archivo de ndice secundario NRR Arch de listas de llaves primarias

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

Bsqueda de datos - Indices

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

Bsqueda de datos - Indices

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

Vemos solo un subconjunto de los registros del archivo


31
IBD - CLASE 5 UNLP - Facultad de Informtica

También podría gustarte