Los archivos son la colección de registros relacionados con una entidad en particular. A través del manejo de archivos, podemos almacenar estos registros en un orden organizado. Estos registros se almacenan en cinta magnética o en un disco duro. Los archivos se clasifican además en 3 tipos:
- Organización secuencial de archivos.
- Organización relativa de archivos.
- Organización de archivos indexados.
Ventajas del manejo de archivos:
- Tiene almacenamiento ilimitado y, por lo tanto, almacena un gran volumen de datos.
- Almacena los datos de forma permanente en el dispositivo.
- Reduce la reedición de datos.
Desventajas del manejo de archivos:
- Proporciona un acceso lento.
- No puede realizar operaciones de manera eficiente.
Entradas para declarar un archivo:
Python3
ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT RFILE ASSIGN TO Storage Device. [RESERVE INT-1{AREA/AREAS}] [ORGANIZATION IS {SEQUENTIAL/RELATIVE/INDEXED}] [ACCESS MODE IS {SEQUENTIAL/RANDOM/DYNAMIC}] [RELATIVE KEY Variable] [FILE STATUS IS DATA-NAME]. DATA-DIVISION. FILE-SECTION. FD File Name.
La organización de archivos secuenciales almacena los datos en orden secuencial. Podemos acceder a los datos de forma secuencial y los datos solo se pueden almacenar al final del archivo. Hay 2 tipos de archivos secuenciales:
- Un archivo secuencial de líneas también se conoce como archivo de texto o archivo ASCII. Es un archivo de texto simple que puede ser editado por casi todos los editores de PC. Separa cada registro del otro agregando un delimitador al final del registro. En el caso de Windows y DOS, el retorno de carro ( x”OD” ) y el salto de línea ( x”OA” ) se añaden al final del registro , mientras que en UNIX sólo se añade el salto de línea ( x”OA” ). al final del registro.
Ejemplo:
Python3
IDENTIFICATION DIVISION. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT FILE1 ASSIGN TO DISK ORGANIZATION IS LINE SEQUENTIAL. DATA DIVISION. FILE SECTION. FD FILE1. 01 STUDENT. 02 RNO PIC 99. 02 NAME PIC A(7). 02 PERC PIC 99.99.
- El archivo secuencial de grabación es un archivo secuencial predeterminado. Estos registros se basan en el tamaño (bytes) definido por el programador o en el tamaño del registro.
- Si el programador define el tamaño del registro, se lo conoce como longitud fija.
- Si los registros se almacenan en función del tamaño de los registros, se conoce como Longitud variable.
Los registros de longitud variable ahorran espacio en el disco duro en comparación con los registros de longitud fija.
Ejemplo:
Python3
IDENTIFICATION DIVISION. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT FILE1 ASSIGN TO DISK ORGANIZATION IS RECORD SEQUENTIAL. DATA DIVISION. FILE SECTION. FD LENGTH RECORDING MODE IS V RECORD CONTAINS 0 TO 99 CHARACTERS. FD FILE1. 01 STUDENT. 02 RNO PIC 99. 02 NAME PIC A(7). 02 PERC PIC 99.99.
La organización de archivos indexados almacena el registro secuencialmente según el valor de RECORD-KEY (generalmente en orden ascendente). Una CLAVE DE REGISTRO en un archivo indexado es una variable que debe ser parte del registro/datos. En el caso de los archivos Indexados se crean dos tipos de archivos:
- Archivo de datos: Consiste en los registros en orden secuencial.
- Archivo de índice: Consiste en la CLAVE DE REGISTRO y la dirección de la CLAVE DE REGISTRO en el archivo de datos.
Se puede acceder al archivo indexado de forma secuencial, igual que la organización de archivos secuenciales, así como al azar solo si se conoce la CLAVE DE REGISTRO.
Ejemplo:
Python3
IDENTIFICATION DIVISION. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT IFILE ASSIGN TO DISK ORGANIZATION IS INDEXED ACCESS MODE RANDOM RECORD KEY RNO. DATA DIVISION. FILE SECTION. FD IFILE. 01 STUDENT. 02 RNO PIC 99. 02 NAME PIC A(7). 02 PERC PIC 99.99.
La organización de archivos relativos almacena el registro sobre la base de su dirección relativa. Cada registro se identifica por su Número de registro relativo, un Número de registro relativo es la posición del registro desde el principio del archivo. Se puede acceder a estos registros de forma secuencial, igual que la organización de archivos secuenciales, así como de forma aleatoria. Para acceder a los archivos de forma aleatoria, el usuario debe especificar el número de registro relativo.
Ejemplo:
Python3
IDENTIFICATION DIVISION. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT RFILE ASSIGN TO DISK ORGANIZATION IS RELATIVE ACCESS MODE RANDOM RELATIVE KEY POS. DATA DIVISION. FILE SECTION. FD RFILE. 01 STUDENT. 02 RNO PIC 99. 02 NAME PIC A(7). 02 PERC PIC 99.99.
Diferencia entre archivos secuenciales, indexados y relativos:
archivos secuenciales | Archivos indexados | Archivos relativos |
---|---|---|
Solo se puede acceder a estos archivos de forma secuencial. | Se puede acceder a estos archivos de forma secuencial y aleatoria con la ayuda de la clave de registro. | Se puede acceder a estos archivos de forma secuencial y aleatoria con la ayuda de su número de registro relativo. |
Los registros se almacenan secuencialmente. | Los registros se almacenan en función del valor de RECORD-KEY, que es la parte de los datos. | Los registros se almacenan por su dirección relativa. |
Los registros no se pueden eliminar y solo se pueden almacenar al final del archivo. | Es posible almacenar los registros en medio del archivo. | Los registros se pueden insertar en cualquier posición dada. |
Ocupa menos espacio ya que los registros se almacenan en orden continuo. | Ocupa más espacio. | Ocupa más espacio. |
Proporciona un acceso lento, ya que para acceder a cualquier registro se debe acceder primero a todos los registros anteriores. | También proporciona un acceso lento (pero es rápido en comparación con el acceso secuencial), ya que lleva tiempo buscar el índice. | Proporciona un acceso rápido ya que proporciona la clave de registro en comparación con los otros dos. |
En la organización de archivos secuenciales, los registros se leen y escriben en orden secuencial. | En la organización de archivos indexados, los registros se escriben en orden secuencial, pero se pueden leer tanto en orden secuencial como aleatorio. | En la organización de archivos relativa, los registros se pueden escribir y leer en orden secuencial y aleatorio. |
No es necesario declarar ninguna CLAVE para almacenar y acceder a los registros. | Se pueden crear una o más CLAVES para almacenar y acceder a los registros. | Solo se declara una CLAVE única para almacenar y acceder a los registros. |