06.05.2013 Views

baja - TEC-Digital

baja - TEC-Digital

baja - TEC-Digital

SHOW MORE
SHOW LESS

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 -

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!