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
Created with BuildVu