El direccionamiento de dos
registros puede darse en forma directa e indirecta. Se dice que es directa cuando es
posible determinar la dirección mediante una relación natural con la llave. Es indirecta
cuando la llave debe ser alterada o se le deben de aplicar operaciones para determinar la
dirección del registro.
Un método ampliamente utilizado para generar direcciones físicas de
los registros es aquel que realiza una descomposición de la llave y aplica a cada
fragmento o a estos en su conjunto una serie de operaciones que darán como resultado un
numero relativamente grande (en proporción al tamaño del archivo sumado) y del cual
será generado un numero en un intervalo determinado, el cual se utilizara como dirección
en el esqueleto, Este método es mejor conocido como Hashing.
Existen diversas formas de generar el numero final a partir del numero
"grande", las mas utilizadas son:
Método del residuo.
Es el de mayor aceptación y consiste en la
determinación de un numero primo (inmediatamente menor al total de registros esperados)
que será utilizado como divisor del numero grande. El residuo de esta división será el
numero hash buscado.
Método del centro de los cuadrados.
Consiste en obtener el cuadrado del numero
"grande"; del valor resultante se rescatan los dígitos centrales tantos como se
requieran para direccionar el esqueleto y se multiplican por un factor de ajuste para
colocar el resultado en el rango deseado.
Método del desplazamiento.
En este caso se consideran los dígitos mas
externos del numero "grande". De cada extremo se toman tantos dígitos como se
requieran para el direccionamiento. Estos se suman y se aplica un factor de ajuste.
Método del plegado.
Es similar al anterior salvo que los dígitos de
los extremos se suman en forma encontrada, semejando que el numero total se encontrara
escrito en una hoja y esta fuera doblada por la mitad.
Método de conversión de base.
Se asume que el numero "grande" se
encuentra en una base determinada diferente de 10 al suprimirle los dígitos fuera de
base. El valor resultante es convertido a base 10 y se le aplica el factor de ajuste.
Tomar los tres últimos dígitos.
Método del análisis de dígitos.
Se obtiene una muestra de gran tamaño de llaves
posibles y sus números hash correspondientes, se analiza la frecuencia de repetición
para cada una de las columnas y se van descartando aquellos que presentan mayor
repetición. Finalmente, se toman las columnas con mayor variación y tantas como dígitos
se requieren. Se aplica factor de ajuste.
Una vez que se ha determinado la dirección hash
por cualquiera de los métodos anteriores, se implementara sobre una estructura que
soporte tal direccionamiento. Estos pueden ser:
Esqueleto con desborde
Archivo Intermedio para direccionamiento
Como puede verse, el modelo del Redireccionamiento
ofrece la ventaja de que el desperdicio provocado por una distribución inadecuada en el
esqueleto no afecta al archivo principal; para este modelo se afecta al archivo de
Redireccionamiento donde el tamaño de los registros es mucho menor y el archivo principal
crece conforma ocurren el arribo de los registros.