La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Organización Secuencial

Presentaciones similares


Presentación del tema: "Organización Secuencial"— Transcripción de la presentación:

1 Organización Secuencial
Es la organización más simple y la primera en aparecer, ya que era la única posible cuando los únicos dispositivos de almacenamiento permanente eran las cintas magnéticas. Se basa en el acceso secuencial pero también puede requerir acceso relativo. La organización de los registros varía según sean de longitud fija o variable, y en caso de que sean de longitud variable, según se requiera actualizarlos o no: los registros de longitud variable actualizables se organizan en bloques; el resto no. Las primitivas varían según los registros se dispongan ordenados por un identificador o desordenados, y según se requiera actualizarlos o no (en muchos archivos transaccionales sólo se hacen altas al final del archivo y nunca se actualizan registros). FIUBA ODD - Curso Servetto

2 Registros Ordenados por Identificador
Ventajas Permite optimizar búsquedas: elimina necesidad de leer todo el archivo Permite procesamiento coordinado con otros archivos Permite cortes de control con un único recorrido Desventajas Problemas de inserción: altas implican reconstrucción del archivo o deben diferirse Bajas costosas: bajas lógicas con necesidad de reestructuración, o bajas físicas con reconstrucción del archivo o diferidas FIUBA ODD - Curso Servetto

3 Casos de Archivos Secuenciales
Archivos maestros con pocos registros y pocas actualizaciones Archivos de trabajo Reordenación de transacciones para totalizaciones parciales (cortes de control –p.e. ordenación de líneas de facturas por identificación de producto, para totalizar ventas por producto) Resultados parciales (persistencia de operaciones no terminadas -p.e. consumos en mesas abiertas en un restaurante) FIUBA ODD - Curso Servetto

4 Registros Sin Ordenar Creación: creación y carga sin validación de unicidad ni búsqueda de espacio libre → Creación para escribir → Carga de registros en una única operación cíclica o por importación desde archivo de texto, con el archivo recién abierto o con posicionamiento previo al final del archivo – buffering de bloques (rrlv) Recuperación de Registros (consulta o recuperación unitaria) → Posicionamiento al inicio del archivo y lectura secuencial de registros hasta encontrar el buscado o llegar al final del archivo – primero y siguiente (rrlv) FIUBA ODD - Curso Servetto

5 Registros Sin Ordenar Actualización de Registros Mantenimiento
→ Inserción: se intenta recuperar un registro con el mismo identificador que el del registro a insertar si se quiere validar unicidad; se graba el nuevo registro buscando espacio libre → Modificación: se recupera el registro por el identificador, se actualiza, se vuelve al comienzo de la unidad recién leída (registro o bloque) y se escribe la unidad modificada (en bloques el registro modificado queda al final y puede haber relocalización) → Eliminación: para rrlf se recupera el registro a eliminar por el identificador y se toma su posición, luego se lee el último registro del archivo, se copia el último registro en la posición del registro a eliminar, se posiciona sobre el último registro que se acaba de copiar y luego se trunca el archivo; para rrlv se compacta el bloque donde se encontró el registro, se actualiza el espacio libre del bloque y se reescribe el bloque Mantenimiento → Copias de respaldo con comandos del sistema operativo FIUBA ODD - Curso Servetto

6 Registros Ordenados Creación: creación y carga sin validación de unicidad (los registros a cargar ya están validados y ordenados por identificador) u ordenamiento externo de un archivo desordenado → Creación para escribir → Carga de registros ordenados en una única operación cíclica o por importación desde un archivo de texto Recuperación de Registros: consulta o recuperación unitaria y reporte o recuperación comprensiva → Consulta unitaria: por aproximación lineal o binaria (no se leen todos los registros previos al buscado) – inicio de secuencias → Reporte o recuperación comprensiva: cortes de control (cuando los registros están ordenados por más de un campo, se puede realizar cálculos con secuencias de registros que tengan el mismo valor de uno o más campos –p.e. contar registros, promediar o sumar valores de otro campo, etc.) FIUBA ODD - Curso Servetto

7 Registros Ordenados Actualización de Registros
→ Inserción: se debe crear un archivo nuevo, copiar los registros con identificadores menores al del registro a insertar, agregar el registro nuevo, copiar el resto de los registros con identificadores mayores, borrar el archivo viejo y renombrar el archivo nuevo con el nombre del viejo También se puede diferir las inserciones manteniendo ordenados los registros a agregar, y luego insertarlos por fusión (encarece recuperaciones por necesidad de consultar el archivo principal y el de inserciones) → Modificación: se recupera el registro por el identificador, se actualiza, se vuelve al comienzo de la unidad con el registro y se reescribe (el identificador nunca se puede modificar) También puede haber modificaciones por procesamiento coordinado (esquema maestro – detalles) FIUBA ODD - Curso Servetto

8 Registros Ordenados Actualización de Registros (cont.) Mantenimiento
→ Eliminación: se puede realizar en forma análoga a la inserción (individual o en forma diferida) También se puede realizar en forma lógica marcando el registro (p.e. si los identificadores son positivos, cambiando el signo del identificador –costo de un bit por registro). No conviene agregar un campo para marcas de borrado (costo de un byte por registro) Mantenimiento → Copias de respaldo con comandos del sistema operativo → Si se hacen eliminaciones lógicas, se puede requerir eliminar físicamente los registros marcados en forma periódica (compactación del archivo) FIUBA ODD - Curso Servetto

9 Ordenamiento Externo Mejoras
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 ordenamiento Ordenamiento interno por montículos: menor movimiento de registros en el buffer de ordenamiento FIUBA ODD - Curso Servetto

10 Variantes Ordenamiento Externo
Cuando no se puede incorporar un nuevo registro al buffer de ordenamiento (de tamaño para n registros) 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) → en promedio se ordenan 2*n registros No se achica el buffer: se guarda el registro en un archivo temporal que no puede tener más registros que el buffer de ordenamiento (natural selection) → en promedio se ordenan e*n registros FIUBA ODD - Curso Servetto

11 Ordenamiento 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 sin 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. FIUBA ODD - Curso Servetto


Descargar ppt "Organización Secuencial"

Presentaciones similares


Anuncios Google