COBOL - Organización de archivos

La organización de archivos indica cómo se organizan los registros en un archivo. Existen diferentes tipos de organizaciones de archivos con el fin de aumentar su eficiencia en el acceso a los registros. A continuación se muestran los tipos de esquemas de organización de archivos:

  • Organización secuencial de archivos
  • Organización de archivos secuenciales indexados
  • Organización de archivos relativa

Las sintaxis en este módulo, mencionadas junto con sus respectivos términos, solo se refieren a su uso en el programa. Los programas completos que utilizan estas sintaxis se discutirán en el capítulo 'Verbos de manejo de archivos'.

Organización secuencial de archivos

Un archivo secuencial consta de registros que se almacenan y se accede a ellos en orden secuencial. Los siguientes son los atributos clave de la organización secuencial de archivos:

  • Los registros se pueden leer en orden secuencial. Para leer el décimo registro, se deben leer todos los 9 registros anteriores.

  • Los registros se escriben en orden secuencial. No se puede insertar un nuevo registro en el medio. Siempre se inserta un nuevo registro al final del archivo.

  • Después de colocar un registro en un archivo secuencial, no es posible eliminar, acortar o alargar un registro.

  • El orden de los registros, una vez insertados, no se puede cambiar nunca.

  • Es posible la actualización del registro. Se puede sobrescribir un registro si la longitud del nuevo registro es la misma que la del antiguo.

  • Los archivos de salida secuenciales son una buena opción para imprimir.

Sintaxis

A continuación se muestra la sintaxis de la organización secuencial de archivos:

INPUT-OUTPUT SECTION.
FILE-CONTROL.
   SELECT file-name ASSIGN TO dd-name-jcl
   ORGANIZATION IS SEQUENTIAL

Organización de archivos secuenciales indexados

Un archivo secuencial indexado consta de registros a los que se puede acceder de forma secuencial. También es posible el acceso directo. Consta de dos partes:

  • Data File contiene registros en esquema secuencial.

  • Index File contiene la clave principal y su dirección en el archivo de datos.

Los siguientes son los atributos clave de la organización secuencial de archivos:

  • Los registros se pueden leer en orden secuencial al igual que en la organización de archivos secuenciales.

  • Se puede acceder a los registros de forma aleatoria si se conoce la clave principal. El archivo de índice se utiliza para obtener la dirección de un registro y luego el registro se obtiene del archivo de datos.

  • El índice ordenado se mantiene en este sistema de archivos que relaciona el valor clave con la posición del registro en el archivo.

  • También se puede crear un índice alternativo para recuperar los registros.

Sintaxis

A continuación se muestra la sintaxis de la organización de archivos secuenciales indexados:

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

Organización de archivos relativa

Un archivo relativo consta de registros ordenados por su relative address. Los siguientes son los atributos clave de la organización relativa de archivos:

  • Los registros se pueden leer en orden secuencial al igual que en la organización de archivos secuenciales e indexados.

  • Se puede acceder a los registros usando la clave relativa. La clave relativa representa la ubicación del registro en relación con la dirección de inicio del archivo.

  • Los registros se pueden insertar usando la clave relativa. La dirección relativa se calcula utilizando la clave relativa.

  • El archivo relativo proporciona el acceso más rápido a los registros.

  • La principal desventaja de este sistema de archivos es que si faltan algunos registros intermedios, también ocuparán espacio.

Sintaxis

A continuación se muestra la sintaxis de la organización relativa de archivos:

INPUT-OUTPUT SECTION.
FILE-CONTROL.
   SELECT file-name ASSIGN TO dd-name-jcl
   ORGANIZATION IS RELATIVE
   RELATIVE KEY IS rec-key