Está en la página 1de 11

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


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 4


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

FIUBA ODD - Curso Servetto 5


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 6


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 7


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)

FIUBA ODD - Curso Servetto 8


Ordenamiento Externo
1. Ordenación de porciones de un archivo
desordenado en memoria, generando varios
archivos de trabajo ordenados
2. 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 9
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 10


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 11

También podría gustarte