Busqueda...

Búsquedas


Búsquedas

Búsquedas

Los algoritmos de búsqueda permiten realizar búsquedas sobre un conjunto definido que puede ser homogéneo o heterogéneo, cualquiera sea el caso. Las búsquedas son útiles cando se manejan colecciones muy grandes de datos, y es necesario poder recuperar la información en los contenedores. Es necesario tener en cuenta que las búsquedas se realizan sobre elementos representativos de memoria, es decir arreglos unidimensionales o multidimensionales, listas enlazadas, etc. En el documento PDF anexo a la guía básica se encuentra la teoría referente a los algoritmos de búsqueda principales, es decir búsqueda secuencial y búsqueda binaria, en la pagina 26 (haciendo la búsqueda de páginas con el adobe reader). En este documento se estudiará la búsqueda indexada.
Búsqueda Indexada
Una analogía valida para el esquema de búsqueda indexada, es el tipo de búsqueda que hacemos en diccionarios o libros con índice. Por ejemplo, para buscar la palabra “Redención” en el diccionario, en vez de buscar pagina por pagina la información, lo que se hace es ir directo a la sección de la letra “R”, luego cada sección internamente tiene un orden alfabético para las palabras contenidas en ella, de modo que una vez más saltamos las palabras hasta llegar a las palabras que empiezan por “Red” y luego mediante otra búsqueda damos con la palabra. Basándonos en este ejemplo, podemos definir la búsqueda indexada como el proceso de búsqueda que hace uso de índices y subíndices para poder ubicar el elemento a buscar.
Prerrequisitos
Este tipo de búsqueda requiere que la información esté ordenada y a demás clasificada en subtipos o secciones. Por ejemplo, si se quiere modelar un sistema de inventario de una tienda que vende productos variados, donde se tienen productos alimenticios, productos de limpieza, equipos electrónicos, textiles y calzados, el modelo de almacenamiento de este sistema debe contemplar una colección de índices, donde cada índice “apunta” a su sección correspondiente, donde cada sección alberga un tipo especifico de piezas de inventario. Bajo este ejemplo se necesitan 5 índices, uno para cada tipo de inventario (textiles, comida, calzado, limpieza, electrónicos), así como también una colección referenciada por cada índice, con un total de 5 colecciones diferentes de datos. Cada colección internamente puede manejar indexación interna o no, según sea la implementación.

Niveles de Indexación
Mientras más índices se tengan, más eficientes a nivel de procesamiento serán las búsquedas, pero conlleva a consumir más memoria para almacenar cada índice. Adicionalmente, es posible tener niveles de indexación para un modelo de memoria determinado. Se puede establecer el nivel superior de indexación con la colección principal de índices, así como también por cada sección interna tener otro nivel de indexación para agilizar búsquedas internamente a nivel de secciones. Eso dejaría un modelo de memoria con dos niveles de indexación. Si es requerido es posible aumentar los niveles, a expensas del gasto implícito de memoria.
Optimalidad
Las búsquedas indexadas son fuertemente usadas en los diversos tipos de bases de datos, sobre todo en las bases de datos relacionales, y son por defecto los mecanismos mas eficientes de búsqueda actuales. El uso de búsqueda de indexada es aplicado mayormente usando arboles binarios de búsqueda (ABB), que sirven como estructuras eficientes para estos casos. Otras implementaciones hacen uso de Diccionarios o Tablas de Hash, tratando las colisiones como búsquedas exitosas. Adicionalmente a todo esto es posible aplicar búsquedas indexadas sin el uso de elegantes técnicas como el hashing, haciendo uso de vectores o listas en paralelo.

Estructura básica genérica

Colección de índices

Index1
Index2
Index3
Index4
.
..
..
..
IndN-1
indexN

Correlación entre índices y lo que apuntan
Index1
Coleccion1

Index2
Coleccion2

Index3
Coleccion3

.
.
.
IndexN
ColeccionN

Colecciones de Datos


Coleccion1
Data1


Coleccion2
Data2

Coleccion3
Data3

.
.
.

ColeccionN
DataN

No hay comentarios:

Publicar un comentario