DATA DIVISION

 

Es la parte de COBOL que define y describe los campos, records y archivos a utilizarse. En el Data Division también se establece cualquier área para almacenar que se requiera para procesar los datos. Esta división tiene dos secciones principales: File Section y Working-Storage Section.

 

Ø      FILE SECTION – define todos los archivos de entrada (Input) y salida (Output).

Ø      WORKING-STORAGE SECTION – reserva el área para almacenar campos que no son parte del input o de output, pero son requeridos para el proceso. Incluye constantes, indicadores de fin de archivo (end-of-file) y áreas de trabajo.

 

Cada archivo a usarse tiene que definirse en el ENVIRONMENT DIVISION con la oración SELECT. Así que para cada archivo definido en el ENVIRONMENT DIVISION, debe existir una descripción en el FILE SECTION del DATA DIVISION.

 

FD (File Description)

En el File Section, los archivos se describen con la instrucción FD (File Description). Cada entrada FD es seguida por el nombre del archivo (el mismo nombre dado en el Select), otras cláusulas y terminada con un punto.

 

Formato:

      FD  nombre-del-archivo

            LABEL RECORDS ARE...

            RECORD CONTAINS # CHARACTERS

            BLOCK CONTAINS # RECORDS.

 

LABEL RECORDS ARE... – Los datos en el disco están guardados en forma binaria. Se crea un record de etiqueta (label record) en el primer o último record que provee información para identificar el archivo. Los labels son verificados en los archivos de entrada y son creados en los archivos de salida.

 

-         LABEL RECORD ARE STANDARD – Se utiliza si se desea crear el record de etiqueta, por lo general para archivos guardados en forma magnética, por ejemplo en discos. (En los programas en clase se utilizará siempre en archivos de entrada y salida.)

-         LABEL RECORDS ARE OMITTED – Se usa para archivos de impresión (printed files) o para algún archivo que no se desee verificar o crear las etiquetas. (En los programas en clase se utilizará solo para reportes.)

 

RECORD CONTAINS # CHARACTERS – Es una cláusula opcional. El símbolo # se sustituye por un número entero que indica el tamaño de cada record.

 

BLOCK CONTAINS # RECORDS – Es una cláusula opcional. El símbolo # se sustituye por un número entero que indica la cantidad de records lógicos que se acceden cada vez que la computadora lee o escribe al disco.

 

Entradas de descripción de records

Son cláusulas que se colocan debajo del FD y especifican el formato del record. Indican:

 

1.      los campos que aparecen en el record

2.      el orden en que los campos aparecen

3.      cómo se relacionan los campos unos con otros

 

Los records se describen por niveles. El primer nivel es 01. Es el nivel de datos más alto, o sea, es el record. Los otros niveles van desde el 02 hasta el 49 y definen los campos en el record. El nivel 01 incluye el nombre del record (que lo asigna el programador) y se codifica en Área A. Los otros niveles son subordinados al nivel anterior y se codifican en el Área B.

 

Un campo que no se subdivide es llamado campo elemental o “elementary item”. Un campo que se subdivide es llamado campo grupal o “group item”. Todo campo elemental debe ser descrito por una cláusula llamada PICTURE (o PIC), que indica el tamaño (size) y tipo (type) del campo. Un campo grupal no utiliza PICTURE y termina con un punto.

 

Hay tres tipos (type) de datos en el campo:

1.      Alfabético – campo que contiene solo letras o espacio en blanco. Ejemplo: el nombre. Se identifica en el PICTURE con la letra A.

2.      Alfanumérico – campo que puede tener cualquier caracter, como letras, números y símbolos. Ejemplo: la dirección. Se identifica en el PIC con la letra X. Por lo general, se utiliza este tipo también para campos alfabéticos, dado que es difícil asegurar que un campo solo tenga letras o espacios. Por ejemplo, el nombre Mc’Donald tiene una comilla como parte del nombre.

3.      Numérico – campo con o sin signo que contiene solo dígitos (o sea, números). Ejemplo: las horas trabajadas. Son los únicos que se pueden usar en operaciones aritméticas. Se identifica en el PIC con el número 9.

 

 

El tamaño del campo se especifica repitiendo la identificación del tipo de dato; o sea, con la cantidad de A, X ó 9 usados en el PICTURE. Ejemplo:

 

Nombre del campo

Tipo de dato

Tamaño (cantidad máxima de caracteres que puede tener)

PICTURE

HORAS-TRAB

Numérico

2 (dos)

PIC 99.

CODIGO

Alfanumérico

4 (cuatro)

PIC XXXX.

NOMBRE

Alfabético

10 (diez)

PIC A(10).

 

 

El lugar decimal de un campo numérico es implícito y se designa con la letra V.             Ejemplo:

SALARIO

Numérico

5 (3 enteros y 2 decimales)

PIC 999V99.