Un archivo COBOL basado en registros es una colección de registros y la organización de archivos se ocupa de cómo se almacenan los registros en una unidad de almacenamiento de disco de respaldo. La forma en que se organizan los registros en el dispositivo es importante porque afecta la forma en que se puede acceder a los registros y la latencia del acceso a esos registros.
COBOL proporciona 3 tipos diferentes de organización de archivos:
- Organización de archivos secuenciales
- Organización de archivos secuenciales indexados
- Organización relativa de archivos
Organización de archivos secuenciales:
El método más simple de organizar registros en un disco. Los registros se organizan uno tras otro de manera serializada. Independientemente del tipo de dispositivo de almacenamiento, estos archivos se procesan en serie. Por lo tanto, acceder a cualquier registro de este archivo requiere acceder a todos los registros anteriores. Así que comenzamos a leer desde la primera lectura y repasamos secuencialmente cada registro hasta el registro requerido o el EOF.
- Cualquier registro es un campo de colección. Un archivo secuencial se puede ordenar en función de un campo en particular llamado campo «clave» o se puede desordenar. Por ejemplo, un archivo que almacena registros de estudiantes se puede ordenar en función del campo «StudentID», de modo que los valores de «StudentID» siempre se ordenen, o pueden estar sin ningún orden.
- Insertar registros en archivos desordenados es simple, simplemente insertamos el registro al final del archivo. Pero no es tan trivial en el caso de archivos ordenados, ya que tenemos que mantener el orden incluso después de la inserción. En este caso, se debe crear un nuevo archivo, que tiene registros originales y el orden incorrecto de los nuevos registros.
- Eliminar un registro de un archivo secuencial, ya sea ordenado o desordenado, requiere volver a escribir todo el archivo en un nuevo archivo sin que se elimine el registro. Los registros que se eliminarán primero deben identificarse en el archivo. La coincidencia de registros se realiza utilizando campos clave: se proporcionan los valores de los campos clave para los registros que se eliminarán, que se comparan con los campos clave de los registros en el archivo.
- Actualizar un registro significa modificar campos de registros, modificar la longitud de los campos o agregar un nuevo campo no está permitido. Actualizar un registro desde un archivo secuencial, ya sea ordenado o desordenado, requiere volver a escribir todo el archivo en un nuevo archivo con los valores de registro actualizados.
- Actualizar o eliminar registros en archivos secuenciales es bastante costoso tanto en términos de cómputo, ya que requiere copia de datos, como de almacenamiento, ya que requiere espacio adicional para los nuevos archivos.
- Los archivos secuenciales se pueden usar si el archivo se va a procesar secuencialmente siempre. Si se puede acceder a un archivo de forma directa o aleatoria, se debe evitar la organización secuencial.
Sintaxis:
INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT file-name ASSIGN TO dd-name-jcl ORGANIZATION IS SEQUENTIAL
Pros y contras de la organización de archivos secuenciales:
- Estos archivos son lentos cuando la mayoría de los registros del archivo no se ven afectados por una operación, ya que leer casi todos los registros para operar en unos pocos registros no vale los recursos necesarios.
- La actualización/eliminación de registros ocupa el doble de almacenamiento temporalmente.
- Cuando la mayoría de los registros en el archivo se van a ver afectados por una operación, operar en estos archivos es más rápido en comparación con otros tipos de organización, ya que no hay índices que recorrer ni ubicación de registros que calcular. Además, dado que todos los registros se almacenan de manera contigua, el sistema trabaja con registros en lotes, lo que reduce la cantidad de accesos a disco necesarios.
- Aunque esta organización de archivos utiliza espacio adicional al eliminar/actualizar registros, ese uso es temporal, mientras que otros sistemas de archivos ocupan más espacio de almacenamiento de forma permanente. Esta organización no utiliza índices y, de hecho, recupera espacio de los registros eliminados.
- Además de los discos, los archivos secuenciales también se pueden almacenar en dispositivos de almacenamiento más económicos, como cintas magnéticas.
Organización de archivos secuenciales indexados:
El acceso directo a un registro no fue posible con la organización Secuencial, para superar esto se utiliza la organización de archivos Secuenciales Indexados. El archivo indexado consta de dos archivos: archivo de datos y archivo de índice. El archivo de datos se crea como un archivo secuencial, pero también se puede acceder a él aleatoriamente. El archivo de índice consta del valor de cada campo clave y la dirección del registro correspondiente en el dispositivo de almacenamiento de respaldo. Leer un registro de un archivo indexado no requiere leer todos los registros anteriores en el archivo; en cambio, el campo clave dado se busca en el archivo de índice y, una vez que se encuentra, se accede directamente a la dirección almacenada para leer el registro correspondiente.
- El sistema de archivos crea un índice a partir de registros de datos basados en la clave principal. También se puede construir un índice usando otros campos llamados «claves alternativas». Un archivo indexado le permite acceder a los registros de forma directa o secuencial utilizando cualquiera de sus claves.
- Al igual que la organización secuencial, los archivos también se pueden leer secuencialmente con la organización indexada, y la secuencia es la de los valores clave.
- Eliminar o actualizar un registro de un archivo indexado no requiere la creación de un nuevo archivo y copia de datos. Pero los archivos indexados no se pueden almacenar en dispositivos de almacenamiento secuencial como cintas magnéticas, estos solo se pueden almacenar en discos.
Sintaxis:
INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT file-name ASSIGN TO dd-name-jcl ORGANIZATION IS INDEXED RECORD KEY IS primary-key ALTERNATE RECORD KEY IS rec-key
Pros y contras de la organización de archivos indexados:
- Entre las organizaciones de archivos que permiten el acceso directo, estas son las más lentas, ya que el acceso a un registro pasa por varios niveles del índice y cada uno de ellos requiere acceso al disco.
- La actualización y eliminación de registros puede requerir la reconstrucción de índices.
- Los índices ocupan espacio en los dispositivos de almacenamiento.
- Cuando se elimina un registro, su espacio no se recupera por completo hasta que se reconstruyen los índices.
- Los archivos indexados solo se pueden almacenar en dispositivos que admitan acceso directo, por lo tanto, no se pueden almacenar en cintas magnéticas.
- Puede utilizar más de una tecla y las teclas también pueden ser alfanuméricas.
- Se permite la duplicación de claves alternativas, solo la clave principal debe ser única.
Organización relativa del archivo:
La organización relativa de archivos también permite el acceso directo/aleatorio a los registros almacenados, pero esta organización de archivos no utiliza un índice. En su lugar, el propio campo clave se convierte en una dirección de disco real y, por lo tanto, no es necesario realizar una búsqueda para encontrar el registro. El valor de dicho campo clave se denomina «número de registro relativo». El registro en archivos relativos se organiza en números de registro relativos ascendentes. A diferencia de los archivos indexados, solo puede haber un campo clave y tiene que ser numérico. Además, la asignación de archivos ocurre para todos los registros a partir de 1 hasta el registro con el número de registro relativo más alto, aunque todos los registros aún no estén completos.
Una organización de archivos relativa simple puede tener una correlación uno a uno entre el valor clave y la ubicación del disco del registro. Por ej. se crea un archivo de información del estudiante con StudentID como clave de registro, cuyo valor varía de 1 a 999, luego se puede colocar el registro StudentID=1 en la primera ubicación en el disco, StudentID=2 en la siguiente ubicación del disco, y así sucesivamente. Acceder a un registro con StudentID=458 significa que el sistema puede ir directamente a la ubicación del disco 458 y acceder al registro. De manera similar, puede haber un esquema diferente que tenga un valor base agregado a un número de registro relativo, por ej. con un valor base de 2000, el valor de la clave del primer registro será 2001 y el último será 2999, dado dicho valor clave, restaríamos 2000 para obtener el número de registro relativo.
- La inserción de un nuevo registro requiere un número de registro relativo, para que el sistema pueda encontrar la ubicación del disco correspondiente y escribir el registro en él.
- La actualización de un registro también requiere un número de registro relativo, para que el sistema pueda encontrar la ubicación del disco correspondiente y reescribir el registro.
- La eliminación de un registro requiere un número de registro relativo, para que el sistema pueda encontrar la ubicación del disco correspondiente y marcar el registro como eliminado. En la organización relativa de archivos, el sistema en realidad no elimina el registro sino que simplemente lo marca como libre. Por lo tanto, un archivo relativo generalmente está escasamente poblado y el requisito de espacio de estos archivos es mayor que otros tipos de organización.
Sintaxis:
INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT file-name ASSIGN TO dd-name-jcl ORGANIZATION IS RELATIVE RELATIVE KEY IS rec-key
Pros y contras de la organización de archivos relativa:
- Alto requerimiento de espacio de almacenamiento ya que los registros vacíos también ocupan espacio.
- El espacio no se puede recuperar de los registros eliminados.
- No se puede utilizar más de una clave y la clave debe ser numérica.
- Los archivos relativos solo se pueden almacenar en dispositivos que admitan acceso directo, por lo tanto, no se pueden almacenar en cintas magnéticas.
- Entre las organizaciones de archivos que permiten el acceso directo, estas son las más rápidas.
Publicación traducida automáticamente
Artículo escrito por dishaagrawal1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA