TEMA 3 TRANSFORMACIÓN DE CLAVES (HASHING)

Documentos relacionados
Estructura de datos y Algoritmos. Tema III Clasificación en memoria secundaria

Capítulo 3. Clasificación en Memoria Secundaria

Hashing (Funciones de Dispersión)

Es común al crear estructuras de datos y luego trabajar sobre las mismas, tener la necesidad de realizar búsquedas en forma más frecuente que la

El nivel Interno. Índice Tema 3

Esquema básico de una Tabla de Dispersión

1. Características de la organización direccionada 2. Tipos de organización direccionada 3. Funciones de Transformación 4. Gestión de desbordamientos

Archivos Indice. Indexación y. Asociación. Conceptos Básicos Indices Ordenados Arboles. Asociación. Docente: Albert A.

Francisco J. Hernández López

Almacenamiento y Recuperación de la Información

Algoritmos y Estructuras de Datos Ingeniería en Informática

Análisis y Diseño de Algoritmos Tablas de Hash

Tabla de Símbolos. Programación II Margarita Álvarez

Tabla de Símbolos. Programación II Margarita Álvarez

Tema 05: Tablas hash. M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom

Alonso Ramirez Manzanares Computación y Algoritmos 03.05

Registros Un campo: Registro:

localizar de un dato con un acceso directo y en una sola comparación de la llave. HASH

Algoritmos y Estructuras de Datos Curso 04/05. Ejercicios

Tema 6. Ordenación, búsqueda e intercalación interna

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 4. Técnicas de Dispersión. Definición y Manejo.

El TAD tabla y las tablas dispersas (o tablas hash) Lección 19

ESTRUCTURAS DE ARBOLES Y HASHING

Tema 10. Indexación y asociación

Determinantes. Concepto de determinante A cada matriz cuadrada A se le asigna un número denominado determinante de A, denotado por A o por det (A).

Tablas (Diccionarios). Modelo matemático

Tema 4: Determinantes

Tablas de Dispersión (Hashing Tables)

Modelo Físico. M. Andrea Rodríguez-Tastets. II Semestre Universidad de Concepción,Chile andrea

Indexación y Asociación

21 a Competencia de MateClubes Tercera Ronda 2018 Nivel Preolímpico

Para archivos, existen las siguientes organizaciones:

Tablas de dispersión (hash tables)

Estructuras de Datos. 8.6 Árboles B. Supongamos que los nodos de un árbol deben ser guardados en un medio de almacenamiento secundario (disco).

02/02/2012. El objetivo de este tema es dar unas nociones básicas del fichero electrónico.

Examen de Estructuras de Datos y Algoritmos. (Modelo 2)

Examen de Estructuras de Datos y Algoritmos. (Modelo 1)

Catedra de Base de Datos

Tema 3 Medidas de dispersión para datos no agrupados

1.4.3 Errores de redondeo y la aritmética finita de las computadoras

Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria

RADICACIÓN EN LOS REALES

else ADD(DELET E(t, s), s 1, i)

Sistemas y Aplicaciones Informáticas. Tema 14. Utilización de Ficheros según su Organización.

DISEÑO FÍSICO DE UNA BASE DE DATOS EDWIN FERNANDO PACHECO FIGUEROA LICENCIATURA EN INFORMÁTICA UNIVERSIDAD DE NARIÑO

Tema 1: Conceptos generales del Análisis Numérico

CALCULO NUMERICO (MB535) PRIMERA PRACTICA CALIFICADA (PARTE A)

Tablas de Dispersión

Lógica: Algoritmo: Archivo: Base de datos: Bit:

ARQUITECTURA DE COMPUTADORES. 2º INGENIERÍA INFORMÁTICA. SOLUCIONES Problemas de Gestión de Memoria Etiqueta Índice byte

Sistemas de Archivos Implementación. Módulo 11. Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur.

Electrotecnia General Tema 4 TEMA 4 CONDENSADORES

4. TABLAS. Una tabla esta ordenada, si las claves de información de los registros están ordenadas: k j < k j+1 (j=1,2,...)

ANÁLISIS SEMÁNTICO LA TABLA DE SÍMBOLOS

Colegio Diocesano San José de Carolinas

TEMA 4 NÚMEROS ENTEROS

Organización física de las bases de datos T

OCW-V.Muto El problema de mínimos cuadrados. Cap. XIX CAPITULO XIX. EL PROBLEMA DE LOS MINIMOS CUADRADOS: PRELIMINARES

FICHAS REPASO 3º ESO. Para restar números enteros, se suma al minuendo el opuesto del sustraendo y después se aplican las reglas de la suma.

bloque i ejes aprendizajes esperados sentido numérico y PensaMiento algebraico forma, espacio y Medida Manejo de la información Patrones y ecuaciones

CENTRO UNIVERSITARIO MONTEJO A. C. Temario de Matemáticas 3. Bloque I

Estadística Inferencial. Estadística Descriptiva

Bases de Datos Multimedia

Si u y v son vectores cualquiera en W, entonces u + v esta en W. Si c es cualquier numero real y u es cualquier vector en W, entonces cu esta en W.

ARQUITECTURA DE COMPUTADORES. 2º INGENIERÍA INFORMÁTICA. SOLUCIONES EJERCICIOS BOLETÍN TEMA 3 (Gestión de Memoria). Curso 04/05.

Gestión de archivos. Gestión de archivos

Gestión de archivos. Gestión de archivos. Gestión de archivos. Objetivo general

Estructuras de datos: Tablas de dispersión

Tema 1. Ordenación, búsqueda e intercalación interna

Tema 1: Representación de los números

MÉTODOS NUMÉRICOS - ALGUNAS INSTRUCCIONES EN DERIVE

Tema 5. Matrices y Determinantes

Optimización de Consultas

Una proporción, lo que se puede constatar porque los productos cruzados son iguales: 12 5 = 4 15

Arquitectura de Computadoras para Ingeniería

APLICACIONES DE LA ARITMÉTICA MODULAR

GESTIÓN DE ARCHIVOS. Presentado por: Alba Arosemena Alma Vargas Hospicia Mendoza Roselvira Fernández Ahías Arosemena

TEMA 0 REPASO DE CONCEPTOS BÁSICOS TEST PARA AUTOEVALUACIÓN DEL ALUMNO

Análisis de imágenes digitales

Almacenamiento magnético, 3

Se llama adjunto de un elemento de una matriz A, al número resultante de multiplicar por el determinante de la matriz complementaria

Tablas Asociativas (Hash) Tablas: filas & columnas de información Especificación algebraica

Data Warehousing Diseño e implementación de un data warehouse

Almacenamiento y Recuperación de la Información

Aproximaciones y Error

TEMA 2. ORGANIZACIONES DE FICHEROS Y ESTRUCTURAS DE ACCESO

Introducción a la Teoría de Códigos

Problemas. Hoja 1. Escriba el algoritmo para N = 4 y calcule el número de operaciones que realiza.

UNIVERSIDAD DON BOSCO DEPARTAMENTO DE CIENCIAS BASICAS

Fundación Uno. (a) Con signos de agrupación y productos indicados (b) Con valor absoluto (c) Con literales

PLANEACIÓN CUARTO BIMESTRE MATEMÀTICAS

Matemáticas 2.º Bachillerato. Matemáticas 2.º Bachillerato. Matemáticas 2.º Bachillerato. Ejemplo:

ESCALAMIENTO GEOMÉTRICO

1. Determinantes de orden dos y tres:

INTRODUCIR FORMULAS EN EXCEL

Tema 2: Sistemas y códigos numéricos

Transcripción:

TEMA 3 TRANSFORMACIÓN DE CLAVES (HASHING) o como encontrar, con el mínimo esfuerzo, una clave dada dentro de un conjunto de elementos. p-1-

OBJETIVOS DE ESTE CAPITULO: Concepto de Hashing (Dispersión). Colisiones y su tratamiento Cómo puede convertirse una clave dada en otra con funciones de trasformación Cómo optimizar el concepto de trasformación de claves p-2-

INDICE TEMA 3. 3.1 Transformación de Claves 3.1.1 Hash 3.2 Manejo de Colisiones 3.2.1 Externo 3.2.1.1. Encadenamiento Directo 3.2.1.2. Overflow 3.2.2. Interno 3.2.2.1 Encadenamiento Directo 3.2.2.2 Encadenamiento Vacío 3.2.2.2.1 Inspección Lineal 3.2.2.2.2 Inspección Cuadrática 3.3. Elección de la función de transformación 3.2.1 Método del centro de los cuadrados 3.2.2 Método de la división 3.2.3 Método de desplazamiento 3.2.4 Método de plegamiento 3.4. Factor de carga y efectividad 3.5. Buckets (compartimentos) p-3-

1. TRANSFORMACIÓN DE CLAVES Sea un conjunto C: Dada una clave C 1 de este conjunto, un procedimiento para encontrarla -en el primer intento, si es posible- se basa en lo siguiente: Cada elemento del conjunto de claves va a representarse mediante una dirección en memoria El procedimiento será entonces una aplicación : H : C D Función de Conjunto Conjunto de Transformación de claves direcciones p-4-

El procedimiento puede verse entonces como una tabla: y de aquí el nombre de Transformación de Claves. HASH: H : C D Se emplea, generalmente, cuando el número de claves es muy grande comparado con el número real de registros que van a manejarse en el fichero. El método no es determinista! Dados C 1, C 2 C C 1 C 2 ; si H(C 1 ) = H(C 2 ) Colisión! p-5-

2. MANEJO DE COLISIONES Colisión: El lugar en la tabla correspondiente a una cierta clave no contiene el elemento deseado; dos claves corresponden al mismo índice. El tratamiento de la colisión puede hacerse usando: Almacenamiento externo: el espacio reservado para las colisiones está fuera de los límites de la tabla. Almacenamiento interno: utiliza un método de reasignación para calcular un nuevo índice dentro de la tabla. Tratamiento de colisiones externo 1. Encadenamiento directo Se encadenan todos los elementos cuyas claves generan el mismo índice primario por medio de una lista externa a la tabla; un elemento adicional en cada elemento guarda el puntero a su lista de colisiones. 2. Overflow Se reserva una parte de la tabla, llamada área de desbordamiento -aproximadamente un 10%- para almacenar aquellos elementos en colisión. En el área de desbordamiento la búsqueda se realiza de forma secuencial. p-6-

3. Encadenamiento directo externo en zona de Overflow En el caso de producirse nuevas colisiones en el área de overflow, ésta se expande dinámicamente: p-7-

Tratamiento de colisiones interno 1. Encadenamiento directo Los elementos cuyas claves generan el mismo índice se enlazan a nuevas posiciones, ocupadas por estos elementos, dentro de la misma tabla. Hay que preveer espacio adicional en cada elemento de la tabla para guardar la dirección del siguiente elemento. 2. Encadenamiento vacío Se buscan otros lugares vacios dentro de la tabla. Se evitan enlaces, pero hay que realizar una búsqueda secuencial en la tabla. Asimismo, se produce un agrupamiento de claves secundarias detrás de las primarias. 2.1. Inspección lineal Busca el siguiente lugar hasta encontrar el elemento buscado o una posición vacía. Los índices se generan de la siguiente forma: p-8-

H ( c ) = d 0 a continuación h 0 = c d 0 d 1 d 2... donde N tamaño de la tabla h i = ( h i - 1 + 1 ) MOD N o bien h i = ( h 0 + i ) MOD N Termina cuando, para un d i, se produce una de estas situaciones: T[ d i ] = c -- se encuentra el elemento T[ d i ] = vacío -- se encuentra una posición vacía d i = d 0 -- la tabla está llena 2.2 Inspección cuadrática La generación de índices se efectúa: h 0 = c h i = d 0 + colisiones 2 ( i > 0 ) p-9-

3. ELECCIÓN DE LA FUNCIÓN DE TRANSFORMACIÓN Consideraciones a tener en cuenta: 1- La función ha de distribuir las claves de manera uniforme sobre el conjunto de direcciones posibles. 2- La función ha de ser rápida. Adicionalmente, 3- Ha de producir pocas colisiones. 4- Ha de ser fácil de calcular 5- Ha de eliminar la información no distintiva de la clave original Tamaño de la tabla: un 10% mayor del tamaño necesario p-10-

Supongamos una tabla de 7.000 elementos. -Solo para claves numéricas: 1. Método del centro de los cuadrados Se multiplica la clave por sí misma, y se toman los dígitos centrales, ajustándolo al rango. Ej: clave 172148 cuadrado 029634933904 dígitos centrales ajuste al rango 3493 * 0,7 = 2445 Dirección 2. Método de la división Se divide la clave por, bien un número primo ligeramente inferior al tamaño de la tabla o bien por un nº que contenga factores primos menores que 20. La dirección resultante es el resto de la división. Ej: clave 172148 172148 MOD 6997 = 4220 ajuste de rango 4220 * 0,7 = 2954 Dirección 3. Método de desplazamiento Los dígitos exteriores se desplazan sobre los centrales, y se suman con éstos. p-11-

Ej. clave 542422241 longitud de la dirección 2422 542 54 2717 ajuste de rango 2717 * 0,7 = 1894 Dirección 4. Método de plegamiento Se eligen varias columnas arbitrariamente, y de forma análoga al caso anterior, se pliega el resto sobre ellas, para hacer después una suma o un OR-exclusivo. Ej: clave 542422241 2422 142 45 7064 ajuste de rango 7064 * 0,7 = 4944 Dirección p-12-

4. FACTOR DE CARGA Factor de carga, α: cociente entre el número de claves que hay en la tabla dividido por el número total de claves. Es una medida del rendimiento de la tabla hash, -número de colisiones que se producen-. Para una tabla vacía: α = 0 Para una tabla vacía: n α = n + 1 Es directamente proporcional al nº de colisiones. p-13-

5. BUCKETS (Compartimentos) Bloque de registros que se extraen en un acceso a disco cuando comparten la misma dirección Empleado en trabajo sobre archivos en disco; menos importante cuando se trabaja sobre memoria Un compartimento está formado por uno o más sectores del disco Modo de trabajo: Con la función de Trasformación se obtiene la dirección del compartimento base, y a partir de ahí, se continua la búsqueda mediante las técnicas conocidas. Ventajas: Minimiza el número de colisiones (nueva colisión cuando el bucket esté completo. Minimiza el tiempo de acceso a las claves y el espacio utilizado en el almacenamiento. El tamaño de la tabla Hash es menor. p-14-