13
 Universidad de Oriente- Núcleo de Anzoátegui POST GRADO INFORMÁTICA GERENCIAL CURSO : ORGANIZACIÓN DE ARCHIVOS Conceptos de Hashing Profesor Dr. Ing. Roberto Saettone 2005 Página 1 1. HASHING.............................................................................................................................. 2  2. CONCEPTOS DE HASHING ................................................................................................ 2  2.a Clave ........................................................................................................................ ........ 2  2.b Función Hash.................................................................................................................... 2  2.c Ejemplos de Funció n Hash ................ ............................................................................... 3  2.c.1 Truncamiento ........................................................................................................................ ... 3  2.c.2 Módulo ..................................................................................................................................... . 3  2.c.3 Función Centro de Cuadrados ................................................................................................. 3  2.c.4 Plegamiento .......................................................................................................................... ... 4  2.c.5 Multiplicación ............................................................................................................................4  2.d Colisión............................... .............................................................................. ................4  2.e Zonas Primaria y Secundaria ........................................................................................... 5  2.f  Factor de Carga ................................................................................................................. 5  2.g Capacid ad de Registro Primario ....................................................................................... 5  2.h Tasa de Colisiones ........................................................................................................... 5  3. ADMINISTRA CIÓN DE LA S COLISIONES ..........................................................................6  3.a Organiz ación de Archivo ................................................................................................... 6  3.a.1 Zona Primaria ........................................................................................................................... 6 3.a.2 Zona Secundaria o de Desbordamiento .................................................................................. 6 3.a.3 Cubetas o "buckets" ................................................................................................................. 7  3.a.4 Zona de Desbordamiento con Cubetas ................................................................................... 7 3.a.5 Otras Estructuras de Datos ......................................................................................................8  3.b Técnicas de Manejo de Colisiones ................................................................................... 8  3.b.1 Búsqueda Lineal .......................................................................................................... ............ 9  3.b.2 Búsqueda Lineal Extendida ..................................................................................................... 9  3.b.3 Doble Hashing.......................................................................................................................... 9 3.b.4 Uso de Cubetas ..................................................................................................................... 10  3.b.5 Encadenamiento de Sinónimos ............................................................................................. 10  4. CONSIDERACIONES DE DISEÑO ....................................... ............................................. 10  4.a Eficiencia ........................................................................................................ ................ 10  4.b Inicialización ................................................................................................................... 11  4.c Mantenimien to ........................................................................................................ ........ 11  4.d Criterios ...................................................................................................................... .... 11  5. APL ICACIONES ................................................................................................................. 12  5.a Tendenc ias Tecnológ icas ........................................ .................................................. ..... 12  5.b Ejemplos de Aplicaci ones ........ .............................................................................. ......... 12  

7-Conceptos de Hashing

  • Upload
    clrduno

  • View
    725

  • Download
    0

Embed Size (px)

Citation preview

5/10/2018 7-Conceptos de Hashing - slidepdf.com

http://slidepdf.com/reader/full/7-conceptos-de-hashing 1/13

 

Universidad de Oriente- Núcleo de AnzoáteguiPOST GRADO INFORMÁTICA GERENCIALCURSO : ORGANIZACIÓN DE ARCHIVOS

Conceptos de Hashing

Profesor Dr. Ing. Roberto Saettone 2005 Página 

1. HASHING ............................................................................................................................2. CONCEPTOS DE HASHING ..............................................................................................

2.a Clave .............................................................................................................................

2.b Función Hash.................................................................................................................2.c Ejemplos de Función Hash ............................................................................................

2.c.1 Truncamiento ........................................................................................................................2.c.2 Módulo ...................................................................................................................................2.c.3 Función Centro de Cuadrados ..............................................................................................2.c.4 Plegamiento ..........................................................................................................................2.c.5 Multiplicación .........................................................................................................................

2.d Colisión ..........................................................................................................................2.e Zonas Primaria y Secundaria ........................................................................................2.f Factor de Carga ..............................................................................................................2.g Capacidad de Registro Primario ....................................................................................

2.h Tasa de Colisiones ........................................................................................................3. ADMINISTRACIÓN DE LAS COLISIONES ........................................................................

3.a Organización de Archivo ................................................................................................3.a.1 Zona Primaria .......................................................................................................................3.a.2 Zona Secundaria o de Desbordamiento ...............................................................................3.a.3 Cubetas o "buckets" ..............................................................................................................3.a.4 Zona de Desbordamiento con Cubetas ................................................................................3.a.5 Otras Estructuras de Datos ...................................................................................................

3.b Técnicas de Manejo de Colisiones ................................................................................3.b.1 Búsqueda Lineal ...................................................................................................................3.b.2 Búsqueda Lineal Extendida ..................................................................................................

3.b.3 Doble Hashing ......................................................................................................................3.b.4 Uso de Cubetas ....................................................................................................................3.b.5 Encadenamiento de Sinónimos ............................................................................................

4. CONSIDERACIONES DE DISEÑO .................................................................................... 4.a Eficiencia .......................................................................................................................4.b Inicialización ..................................................................................................................4.c Mantenimiento ...............................................................................................................4.d Criterios .........................................................................................................................

5. APLICACIONES ................................................................................................................. 5.a Tendencias Tecnológicas ..............................................................................................5.b Ejemplos de Aplicaciones ..............................................................................................

5/10/2018 7-Conceptos de Hashing - slidepdf.com

http://slidepdf.com/reader/full/7-conceptos-de-hashing 2/13

 

Universidad de Oriente- Núcleo de AnzoáteguiPOST GRADO INFORMÁTICA GERENCIALCURSO : ORGANIZACIÓN DE ARCHIVOS

Conceptos de Hashing

Profesor Dr. Ing. Roberto Saettone 2005 Página 

1. HASHINGEs un método que permite encontrar, con el mínimo esfuerzo, una clave dada dentro

un conjunto de elementos. También se denomina método de "transformación de claves","direccionamiento calculado", "direccionamiento asociativo" o de "dispersión".

En la técnica de hashing se aplican cálculos o transformaciones aritméticas sobre laclave para producir directamente una dirección en una tabla o archivo de acceso directo. Poejemplo:

El método de direccionamiento por hashing tiene las siguientes características generales:

Buena velocidad de búsqueda sin necesidad de tener los datos ordenados El tiempo de búsqueda es prácticamente independiente de la cantidad de datos Dentro del espacio de direccionamiento, hay posiciones vacías

2. Conceptos de Hashing

2.a Clave La clave contiene el valor que permite ubicar, mediante la función Hash, la posición o

registro que contiene el resto de información asociada. Normalmente la clave es el campo qidentifica en forma única la información. Por ejemplo:

Cédula de Identidad Registro de Información Fiscal Placa o Matrícula de Vehículo

2.b Función Hash Es un algoritmo o transformación que, aplicado a la clave, devuelve la posición del detino en donde podemos ubicar o recuperar el elemento que contiene dicha clave. Normalmete consta de tres partes :

1. Transformación: Si la clave no es numérica se convierte en un número. Con frecuencse utiliza el valor ASCII de cada caracter y luego se aplican operaciones matemáticaspara obtener un número entero.

Clave

Datos

1 Mariana2 .

3 Cristina4 .5 .6 Mónica

3Algoritmo deHashing

Cristina

Hashing o Transformación de Clave

5/10/2018 7-Conceptos de Hashing - slidepdf.com

http://slidepdf.com/reader/full/7-conceptos-de-hashing 3/13

 

Universidad de Oriente- Núcleo de AnzoáteguiPOST GRADO INFORMÁTICA GERENCIALCURSO : ORGANIZACIÓN DE ARCHIVOS

Conceptos de Hashing

Profesor Dr. Ing. Roberto Saettone 2005 Página 

2. Generación: El número generado se procesa con un algoritmo que trata de uniformizla distribución de las claves en el rango de direcciones.

3. Compresión: Se comprime el número obtenido multiplicándolo por un factor para adecuarlo a la capacidad de almacenamiento disponible.

La función Hash debe definirse al momento de diseñar el sistema y su selección tienegran incidencia en rendimiento del sistema. Una buena función Hash debe tener las siguiencaracterísticas:

1. Sencilla, de manera que sea fácil de codificar y minimice el tiempo de cálculo.

2. Distribución Uniforme de las direcciones tratando que la generación distribuya en foma aleatoria las claves y evite agrupamientos.

3. Dispersión, dadas las claves X, Y, Z tal que X < Y < Z, no necesariamenteHash(X) < Hash(Y) < Hash(Z).

Para elegir una función de hashing, entonces, hay que tomar en cuenta: Rango o espacio de direcciones Tipo de clave (alfanumérica o numérica) Semántica de la clave (cómo se presente la clave, simple o compuesta y variabilidad de

sus valores)La idea es seleccionar una función que permita obtener una distribución con el mayo

grado de uniformidad posible para evitar colisiones. 

2.c Ejemplos de Función Hash Se presentan a continuación algunas funciones Hash y ejemplos.

2.c.1 TruncamientoSe ignora una parte de la clave y se usa la parte restante directamente como el índi

El truncamiento es un método veloz, pero con frecuencia no logra distribuir las claves unifmemente. Por ejemplo:

Si se tienen 800 posiciones y la clave es numérica de 8 dígitos, se toman en cuesolo 3 dígitos y se aplica un factor de compresión de 0.8:

6 2 5 3 8 1 9 4 Posición resultante: 394*0.8= 315   

2.c.2 MóduloConsiste en tomar el residuo de la división de la clave entre el número de component

del arreglo. La función Hash queda definida por la siguiente fórmula:

Hash(K) = (K mod N) + 1Se recomienda que N sea el número primo inmediato inferior al número total de ele-

mentos. 

2.c.3 Función Centro de CuadradosConsiste en elevar al cuadrado la clave y tomar los dígitos centrales como dirección.

numero de dígitos a tomar queda determinado por el rango del índice. La función Hash quedefinida por la siguiente fórmula:

Hash(K) = digitos_centrales (K²) + 1

5/10/2018 7-Conceptos de Hashing - slidepdf.com

http://slidepdf.com/reader/full/7-conceptos-de-hashing 4/13

 

Universidad de Oriente- Núcleo de AnzoáteguiPOST GRADO INFORMÁTICA GERENCIALCURSO : ORGANIZACIÓN DE ARCHIVOS

Conceptos de Hashing

Profesor Dr. Ing. Roberto Saettone 2005 Página 

2.c.4 PlegamientoConsiste en dividir la clave en partes de igual numero de dígitos (la ultima puede tene

menos dígitos) y operar con ellas, tomando como dirección los dígitos menos significativos. operación entre las partes puede hacerse por medio de sumas o multiplicaciones. Por ejemplo:

Un entero de 8 dígitos puede dividirse en grupos de 3, 3 y 2 dígitos, se suman los gpos y se trunca si es necesario:

Alternativa A62538194 = 625 + 381 + 94 = 1100 110

Alternativa By luego

Esta técnica realiza una mejor dispersión que el truncamiento.

2.c.5 MultiplicaciónHash (k) = int (M * fracc (k*Phi))

donde:M es el número primo inmediatamente menor que el tamaño de la zona primaria.int (x) es el mayor entero que es menor o igual a x

fracc (x) = x – int (x)Phi = 0.618034 => numero de oro Phi = [√(5) – 1] / 2

Ejemplo para M = 593

Hash(5) = int (593 * fracc (5 * 0.618034)) Hash (2) = int (593 * fracc (2 * 0.618034))= int (593 * (3.090670 – 3)) = int (593 * (1.236068))= int (593 * 0.90670) = int (593 * 0.236068)= 537 = 139

Hash(15) = 160, Hash(20) = 213, Hash(25) = 267, Hash(30) = 320

2.d Colisión Es posible que al aplicar el algoritmo de hashing o de transformación a dos valores di

ferentes, dé como resultado el mismo número de posición, resultando en una colisión. Sedice que las claves que generan la misma posición son sinónimos.

Los algoritmos para manejar las operaciones de Agregar, Buscar, Eliminar y Modificadeben prever el caso de una colisión: Al AGREGAR, se debe verificar que la posición resultante del algoritmo de hashing, no

esté ocupada por otra clave. Al BUSCAR, se debe verificar que la posición resultante del algoritmo de hashing contien

el valor buscado. Al MODIFICAR la CLAVE, cambia la posición, entonces se debe Eliminar el valor anterio

y Agregar el nuevo valor.

3819452680794

80497

477

5/10/2018 7-Conceptos de Hashing - slidepdf.com

http://slidepdf.com/reader/full/7-conceptos-de-hashing 5/13

 

Universidad de Oriente- Núcleo de AnzoáteguiPOST GRADO INFORMÁTICA GERENCIALCURSO : ORGANIZACIÓN DE ARCHIVOS

Conceptos de Hashing

Profesor Dr. Ing. Roberto Saettone 2005 Página 

2.e Zonas Primaria y Secundaria Para manejar las colisiones, se deben prever donde se van a guardar las claves que

produjeron colisiones. Generalmente se consideran dos zonas: ZONA PRIMARIA ZONA SECUNDARIA

2.f Factor de Carga El Factor de Carga o Densidad Primaria, es la proporción entre la cantidad de regis

tros de la zona primaria que están ocupados dividida por el número total de registros en lazona primaria.

Al diseñar el tamaño de la zona primaria en función del número máximo de registrosque se esperan registrar, el Factor de Carga estimado debe estar entre 0,5 y 0,8.

A mayor tamaño de la zona primaria, disminuye el Factor de Carga pero se desperdicespacio.

Un menor  tamaño de la zona primaria aumenta el Factor de Carga pero se aumenta lprobabilidad de que ocurran colisiones.

2.g Capacidad de Registro Primario Es el número de registros lógicos que hay en un registro físico. Al aumentar la capaci

dad de los registros físicos, disminuye la tasa de colisiones.

2.h Tasa de Colisiones Es la probabilidad de que al agregar un nuevo registro, se encuentre la dirección en l

zona primaria ocupada y haya que registrarlo en la zona de desbordamiento. Al aumentar latasa de colisiones, disminuye la eficiencia del sistema.

El analista de sistemas selecciona el mejor compromiso entre la densidad primaria y capacidad de registro primario para obtener la tasa de colisiones deseada.

5/10/2018 7-Conceptos de Hashing - slidepdf.com

http://slidepdf.com/reader/full/7-conceptos-de-hashing 6/13

 

Universidad de Oriente- Núcleo de AnzoáteguiPOST GRADO INFORMÁTICA GERENCIALCURSO : ORGANIZACIÓN DE ARCHIVOS

Conceptos de Hashing

Profesor Dr. Ing. Roberto Saettone 2005 Página 

3. Administración de las ColisionesDos claves K1 y K2 son sinónimas si la dirección calculada por la función Hash es la

misma para ambas. Si K1 es almacenada primero en el archivo y su dirección es Hash(K1),entonces se dice que K1 esta almacenada en su dirección de origen. Si luego se va a almacnar K2 , se encuentra que la dirección de origen está ocupada, ocurriendo una colisión.

La administración de las colisiones representa el mayor inconveniente del direcciona-miento por hashing. A la hora de diseñar el sistema, se deben definir dos aspectos para ma-nejar las colisiones:

La organización de archivo y su estructura de datos

El método o estrategia para tratar las colisiones

Ambos aspectos están interrelacionados.

3.a Organización de Archivo 

Desde punto de vista de la Organización de Archivo, existen varias soluciones paraalmacenar las colisiones:

3.a.1 Zona PrimariaLa solución más sencilla es almacenar las colisiones en la misma zona de direcciona

miento utilizada para almacenar todos los datos. Esta zona se denomina Zona Primaria oPrincipal.

3.a.2 Zona Secundaria o de Desbordamiento 

Se define una zona al final de la tabla para almacenar las claves que produjeron coli-sión. Esta zona se denomina zona de desbordamiento ("overflow") o zona secundaria. Cuando se produce una colisión en la zona primaria, se utiliza la siguiente posición disponible en zona secundaria.

Zona Primaria

Zona Desbordamiento

 

Zona Primaria

5/10/2018 7-Conceptos de Hashing - slidepdf.com

http://slidepdf.com/reader/full/7-conceptos-de-hashing 7/13

 

Universidad de Oriente- Núcleo de AnzoáteguiPOST GRADO INFORMÁTICA GERENCIALCURSO : ORGANIZACIÓN DE ARCHIVOS

Conceptos de Hashing

Profesor Dr. Ing. Roberto Saettone 2005 Página 

3.a.3 Cubetas o "buckets"Esta solución para almacenar las colisiones consiste en colocar más de un registro e

una dirección. A diferencia de los casos anteriores donde cada dirección almacena únicamete un registro, en este caso, cada registro físico almacena varios registros "lógicos". Este cocepto se basa en "buckets" o cubetas de datos en cada dirección.

3.a.4 Zona de Desbordamiento con CubetasEsta solución para almacenar las colisiones combina las dos organizaciones anterior

previendo varios registros lógicos por cada registro físico y una zona de desbordamiento quse utiliza cuando todos los registros lógicos están ocupados y ocurre una nueva colisión.

Registro Físico 

Varios Registros Lógicos

Registro Físico 

Varios Registros Lógicos

Zona Desbordamiento

5/10/2018 7-Conceptos de Hashing - slidepdf.com

http://slidepdf.com/reader/full/7-conceptos-de-hashing 8/13

 

Universidad de Oriente- Núcleo de AnzoáteguiPOST GRADO INFORMÁTICA GERENCIALCURSO : ORGANIZACIÓN DE ARCHIVOS

Conceptos de Hashing

Profesor Dr. Ing. Roberto Saettone 2005 Página 

 

3.a.5 Otras Estructuras de Datos

Existe una infinidad de soluciones mucho más complejas que no trataremos aquí pueescapan al objetivo de este curso. En general estas soluciones utilizan estructuras de datosque manejan:

Apuntadores

Listas Enlazadas o Encadenadas

para relacionar la clave en su dirección de origen con las colisiones en otras direccio-nes ubicadas en la misma zona primaria o en la zona de desbordamiento.

3.b Técnicas de Manejo de Colisiones Las técnicas para el manejo de colisiones están relacionadas con la organización dearchivo o estructura de datos seleccionada.

De acuerdo a la ubicación donde se almacenan las colisiones, se clasifican en:

1. Técnicas de Direccionamiento Abierto en la Zona Primaria

Los sinónimos se ubican en la misma zona de direccionamiento utilizada para almacenar todos los datos. Esta zona se denomina Zona Primaria o Principal. Se solucionan las cosiones buscando celdas alternativas hasta encontrar una vacía dentro de la misma tabla.

2. Uso de Área Separada de Desbordamiento (Overflow)

Los sinónimos se ubican fuera del área principal del archivo, en un área especial dedesbordamiento (Zona Secundaria).

3. Técnicas de Direccionamiento Cerrado

Los sinónimos se relacionan mediante una lista que los encadena mediante apuntadores. Lubicación de los sinónimos puede ser en la Zona Primaria o en la Zona Secundaria.

5/10/2018 7-Conceptos de Hashing - slidepdf.com

http://slidepdf.com/reader/full/7-conceptos-de-hashing 9/13

 

Universidad de Oriente- Núcleo de AnzoáteguiPOST GRADO INFORMÁTICA GERENCIALCURSO : ORGANIZACIÓN DE ARCHIVOS

Conceptos de Hashing

Profesor Dr. Ing. Roberto Saettone 2005 Página 

3.b.1 Búsqueda LinealEsta es una técnica de direccionamiento abierto en la Zona Primaria. Cuando la direc

ción original está ocupada (colisión) se busca una dirección alternativa vacía. Esta técnica etambién conocida como método de desbordamiento consecutivo.

La búsqueda de un lugar vacío se realiza en forma secuencial comenzando en la direción siguiente a la original. El espacio de direcciones se hace circular. Si en el proceso debúsqueda se llega al final del archivo, se continúa en la primera posición. Por ejemplo:

dir = Hash(x)Repetir hasta que dir = "libre" 

dir = dir + 1Si dir > finarchivo 

dir = 1Finsi 

Finhasta 

Para la búsqueda de un registro por hashing con sondeo lineal, los valores de clave dlos registros encontrados en la dirección de origen, y en las direcciones alcanzadas con elsondeo lineal, deberá compararse con el valor de la clave buscada, para determinar si el re-gistro objetivo ha sido localizado o no.

El sondeo lineal, aunque es muy sencillo, no es muy eficiente si la tasa de colisiones alta. Las desventajas que tiene este método son: el tiempo que se tarda en encontrar una ceda vacía y la formación de bloques de celdas ocupadas, llamada efecto agrupamiento primario . A causa de este efecto, cualquier clave que se disperse en un agrupamiento realizará varios intentos para resolver la colisión, y agrandará el agrupamiento.

3.b.2 Búsqueda Lineal ExtendidaEsta técnica es similar a la anterior pero utiliza la Zona Secundaria. Cuando la direcci

original está ocupada (colisión) se busca una dirección vacía en la zona secundaria o de debordamiento ("overflow"). De esta manera se evita el efecto de agrupamiento primario.

Cuando se realiza una búsqueda para recuperar la información, se debe realizar unabúsqueda secuencial en la zona secundaria cuando la clave en la zona primaria no concuercon la que estamos buscando.

3.b.3 Doble HashingEn esta técnica, cuando se encuentra una colisión al aplicar la función Hash a la clav

se aplica una segunda función Hash para combinar la clave original con el resultado de la pmera función Hash y se aplica luego una operación matemática.Por ejemplo:

a) multiplicación por un número entero b) Suma de número primo i = 0 i = 0 dir = Hash(x) dir = Hash(x)Repetir hasta que dir = "libre" Repetir hasta que dir = "libre" 

i = i + 1 dir = i * primo + Hash2(x)dir = i * Hash2(x) i = i + 1

Finhasta Finhasta 

5/10/2018 7-Conceptos de Hashing - slidepdf.com

http://slidepdf.com/reader/full/7-conceptos-de-hashing 10/13

 

Universidad de Oriente- Núcleo de AnzoáteguiPOST GRADO INFORMÁTICA GERENCIALCURSO : ORGANIZACIÓN DE ARCHIVOS

Conceptos de Hashing

Profesor Dr. Ing. Roberto Saettone 2005 Página 

 Aplicando esta técnica se consiguen buenos resultados, aunque es más compleja y,

por lo tanto, más lenta que otras soluciones. Se recomienda que el tamaño de la Zona Prima

ria sea un número primo.3.b.4 Uso de Cubetas

Con el uso de cubetas o "buckets", definiendo varios registros lógicos por cada registfísico, el concepto de colisión sigue siendo el mismo, solo que no es problema mientras hayregistros disponibles en la cubeta. Cuando la cubeta se llena vuelve a aparecer el problemade colisión (desbordamiento) y podemos utilizar cualquiera de las técnicas mencionadas anriormente.

En todo caso, el problema de desbordamiento que obliga a buscar espacio en otro registro se da con menor frecuencia al usar una cubeta con tamaño mayor que 1 (uno). El tiempo de búsqueda aumenta en la cubeta pero disminuye el tiempo en comparación con el de

acceso a disco.Si llamamos K al número de registros en el archivo, C a la capacidad de cada cubetaN la cantidad de datos que se quieren almacenar, se puede calcular la densidad primaria ofactor de carga (DP) como:

DP = K / (C * N)Si la densidad de empaquetamiento supera el 70% las colisiones son demasiado fre-

cuentes. Para calcular el número de registros de desbordamiento esperados se puede utilizla función de Poisson.

N! 1 1Prob(x) = --------------------- (----) (1 - -----)n-x 

X! (N-x)! M M

Se observa a través de ella que el uso de cubetas disminuye notablemente el porcent je de desbordamiento mejorando el rendimiento.

3.b.5 Encadenamiento de SinónimosUna buena manera de mejorar la eficiencia de un archivo que utiliza hashing, es el en

cadenamiento de sinónimos. Mantener una lista enlazada de registros, con la misma direccide origen, no reduce el número de colisiones, pero reduce los tiempos de acceso para recuprar los registros que no se encuentran en su localidad de origen.

El encadenamiento de sinónimos puede emplearse con cualquier técnica de soluciónde colisiones. Cuando un registro debe ser recuperado del archivo, solo los sinónimos de laclave objetivo son accesados.

Una posibilidad adicional es mantener una lista encadenada de los registros vacíos,que se utiliza cuando se busca una dirección libre para almacenar un sinónimo, en vez de ulizar una búsqueda lineal.

4. Consideraciones de Diseño

4.a Eficiencia Los principales factores que afectan la eficiencia y que deben ser tomados en cuenta

por el analista de sistemas son: El tamaño de la cubeta. ¿Cuantos registros lógicos?

5/10/2018 7-Conceptos de Hashing - slidepdf.com

http://slidepdf.com/reader/full/7-conceptos-de-hashing 11/13

 

Universidad de Oriente- Núcleo de AnzoáteguiPOST GRADO INFORMÁTICA GERENCIALCURSO : ORGANIZACIÓN DE ARCHIVOS

Conceptos de Hashing

Profesor Dr. Ing. Roberto Saettone 2005 Página 

El factor de carga o densidad de la zona primaria (entre 50% y 80%).

El algoritmo utilizado por la función Hash.

El método utilizado para manejar las colisiones.

El siguiente gráfico puede ser utilizado para predecir la cantidad de colisiones en fun-ción de la capacidad de la cubeta (bucket) y la densidad primaria.

4.b Inicialización La rutina de inicialización del archivo debe realizar las siguientes funciones:

Inicializar cada registro físico y lógico, marcándolos como vacío o libre.

Inicializar el apuntador que indica donde empieza la zona secundaria, si existe.

Inicializar a cero el contador de registros en la zona secundaria.

4.c Mantenimiento Luego de muchas inserciones y eliminaciones (altas y bajas) es lógico esperar cierto

deterioro en la performance. Aumentan los registros 'antes usados' los registros sinónimosquedan innecesariamente alejados de su dirección de origen. Una opción posible es realizauna reorganización local (en el bucket o la lista en cuestión) cada vez que se da una baja, pra determinar si es posible acortar las búsquedas.

También es posible reorganizar el archivo en su totalidad cuando se llega a una longtud de búsqueda inaceptable o cambiar el método de manejo de colisiones.

4.d Criterios Los siguientes factores pueden ser tomados en cuenta para decidir si es conveniente

use de direccionamiento por hashing en una aplicación:

5/10/2018 7-Conceptos de Hashing - slidepdf.com

http://slidepdf.com/reader/full/7-conceptos-de-hashing 12/13

 

Universidad de Oriente- Núcleo de AnzoáteguiPOST GRADO INFORMÁTICA GERENCIALCURSO : ORGANIZACIÓN DE ARCHIVOS

Conceptos de Hashing

Profesor Dr. Ing. Roberto Saettone 2005 Página 

Necesidad de ahorrar espacio de almacenamiento

Frecuencia de uso

Frecuencia de Actualización Tiempo de respuesta requerido

Volatilidad de la Información (Vida útil)

Crecimiento o capacidad de expansión

Vulnerabilidad, Integridad, Recuperación de Fallas

Grado de Simplicidad o Complejidad

Transportabilidad, Independencia Hardware - Software

Requiere reportes con datos ordenados ?

5. Aplicaciones

5.a Tendencias Tecnológicas 

La capacidad de los dispositivos de almacenamiento en línea, tales como unidades de dco duro, aumenta continuamente. Actualmente es posible adquirir en el mercado unidadde varios centenares de Gigabytes.

El costo de almacenamiento de la información disminuye regularmente, debido a la dismnución de costos de las unidades de almacenamiento debido a la masificación y al aumeto en la capacidad de cada una.

Los requerimientos de almacenamiento de las aplicaciones tiende a aumentar pues man jan informaciones más amplias, debido en parte a la globalización de la información. Es

normal que una aplicación que maneja información internacional requiera varios Terabytde almacenamiento en línea.

El incremento en el uso de las telecomunicaciones y las aplicaciones teleinformáticas re-quieren menor tiempo de respuesta a una solicitud.

5.b Ejemplos de Aplicaciones En la actualidad, la técnica de direccionamiento aplicando hashing es muy utilizada,

especialmente para localizar rápidamente una información cuando la cantidad de datos esmuy grande o el tiempo de respuesta requerido es muy corto.

Podemos mencionar algunas de las aplicaciones conocidas en que se aplica de direccionamiento por hashing:

Genoma Humano

Direcciones IP en Internet

Directorio de Información en CD o DVD

Base de Datos de Huellas Digitalizadas

Verificación de Firmas Digitales

SQL Server 

5/10/2018 7-Conceptos de Hashing - slidepdf.com

http://slidepdf.com/reader/full/7-conceptos-de-hashing 13/13

 

Universidad de Oriente- Núcleo de AnzoáteguiPOST GRADO INFORMÁTICA GERENCIALCURSO : ORGANIZACIÓN DE ARCHIVOS

Conceptos de Hashing

Profesor Dr. Ing. Roberto Saettone 2005 Página 

Páginas en Cache de Proxy Server 

Validación de tarjetas de crédito