La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Organizaciones Directas

Presentaciones similares


Presentación del tema: "Organizaciones Directas"— Transcripción de la presentación:

1 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 FIUBA ODD - Curso Servetto

2 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)‏ FIUBA ODD - Curso Servetto

3 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 FIUBA ODD - Curso Servetto

4 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 FIUBA ODD - Curso Servetto

5 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. FIUBA ODD - Curso Servetto

6 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)‏ FIUBA ODD - Curso Servetto

7 Dispersión Extensible
La función de dispersión se usa para acceder a una tabla (archivo) de direcciones de 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 FIUBA ODD - Curso Servetto

8 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. FIUBA ODD - Curso Servetto

9 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 FIUBA ODD - Curso Servetto

10 De Bits Sufijos o Modular De Bits Prefijos
Cubos con Capacidad para 6 Registros td tamaño de dispersión del cubo Tabla: Bloques Libres: - Claves de registros en Cubos: 0: td 4, 1: td 8, 2: td 4, 3: td 8, 4: td 8, 5: td 8, De Bits Prefijos Cubos con Capacidad para 2 Registros td tamaño de dispersión del cubo Tabla: Bloques Libres: - Claves (en binario) de registros en Cubos: 0: td 2, 1: td 8, 2: td 8, 1010 3: td 4, FIUBA ODD - Curso Servetto


Descargar ppt "Organizaciones Directas"

Presentaciones similares


Anuncios Google