Documente Academic
Documente Profesional
Documente Cultură
AGRADECIMIENTOS
RESUMEN
ABSTRACT
This report will be one of the most direct and rapid access to files is
talking about hash files or also called hashing.
INTRODUCCION
FICHEROS DISPERSOS
DEFINCION:
Los archivos directos explotan la capacidad de los discos para acceder
directamente a cualquier bloque de direccin conocida. Como en los
archivos secuenciales y secuenciales indexados, se requiere un
campo clave en cada registro. Sin embargo, aqu no hay concepto de
ordenamiento secuencial.
Direccin de cada registro: se calcula aplicando cierta funcin sobre
uno de sus campos, el campo de dispersin.
Acceso a los datos: muy rpido slo si se busca con la condicin de
igualdad sobre el Campo de dispersin.
La dispersin se puede utilizar a nivel interno (RAM), como una
estructura de datos de un programa, o bien a nivel externo para
ficheros en disco.
Dispersin Interna
Funciones ms comunes:
h(K) = K mod M ---
Partir el campo en trozos y
sumarlos o aplicar funcin lgica.
Extraer ciertos dgitos del campo.
Resolucin de colisiones:
Direccionamiento abierto.
Encadenamiento. ---
Dispersin mltiple.
DISPERSION ESTATICA
La funcin de dispersin produce un nmero de bloque relativo.
En una tabla que se guarda en la cabecera del fichero se convierte
ese nmero relativo en una direccin efectiva del disco (bloque o
cluster).
Buscar:
Leer ordenadamente:
Caro (las funciones de dispersin no
suelen mantener los registros en un orden).
Insertar:
Eliminar:
Modificar:
DISPERSION EXTENSIBLE
Ejemplo
TABLA DE HASH
"Hashing" es una tcnica que busca realizar las operaciones
de insercin, eliminacin y bsqueda en tiempo constante.
Esa caracterstica es muy importante cuando se traba con
almacenamiento secundario en disco, donde el acceso a una
determinada direccin es bastante lenta. Algunas
aplicaciones que son beneficiadas por el uso de tablas hash
son diccionarios y tablas de palabras reservadas de un
compilador.
En vez de organizar la tabla segn el valor relativo de cada
llave en relacin a las dems, la tabla hash toma encuentra
solamente su valor absoluto, interpretado como un valor
numrico.
Funciones Hash
Crear una funcin hash satisfaciendo las condiciones
anteriores no siempre es una tarea fcil. Existen mucho
modelos de creacin para funciones hash. A continuacin se
presentan apenas dos formas de creacin de funciones hash.
en "Cormen,T.H. Leiserson C.E., Rivest R.L. Introduction to
Algorithms" pueden ser encontraod varios ejemplos afines
hash.
Una buena funcin hash es aquella en que toda entrada (slot)
del array posee la misma probabilida de ser alcanzado por la
funcin.
Mtodo da Divisin
El mtodo de la divisin consiste en los siguiente: suponga
que los elementos x que deben ser almacenados sean
nmeros enteros, una funcin hash que puede ser utilizada
para distribuir tales nmeros en un array (tabla hash) es:
h(x)=x% (tamao de la tabla)
Implementacin
El proceso es
repetido
hasta que los
dgitos
formen
un
nmero
menor al del
tamao de la
tabla hash.
Es importante
resaltar que
el metodo de
doblar
tambin
puede
ser
usado
con
nmeros
binarios.
En
este caso, en
vez
de
la
suma, se debe realizar una operacin de "OR exclusivo", pues
operaciones de "AND" y de "OR" tienden a producir direcciones-base
concentrados al final o al inicio de la tabla.
COLISIONES
Por ms que se intente encontrar una funcin hash eficiente, en
aplicaciones prcticas es difcil conseguir evitar el problema de
colisiones de llaves. As, se vuelve necesario estudiar alternativas
para este problema.