baja - TEC-Digital
baja - TEC-Digital
baja - TEC-Digital
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
I.C. RENE EDMUNDO CUEVAS VALENCIA.<br />
Note que el hashing puede ser aplicado a llaves no numéricas, lo mismo que a<br />
llaves numéricas. Las posiciones de ordenamiento de secuencia de los caracteres en un<br />
valor de llave pueden ser utilizadas con sus equivalentes “numéricos”.<br />
Alternativamente, el algoritmo hash actúa sobre las representaciones binarias de los<br />
caracteres.<br />
Todas las funciones hash presentadas tienen destinado un espacio de tamaño<br />
fijo. Aumentar el tamaño del archivo relativo creado al usar una de estas funciones<br />
implica cambiar la función hash, para que se refiera a un espacio mayor y volver a<br />
cargar el nuevo archivo. Otras técnicas hash han sido desarrolladas que permiten que el<br />
archivo crezca o se reduzca sin obligar a una relocalización de los registros. Estos<br />
métodos son conocidos cono hashing dinámico, hashing extendible y hashing virtual. El<br />
espacio de almacenamiento asignado es dividido en cubetas. Cuando u registro tenga<br />
que ser insertado dentro de una cubeta llena, ésta es dividida en dos cubetas en las que<br />
los registros son distribuidos. Este enfoque aparecerá de nuevo, cuando discutamos<br />
árboles-B.<br />
El hashing dinámico utiliza una estructura de índice de árbol binario para<br />
almacenar las cubetas y para dirigir el acceso a los registros. El hashing extendible usa<br />
un directorio tabular basado en una estructura trie degenerada para almacenar las<br />
cubetas de pista y dirigir el acceso a los registros. El hashing virtual es un nombre<br />
general dado “para cualquier hashing que puede cambiar dinámicamente su función<br />
hash” (W. Litwin, “Virtual hashing: Adynamically changing hashing”, Proc. 4th Conf.<br />
]Very large Databases, W. Berlin, 1978, pp. 517-523). Este término es bastante amplio e<br />
incluye no sólo técnicas de hashing dinámico y extendible, sino también técnicas que no<br />
utilizan ningunos índices. Para mayor información sobre estos métodos, debe consultar<br />
las referencias surgidas al final de este capítulo.<br />
METODOS PARA EL PROBLEMA DE LAS COLISIONES<br />
Dado que una función hashing mapea un espacio relativamente grande de valores de<br />
llave en un espacio de direcciones relativamente pequeño, es seguro que se producirán<br />
colisiones; más de un valor de llave será mapeado en una sola dirección relativa.<br />
Considere los dos valores de llave K1 y K2, los cuales son sinónimos con la función<br />
hash R. Suponga que la clase de equivalencia que contiene a K1 y K2 no contiene otros<br />
valores de llave; esto es, k1 y K2 no tienen otros sinónimos. Si K1 es primero<br />
almacenado en el archivo y su dirección es R(K1), entonces se dice que K1 está<br />
almacenado en su dirección de origen.<br />
Existen dos métodos básicos para determinar donde K2 debe ser alojado:1)<br />
direccionamiento abierto, en la cual otra dirección distinta de la dirección de origen es<br />
encontrada para K2 en el archivo relativo, y 2) separación de desborde, en el cual<br />
alguna dirección es encontrada para K2 fuera del área principalmente del archivo<br />
relativo, en un área especial de desborde, que es utilizada exclusivamente para<br />
almacenar registros que no pueden ser asignados a su dirección de origen.<br />
Se han desarrollado numerosas técnicas para mejorar colisiones. Ahora<br />
consideraremos dos de los métodos más comunes:<br />
• Sondeo lineal, que es una técnica de direccionamiento abierto<br />
MATERIAL DE APOYO A LA MATERIA DE ESTRUCTURAS DE DATOS III - 52 -