Organización Secuencial

Anuncio
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 pueden optimizarse
utilizando 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).
•
Organizaciones Secuenciales
Variantes de organización según los registros sean
actualizables o no, según sean de longitud fija o de
longitud variable, y según se dispongan
desordenados u ordenados por una clave de
identificación
1
ODD - Curso Servetto
FIUBA
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
3
FIUBA
Casos de Archivos Secuenciales
Desventajas
 Archivos maestros con pocos registros y pocas
→ Problemas de inserción: altas
actualizaciones
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
ODD - Curso Servetto
ODD - Curso Servetto
FIUBA
 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)
4
ODD - Curso Servetto
Registros Sin Ordenar
Registros Sin Ordenar
Creación: creación y carga sin validación de unicidad ni
búsqueda de espacio libre
Actualización de Registros
FIUBA
→ 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
→ Creación para escribir
→ 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)
→ 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)
→ 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
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)
Mantenimiento
→ Copias de respaldo con comandos del sistema operativo
5
ODD - Curso Servetto
FIUBA
6
ODD - Curso Servetto
FIUBA
1
Registros Ordenados
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
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
→ Creación para escribir
→ Carga de registros ordenados en una única operación cíclica o por importación
desde un archivo de texto
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)
Recuperación de Registros: consulta o recuperación unitaria y reporte o
recuperación comprensiva
→ 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)
→ 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.)
7
ODD - Curso Servetto
FIUBA
También puede haber modificaciones por procesamiento coordinado (esquema
maestro – detalles)
8
Registros Ordenados
ODD - Curso Servetto
Ordenamiento Externo
Actualización de Registros (cont.)
1. Ordenamiento de porciones de un archivo
desordenado en memoria, generando varios archivos
de trabajo ordenados
2. Fusión de archivos ordenados
→ 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)
Mejoras
–
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)
9
ODD - Curso Servetto
FIUBA
10
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
Ordenamiento por Montículos
Cuando no se puede incorporar un nuevo registro al buffer
de ordenamiento (de tamaño para n registros) las opciones
son:
• Un montículo (heap) es un árbol binario perfecto
representado implícitamente en un arreglo.
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.
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
FIUBA
FIUBA
• Para ordenar de menor a mayor, los identificadores en un
– Se achica el buffer un registro y se usa el espacio para guardar
11
FIUBA
12
ODD - Curso Servetto
FIUBA
2
Descargar