120 likes | 288 Views
Organización Secuencial. Origen Acceso Relativo en Archivos Secuenciales Orden de los Registros Casos de Archivos Secuenciales Primitivas Ordenación Externa. Acceso Relativo en Archivos Secuenciales.
E N D
Organización Secuencial Origen Acceso Relativo en Archivos Secuenciales Orden de los Registros Casos de Archivos Secuenciales Primitivas Ordenación Externa ODD - Curso Servetto
Acceso Relativo en Archivos Secuenciales • Posicionamiento al final del archivo para agregar un nuevo registro o grabar un nuevo bloque, a partir de una posición desconocida. • Una vez leído un registro, reposicionamiento para actualizarlo. • Búsqueda de registros por pruebas. ODD - Curso Servetto
Ventajas Permite optimizar búsquedas: elimina necesidad de leer todo el archivo Permite procesamiento coordinado de varios archivos Permite cortes de control con un único recorrido Desventajas Problemas de inserción: altas implican recreación del archivo Bajas costosas: bajas lógicas con necesidad de reestructuración o bajas físicas con recreación del archivo Registros Ordenados por Identificador ODD - Curso Servetto
Casos de Archivos Secuenciales • Archivos maestros con pocos registros y pocas actualizaciones • Archivos de trabajo • Reordenación de transacciones para totalizaciones (cortes de control) • Resultados parciales (persistencia de transacciones no terminadas -p.e. consumos en mesas abiertas en un restaurante) ODD - Curso Servetto
Primitivas • De Creación: creación y carga sin validación de unicidad → buffering - creación por fusión de varios archivos ordenados (merge) y representación de fin de archivo • De Recuperación de Registros: consulta o recuperación unitaria de registros, y reporte o recuperación comprensiva → prueba lineal vs aproximación binaria, y cortes de control (registros ordenados) • De Actualización de Registros: inserción con validación de unicidad, modificación y supresión → diferidas por intercalación vs inmediatas (registros ordenados) • Mantenimiento: reestructuración (reconstrucción), reorganización (cambio de organización), depuración y respaldo → compactación ODD - Curso Servetto
1. Primitivas de Creación • Crear • Cargar (un registro al final del archivo) Buffering (registros de long variable en bloques) • El archivo organizado comprende además del archivo mismo, un bloque buffer para acomodar registros y una variable para llevar cuenta hasta dónde está ocupado en operaciones de carga secuencial • Si los registros son actualizables la carga de bloques no debe ser al 100% (reserva de espacio para expansiones de registros) • El bloque buffer se graba sólo cuando se desborda ODD - Curso Servetto
1. Primitivas de Creación • Fusión de varios archivos ordenados (merge) • Agrupación de archivos y buffers de lectura en una única estructura para reducir acoplamiento de módulos • Búsqueda de registro con identificador mínimo con un índice • Representación de fin de archivo cargando buffer de lectura con registro virtual con identificador muy alto ODD - Curso Servetto
2. Primitivas de Recuperación • Primero • Siguiente • Obtener (un registro dado el valor de su identificador) • Prueba lineal (registros ordenados por identificador): ecuación de la recta que pasa por los puntos (nro del primer reg o bloque, identificador del primer registro) y (nro del último reg o bloque, id del último reg) • Prueba binaria (registros ordenados por identificador) • Búsqueda secuencial usando Primero y Siguiente hasta encontrar el registro o que se termine el archivo (registros desordenados) ODD - Curso Servetto
3. Primitivas de Actualización • Agregar (un registro) → validación de unicidad – diferimiento (registros ordenados) • Eliminar (un registro dado el valor de su identificador) → bajas lógicas (mantenimiento) vs bajas físicas • Modificar (un registro dado el registro con su nuevo estado) • Procesamiento Coordinado ODD - Curso Servetto
Ordenación Externa • Ordenación de porciones de un archivo desordenado en memoria, generando varios archivos de trabajo ordenados • Fusión de archivos ordenados Mejoras • Reemplazo de registros que salen ordenados por registros desordenados: archivos ordenados con más registros que la capacidad del buffer de ordenación • Ordenación interna por montículos: menor movimiento de registros en el buffer de ordenación ODD - Curso Servetto
Variantes Ordenación Externa • Cuando no se puede incorporar un nuevo registro al buffer de ordenación las opciones son: • Se achica el buffer un registro y se usa el espacio para guardar al registro con identificador menor al último que salió ordenado (replacement selection) • No se achica el buffer: se guarda el registro en un archivo temporal que no puede tener más registros que el buffer de ordenación (natural selection) ODD - Curso Servetto
Ordenación por Montículos • Un montículo (heap) es un árbol binario perfecto representado implícitamente en un arreglo. • Para ordenar de menor a mayor, los identificadores en un nodo deben ser menores a los de cualesquiera de sus descendientes. • El árbol se representa en el arreglo son punteros: los hijos de un nodo en la posición i están en las posiciones 2*i y 2*i+1. • Un árbol con n nodos se almacena en las posiciones 1 a n del arreglo. ODD - Curso Servetto