150 likes | 427 Views
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 .
E N D
ODD - Curso Servetto 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).
ODD - Curso Servetto 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 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
ODD - Curso Servetto 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)
ODD - Curso Servetto 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)
ODD - Curso Servetto Registros Sin Ordenar • Actualización de Registros • → 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
ODD - Curso Servetto 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.)
ODD - Curso Servetto 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 viejoTambié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)
ODD - Curso Servetto Registros Ordenados • Actualización de Registros (cont.) • → 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)
ODD - Curso Servetto Ordenamiento Externo • 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
ODD - Curso Servetto 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
ODD - Curso Servetto 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.