8.1 Organización de Archivos 177
Coeficiente de transferencia o factor de bloqueo = 512 x2F; 57 = 8
Por lo tanto en la lectura de información desde el disco a la memoria se podrán “bajar” 8 registros
de una sola transferencia. También decimos que el coeficiente de transferencia es 8.
La importancia de un factor de bloqueo mayor a 1, es que reduce la cantidad de operaciones de
Ex2F;S entre la partición de la memoria RAM llamada buffer, donde se almacenarán los datos en
forma transitoria de una operación de E ó S, y el dispositivo de almacenamiento masivo donde
se encuentra almacenado el archivo de datos. Reducir el número de operaciones significará un
menor tiempo en el procesamiento de la información contenida en el archivo.
Bases de datos
Los archivos pueden a su vez agruparse en estructuras de datos que permiten almacenar y proce-
sar metódicamente grandes cantidades de información. Una base de datos es un conjunto de
archivos con datos relacionados, organizados de acuerdo a un modelo, p. ej. el llamado modelo
relacional. Dentro del modelo, se definen operaciones entre los archivos, que dan como resultado
otros archivos. Hay lenguajes como SQL (structured query language), que efectúan directamente
estas operaciones, ahorrando así gran cantidad de pasos de programación convencional.
Tipos de soportes
El soporte es el lugar físico donde se va a almacenar la información.
Estos soportes en general pueden ser:
Secuenciales los registros están dispuestos uno a continuación del otro, para acceder al
registro X, hay que “pasar” por los X -1 anteriores. Ejemplo: cintas magnéticas o líneas de
la impresora.
Direccionales por ejemplo los discos magnéticos, CD, DVD, y también en las memorias
extraíbles, la información puede ser accedida a través de su dirección, o sea ir directamente
a la posición de memoria donde está el registro que interesa, sin pasar por otros registros.
Eventualmente, los soportes direccionales pueden también ser utilizados como soportes
secuenciales.
Acceso
La forma de acceder a los registros de un archivo depende del tipo de soporte y de la forma en
que fueron
almacenados los mismos.
Acceso secuencial: implica el acceso desde el primer registro hasta el registro requerido.
El soporte puede ser secuencial yx2F;o direccional.
Acceso directo: esto implica acceder a un registro determinado. Este tipo de acceso sólo
se da con soportes direccionales.
8.1 Organización de Archivos
Es la forma en que se disponen los registros que forman el archivo cuando se los crea.
a) Organización secuencial
Puede emplearse con soportes secuenciales o direccionales. Los registros se estructuran o
almacenan o graban uno a continuación del otro. El orden físico coincide con el orden lógico.
En general el último registro contiene al final del mismo una marca de fin de archivo. Los
registros pueden tener distinta longitud.EOF (END OF FILE) es una macro o función. Esta
macro devuelve un valor lógico Verdadero cuando encuentra la marca de fin de archivo, marca
que se encuentra a continuación del último registro. Esta marca no se visualiza y puede ser un
178 Estructuras de datos: archivos
*, #, etc. Esta función se utiliza en la lectura de archivos secuenciales. En escritura, al cerrar
el archivo, el procesador coloca la marca EOF. Reiteramos, en los archivos secuenciales, para
acceder a un registro, se debe pasar por los anteriores, no se puede acceder directamente a un
registro dado. Leer o escribir en un archivo secuencial significa siempre “en el registro siguiente”
(o en el primero cuando se abre).
b) Organización directa
Sabemos que en este tipo de organización se accede al registro sin necesidad de pasar por
los registros que le anteceden, ya que el procesador junto a su sistema operativo, los ubica en
direcciones de disco o memoria que obtiene a través de un cálculo. Si todos los registros tienen el
mismo tamaño y están almacenados consecutivamente, conociendo el tamaño de cada uno, le es
simple al procesador localizar el registro número N, con independencia de los demás. Entonces
se hace necesario informar al compilador cómo son los registros, pues ya dijimos que en un
archivo directo son todos del mismo tipo. Esto se efectúa habitualmente al abrir el archivo. No es
necesario, en cambio, especificar el modo de habilitación, porque los archivos directos se abren
siempre como entrada-salida.
Si bien la sintaxis de las declaraciones y operaciones varía considerablemente de un lenguaje
a otro, es esencial que en cada operación de lectura o escritura se indique específicamente el
número relativo del registro en el que se va a leer o escribir. Aquí ya no hay “registro siguiente”.
El ejemplo que sigue busca dar una idea de cómo se trabaja con archivos directos, procurando no
atarse a formas rígidas de sintaxis.
Sólo puede emplearse con soportes direccionales. El procesador debe conocer o calcular
la dirección de cada registro a partir de su número relativo (1, 2, 3,..), para poder posicionarse
directamente en él.
c) Organización indexada
Consideremos un archivo de organización directa cuyos registros, todos de la misma forma
(p. ej. el tipo alum declarado anteriormente), contienen campos referidos a alumnos de una
asignatura:
legajo apeynom notas domicilio
G2015 GARCIA ALBERTO 8 10 6 8 7 JUJUY 1678 ROSARIO
P2436 PEREZ JUAN 73856 ALSINA 380 PERGAMINO
R3118 RODRIGUEZ ANA 9 9 9 7 10 PASCO 1220 ROSARIO
L3223 LOPEZ JOSE 55672 SALTA 927 PARANA
Cada registro está representado por una línea, y al procesar el archivo podemos acceder di-
rectamente a él, sin pasar por los anteriores, si conocemos su posición, número de orden o
número relativo.
Llamamos campo clave a un campo que toma valores distintos en cada uno de los registros
del archivo. En este caso, el legajo es seguro un campo clave, pues cada alumno aparece una sola