Вы находитесь на странице: 1из 6

HASHING DINMICO: Bsqueda dinmica por transformacin de claves

LA principal caracterstica del Hashing dinmico es su dinamismo para variar el


nmero de cunetas en funcin de su densidad de ocupacin. Se comienza a
trabajar con nmero determinado de cubetas, y a medida que stas se van
llenando se asignan nuevas cubetas. Existen bsicamente dos formas de trabajar
con el Hashing dinmico:
Por medio de expansiones totales
Por medio de expansiones parciales

Mtodo de las expansiones totales
Consiste en duplicar el nmero de cubetas en medida en que ests superan la
densidad de ocupacin previamente establecida. As por ejemplo, si el nmero
inicial de cubetas es N, y se hace una expansin total, el nuevo nmero de
cubetas ser 2N, si se hace una nueva expansin total ser de 4N el nmero de
cubetas, y as sucesivamente.
Tambin es aplicable en sentido contrario, es decir, que si la densidad de
ocupacin de las cubetas disminuye, se reduce el nmero de estas, as se aplica
el dinamismo en cuanto a que se puede aumentar el espacio de almacenamientos,
como tambin se puede reducir si la demanda del espacio as lo indica.
Densidad de ocupacin: La densidad de ocupacin se calcula como el cociente
entre el nmero de registros ocupados y el nmero de registros disponibles.
Suponiendo que se tiene un archivo organizado en dos cubetas (N=2), y se ha
fijado una densidad de ocupacin del 80%, cada cubierta tiene 2 registros, y la
funcin hash que transforma claves en direcciones se define de la siguiente
manera:
Ejemplo:
Los valores 42, 24, 15 y 53 son las claves de los registros que se desea
almacenar. Inicialmente el archivo est vaco.
H(K) = K MOD Nmero de cubetas





Se muestra como quedan las cubetas despus de haber almacenado las 3
primeras claves, pero al almacenar la clave 53, se supera la densidad de
ocupacin puesto que quedara con 100% ocupado, por lo que se procede a
expandir y reasignar los registros considerando que ahora el nmero de cubetas
es igual a 2N.

Porcentaje de ocupacin
para expansin: 50%


Mtodo de expansiones parciales
Consiste en incrementar un 50% el nmero de cubetas, haciendo de esta
forma que dos expansiones parciales equivalgan a una total. As, por ejemplo,
si el nmero inicial de cubetas es N, y se hace una expansin parcial, el valor
resultante ser N*(N/2). Si se hacen otras expansiones parciales se obtendr
2N, luego #N, y as sucesivamente.
Ejemplo:
Los valores 42, 24, 15 y 53 son las claves de los registros que se desea
almacenar. Inicialmente el archivo est vaco. Suponiendo que hasta el
momento solo se han insertado las 3 primeras claves, cuando se quiere
insertar la clave 53, el nmero de registros supera el mximo permitido ya que
la densidad de ocupacin supera el 80%; por tal razn se realiza una
expansin parcial.

Porcentaje de ocupacin para
Expansin: 66.66%






Observe que en este caso el valor N no fue muy adecuado para distribuir
uniformemente los registros a travs de las cunetas. En la cubeta 0 se tiene
una colisin, mientras que en la cubeta 1 permanece vaca.

Suponiendo ahora que se desea incorporar los registros con claves
21, 12, 14, 18, 49, 128, 22 y 23.

Al insertar el registro con clave 21 se supera la densidad de ocupacin, por lo
que se deben expandir nuevamente las cubetas y reasignar los registros. Se
inserta a continuacin el registro con clave 14, otra vez se supera el porcentaje
de ocupacin permitido. Se vuelven a expandir las cubetas y a reasignar los
registros. El resultado final, luego de insertar todas las claves se muestra a
continuacin:
Porcentaje de ocupacin para expansin: 75%













LISTAS INVERTIDAS
Las listas invertidas trabajan sobre algunos de los atributos campos- de los
registros. Los atributos pueden estar o no invertidos; es decir, pueden ser o no
campos claves. Los atributos invertidos generan listas ordenadas de registros,
lo cual facilita las bsquedas que se hagan en ellas. Los atributos no invertidos
generan el universo, o sea para encontrar un determinado elemento registro-,
se deber realizar una bsqueda secuencial.
Las listas invertidas son muy recomendables cuando se trabaja sobre
combinaciones de campos clave. Cuando se requiere una combinacin de
atributos de atributos en la bsqueda, este mtodo resulta muy conveniente, ya
que con una secuencia ptima de operadores AND y OR la bsqueda se
puede llevar a cabo de forma eficiente.
La desventaja del mtodo es que requiere de una estructura muy complicada
para operar. Bsicamente trabaja sobre rboles B+ con prefijo.
Suponiendo que se tiene un archivo el cul almacena la siguiente informacin:
Nombre, profesin y edad y se tienen los datos de 6 personas:
NOMBRE PROFESIN EDAD
Juan Matemtico 32
Daniel Fsico 40
Jos Matemtico 25
Pascual Ingeniero 38
Felipe Abogado 35

Ejemplo:
Considerando que los atributos profesin y edad estn invertidos, a continuacin
se presentan algunas operaciones de bsqueda con sus correspondientes
resultados, para observar el funcionamiento del mtodo:
a) Lista de personas por profesin:

Matemticos [Juan, Jos]
Fsicos [Daniel]
Ingenieros [Pascual, Miguel]
Abogados [Felipe]
b) Lista de todas las personas con profesin matemtico o fsico, y con ms de 25
aos de edad:
(((profesin = matemtico)OR(profesin=fsico)AND(edad>25))

La lista formada segn el atributo profesin es:
[Juan, Jos, Daniel]

Sobre esta lista se aplicar la segunda condicin planteada en la bsqueda, de lo
que resulta:
[Juan, Daniel].
Ejemplo:
Suponiendo que se tienen listas L1, L2, L# de 1000, 5 y 100 elementos,
respectivamente. Si se necesita unir lsa 3 listas, el orden en el cual se hiciera la
unin sera determinante en cuanto al nmero total de elementos con los cuales
se trabaja.
1. (L1 U L2) U L3 = (1000 + 5) U L3
= 1005 + (1005 + 100) = 2110
2. (L1 U L3) U L2 = (1000 + 100) U L2
= 1100 + (1100 + 5) = 2205
3. (L2 U L3) U L1 = (5 + 100) U L1
= 105 + (105 + 1000) = 1210Es fcil observar que la mejor
secuencia es la tercera y el resultado es 1210; y que la peor secuencia es
la segunda y el resultado es 2205.

MULTILISTAS
Este mtodo de bsqueda multilistas permite acceder a la informacin que se
encuentra ordenada utilizando campos clave. A un registro se puede llegar por
diferentes caminos. Cada camino se establece en funcin del campo clave sobre
el cual se haga la bsqueda.

La forma ms eficiente de representar multilistas es utilizando listas.
Ejemplo:
Suponiendo que se tiene un archivo en el cual cada registro almacena la siguiente
informacin: Nombre, profesin, categora.

NOMBRE PROFESIN CATEGORIA
Juan Matemtico 1
Daniel Fsico 2
Jos Matemtico 2
Pascual Ingeniero 3
Miguel Ingeniero 1
Felipe Abogado 2


En este caso la informacin de cada individuo puede ser accesada por medio de
su profesin y de su categora, que son justamente los atributos que permiten
realizar bsqueda directa en el archivo. Como se puede observar en la figura se
tiene una lista por profesin y otra por categora.
En general, las multilistas son recomendables cuando la bsqueda se hace sobre
un solo atributo. En caso de necesitarse una combinacin de atributos es
preferible usar listas invertidas.

Вам также может понравиться