Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
Cátedra de Bases de Datos
Facultad de Ciencias Exactas y Tecnología
Universidad Nacional de Tucumán
Ciclo Lectivo 2019
ARCHIVOS HASH
BASES DE DATOS
Bases de Datos Ing. Cristian H. Lafuente
HASH se refiere a una función o método para generar claves o llaves que representen de manera
casi unívoca a un documento, registro, archivo, etc., resumir o identificar un dato a través de la
probabilidad, utilizando una función hash o algoritmo hash. Un hash es el resultado de dicha
función o algoritmo.
Una FUNCIÓN DE HASH es una función para resumir o identificar probabilísticamente un gran
conjunto de información, dando como resultado un conjunto imagen finito generalmente menor
(un subconjunto de los números naturales por ejemplo). Varían en los conjuntos de partida y de
llegada y en cómo afectan a la salida similitudes o patrones de la entrada. Una propiedad
fundamental del hashing es que si dos resultados de una misma función son diferentes, entonces
las dos entradas que generaron dichos resultados también lo son.
Son usadas en múltiples aplicaciones, como los arrays asociativos, criptografía, procesamiento de
datos y firmas digitales, entre otros.
Una buena función de hash es una que experimenta pocas colisiones en el conjunto esperado
de entrada; es decir que se podrán identificar unívocamente las entradas.
BASES DE DATOS
Bases de Datos Ing. Cristian H. Lafuente
Una TABLA HASH o MAPA HASH es una estructura de datos que asocia llaves o claves con
valores. La operación principal que soporta de manera eficiente es la búsqueda: permite el acceso
a los elementos (teléfono y dirección, por ejemplo) almacenados a partir de una clave generada
(usando el nombre o número de cuenta, por ejemplo). Funciona transformando la clave con una
función hash en un hash, un número que la tabla hash utiliza para localizar el valor deseado.
BASES DE DATOS
Bases de Datos Ing. Cristian H. Lafuente
La idea de la función hash es reducir el rango de índices que necesitan ser manejados. En vez
de un universo, se necesitan solo m valores.
El problema de esta política es que dos llaves podrían ser asignadas al mismo slot – una
colisión.
Para resolver esta situación se puede utilizar técnicas de desborde por ejemplo la técnica de
encadenamiento.
BASES DE DATOS
Bases de Datos Ing. Cristian H. Lafuente
EJERCICIO 4: Se tiene la siguiente lista de apellidos de la clase de Base de Datos de
la UNT: Soto, Escobar, Miranda, Brito, Negrete, Moyano, Quiroga, Díaz, Brizuela,
Cortes, Quint, Altamirano. Contamos a su vez con un buffer de I/O de 1024 bytes.
Se pide organizar esta lista en un archivo único con una estructura HASH, que posea 4
entradas, cada una con registro de 330 bytes y un puntero de 15 bytes. La función
Hash a utilizar será la siguiente «largo de palabra MOD 4».
Se debe:
1.Determinar cantidad de registros por bucket.
2.Ingresar los datos utilizado la técnica de desborde encadenada y rehashing.
3.Graficar la estructura
4.Indicar tiempos de recuperación.
BASES DE DATOS
Bases de Datos Ing. Cristian H. Lafuente
1 - Determinar la cantidad de registros por Bucket
Se divide la capacidad del buffer por el tamaño de los registros.
1024/330=3 (tres registros por bucket)
1024 bytes – 990 bytes = 34 bytes
El resto que tenemos es 34bytes. De los cuales 1 byte se utiliza para los 3 bits que
indican si la posición del bucket esta vacío o no. (0 o 1). 15 bytes se utiliza para puntero
(indicado en el enunciado)
1 byte + 15 bytes = 16 bytes usados
BASES DE DATOS
Bases de Datos Ing. Cristian H. Lafuente
2- Ingresar los datos utilizado la técnica de desborde encadenada.
Técnica de desborde encadenada. La Función H(x)=«largo de palabra MOD 4».
BASES DE DATOS
H(Soto)=0
H(Escobar)=3
H(Miranda)=3H(Brito)=1H(Negrete)=3
H(Moyano)=2H(Quiroga)=3
H(Díaz)=0
H(Brizuela)=0
H(Cortes)=2
H(Quint)=1
H(Altamirano)=2
Bases de Datos Ing. Cristian H. Lafuente
2- Ingresar los datos utilizado la técnica de desborde rehashing.
Técnica de desborde encadenada. La Función H(x)=«largo de palabra MOD 4».
BASES DE DATOS
H(Soto)=0
H(Escobar)=3
H(Miranda)=3
H(Brito)=1
H(Negrete)=3
H(Moyano)=2
H(Díaz)=0
H(Brizuela)=0
H(Cortes)=2
H(Quint)=1
H(Altamirano)=2
H(Quiroga)=3 – slot lleno – aplico rehashing
Bases de Datos Ing. Cristian H. Lafuente
BASES DE DATOS
4 - Indicar tiempos de recuperación
El tiempo promedio para la recuperación de un registro es el siguiente:
•Desborde encadenado:
TATH + (TAMS + TBB) * 2= 1 + ( k + 3/2)*2= 4 + 2k
•Desborde con rehashing:
Sin desborde: TATH + TAMS + TBB= 1 + k + 3/2= 2,5 + k
Con desborde: (TATH + TAMS + TBB)*2= (1 + k + 3/2)*2= 5 + 2k
Bases de Datos Ing. Cristian H. Lafuente
Introducción al modelado de datos –
Abstracción.
BASES DE DATOS
Bases de Datos Ing. Cristian H. Lafuente
Modelo de datos: es un conjunto de herramientas conceptuales que permiten describir la
información que es necesario administrar de un sistema y las relaciones entre esos datos.
Abstracción: consiste en aislar un elemento de su contexto o del resto de los elementos
que lo acompañan.
Es un proceso que permite seleccionar algunas características de un conjunto de objetos
del mundo real, dejando de lado aquellos rasgos que no son de interés.
Ejemplo:
silla -> visión cliente (material de fabricación, tipo respaldo, posee ruedas o no)
visión cliente2 (tipo de patas, comodidad)
BASES DE DATOS
Bases de Datos Ing. Cristian H. Lafuente
• La abstracción de algo posee dos cualidades: suprime los detalles irrelevantes y busca
para aislar la esencia de ese algo.
• Simplificación de los hechos.
Ejemplo: Archivo de empleados(sueldos).
Datos útiles: nombre, nomina, sueldo, etc.
Datos no útiles: color de pelo, peso, etc.
BASES DE DATOS
Bases de Datos Ing. Cristian H. Lafuente
Los tipos de Abstracción:
Clasificación: es la acción de abstraer las características comunes a un conjunto de
ejemplares para crear una categoría a la cual pertenecen.
Agregación: Establece una relación ES_PARTE_DE entre los elementos componentes y el
elemento compuesto.
Generalización: Es la acción de abstraer las características más comunes entre varias
clases con el fin de crear una clase superior que las comprenda a todas. Entre los elementos
subclase y el elemento superclase se establece una relación del tipo ES_UN. Todo ejemplar
de una subclase además de poseer todos las características especificas de ella, hereda toda
las características de la superclase
Asociación: es una abstracción que se utiliza para relacionar dos o más clases, creándose
un elemento de un tipo distinto. El nuevo elemento no esta compuesto, como en el caso de
la agregación, por los elementos que asocia. En la agregación puede existir herencia, no así
en la asociación
BASES DE DATOS
Bases de Datos Ing. Cristian H. Lafuente
Situación Problemática
La empresa IMDS nos contrata para llevar a cabo la tarea de manejo de la información
de las máquinas que se encuentra en su establecimiento. Para ello se procedió a
recolectar la siguiente información: del Monitor se obtuvieron la marca, modelo, nro. de
serie; del gabinete se obtuvo motherboard, memoria, disco, unidad óptica,
microprocesador, departamento en el cual se encuentra. Del departamento, su ubicación
en el edificio, nombre, teléfono, responsable del mismo.
Se Pide realizar la abstracción de la información dada.
BASES DE DATOS
Bases de Datos Ing. Cristian H. Lafuente
Sitio Web de la Cátedra http://catedras.facet.unt.edu.ar/bd
BASES DE DATOS