1 / 10

Organizaciones Directas

Costos de Recuperación Unidades de Organización Funciones de Dispersión Organizaciones Estáticas – Primitivas y Organización de Colisiones y Desbordes Organizaciones Dinámicas - Versiones de Dispersión Extensible. Organizaciones Directas. Costos de Recuperación.

fuller-head
Télécharger la présentation

Organizaciones Directas

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Costos de Recuperación Unidades de Organización Funciones de Dispersión Organizaciones Estáticas – Primitivas y Organización de Colisiones y Desbordes Organizaciones Dinámicas - Versiones de Dispersión Extensible Organizaciones Directas ODD - Curso Servetto

  2. ODD - Curso Servetto Costos de Recuperación • Archivo con R registros en bloques con capacidad para B registros con densidad de carga C • Organización Secuencial (p.e. C=0,85 para registros de longitud variable)‏ • Registros desordenados: techo((R/(C*B))/2)‏ • Registros ordenados con búsqueda por aproximación lineal: desde 3 (lectura de bloques extremos y el de aproximación)‏ • Registros ordenados con búsqueda binaria: techo(log2(R/(C*B)))‏ • Organización B (en el peor de los casos C=0,5): 1+piso(logC*B+1(C*R+1))‏ • Organización B+ (en el peor de los casos C=0,5): 1+piso(logC*I+1(C*(R/(C*B))+1))+1 con I capac. nodos internos • Directa: 1 (dispersión estática) o 2 (extensible)‏

  3. ODD - Curso Servetto Unidades de Organización • Para archivos con registros de longitud fija pueden tener capacidad para uno o muchos registros • Un registro: ranura (slot)‏ • Muchos registros: bloque o cubo (bucket)‏ • Para archivos con registros de longitud variable deben tener capacidad para muchos registros: cubos • Las ranuras deben tener un campo de control que indique si están vacías, ocupadas o con contenido eliminado • Los cubos deben tener un campo de control que indique la cantidad de registros que contiene, si son para registros de longitud fija, o el espacio libre que le queda, si son para registros de longitud variable

  4. ODD - Curso Servetto Funciones de Dispersión • Transforman al identificador de un registro a una dirección de registro (sólo registros de longitud fija) o a una dirección de cubo (registros de longitud fija o variable)‏ • Tienen como parámetro la cantidad total de registros o de bloques del archivo • Pueden transformar varios identificadores a una misma dirección: sinónimos • Para identificadores alfanuméricos deben transformar los caracteres a un número, y luego calcular el resto de dividir al número entre la cantidad total de unidades del archivo • Para identificadores numéricos pueden aplicar una transformación para aleatorizar resultados (plegado y suma de dígitos, corrimiento y suma de dígitos, dígitos centrales del cuadrado, …) y luego calcular el resto de la división entre la cantidad total de unidades del archivo

  5. ODD - Curso Servetto Primitivas de Organizaciones Estáticas • Creación: se calcula la cantidad de unidades de organización (ranuras o cubos) necesarias para un 20 o 30% más de la máxima cantidad de registros que podría tener el archivo y se inicializan; se puede cargar inicialmente el archivo con una primitiva que no valide unicidad de registros. • Actualización de Registros: inserción con validación de unicidad, modificación y supresión → campo de control para no recorrer todo el archivo al validar unicidad (ranuras vacías vs ranuras borradas e indicadores de desborde de cubos); excepciones: inserción en ranura ocupada (colisión), o en cubo completo (desborde). • De Recuperación de Registros: consulta o recuperación unitaria de registros, y reporte o recuperación comprensiva de todos los registros (desordenados) por recorrido secuencial. • Mantenimiento: reestructuraciones por desorganización, y respaldo con reorganización a archivos secuenciales.

  6. ODD - Curso Servetto Organización de Colisiones y Desbordes en Organizaciones Estáticas • En área de almacenamiento única • Saturación lineal: búsqueda secuencial circular a partir de la ranura o cubo siguiente; las ranuras pueden encadenarse, pero las cadenas deben comenzar en dirección original • Dispersión doble: segunda función determina longitud de saltos para buscar ranuras o cubos donde almacenar registro • En área exclusiva de colisiones o desbordes • Unidades de saturación lineal al final del archivo (se agregan al archivo según se necesite)‏ • Unidades de saturación lineal intercaladas en el archivo (se inicializan al crear el archivo)‏ • Encadenamiento de unidades para sinónimos de una unidad original, en otro archivo (unidades de menor capacidad)‏

  7. ODD - Curso Servetto Dispersión Extensible • La función de dispersión se usa para acceder a una tabla (archivo) de direccionesde cubos • Cada vez que se desborda un cubo del archivo, se agrega uno nuevo y se balancea la carga del desbordado con el nuevo con la función de dispersión • De tanto en tanto, cuando se agrega un cubo al archivo la tabla de direcciones se duplica • Los cubos requieren campos de control para indicar la cantidad de registros (de longitud fija) o la cantidad de bytes libres (registros de longitud variable), y para indicar el tamaño de la tabla de direcciones al agregarse o balancearse por última vez el cubo

  8. ODD - Curso Servetto Primitivas de Dispersión Etensible • Creación: se calcula la cantidad de cubos necesarias para un 20 o 30% más de la máxima cantidad de registros con los que se va a cargar inicialmente el archivo y se inicializa al tabla de direcciones para esa cantidad de cubos; se carga inicialmente el archivo con una primitiva que no valide unicidad de registros. • Actualización de Registros: inserción con validación de unicidad, modificación y supresión → se localiza el cubo donde insertar o encontrar el registro, accediendo a la tabla de direcciones con la función de dispersión. • De Recuperación de Registros: consulta o recuperación unitaria de registros, y reporte o recuperación comprensiva de todos los registros (desordenados) por recorrido secuencial del archivo de cubos. • Mantenimiento: respaldo con reorganización a archivo secuencial.

  9. ODD - Curso Servetto Versiones de Dispersión Extensible • De Bits Sufijos o Modular: la función de dispersión es el resto de la división entre el tamaño de la tabla → cada cubo aparece direccionado ta/tc veces en la tabla cada tc registros, con ta tamaño actual de la tabla y tc tamaño de la tabla al agregarse o balancearse por última vez el cubo • De Bits Prefijos: la función de dispersión es el número conformado por los log2(tamaño de la tabla) bits más significativos del identificador → cada cubo aparece direccionado ta/tc veces en la tabla en direcciones consecutivas

  10. ODD - Curso Servetto • De Bits Sufijos o Modular • Cubos con Capacidad para 6 Registros • td tamaño de dispersión del cubo • Tabla: • 2 0 4 3 2 0 1 5 • Bloques Libres: - • Claves de registros en Cubos: • 0: td 4, 63893 35641 51245 • 1: td 8, 34030 36150 40710 • 2: td 4, 59256 14588 55256 52980 • 3: td 8, 34163 31467 25067 35235 58043 • 4: td 8, 28378 23306 29002 16842 46698 51114 • 5: td 8, 35679 56255 55687 60567 De Bits Prefijos Cubos con Capacidad para 2 Registros td tamaño de dispersión del cubo Tabla: 0 0 0 0 1 2 3 3 Bloques Libres: - Claves (en binario) de registros en Cubos: 0: td 2, 0000 0010 1: td 8, 1000 1001 2: td 8, 1010 3: td 4, 1100 1110

More Related