Acu4GL User's Guide
Version 6.0

3.2.1 Understanding How the Database Table Is Formed

ACUCOBOL-GT data dictionaries (XFDs) enable the Acu4GL product to create a table (or access an existing one) in the database for each indexed file. Each column in the table contains the values for one field. The column names are essentially the field names.

The table that is built is based on the largest record in the COBOL file, and contains the fields from that record plus any key fields (key fields are those which are named in KEY IS} phrases of SELECT verbs in the FILE CONTROL section). This ensures that data from all COBOL records will fit within the table, and simplifies the storage and retrieval process. If you were to examine the database columns, only the fields from the largest record, and the key fields, would appear. See section 3.2.2, "Defaults Used in XFD Files," for additional information.

Note: If the field named in the KEY IS phrase is a group item, it will not become a column in the database table. Instead, each of the elementary items subordinate to the named group item will become a column.

You can force a group item to be a column by using the USE GROUP directive.

With multiple record formats (level 01), not all COBOL fields are represented in the database by name, but all fields are storable and retrievable. The data dictionary maps fields from all records of a file to the corresponding locations in the master (largest) record of the file, and thus to the database table. Since Acu4GL has access to the data dictionary, it knows where the data from a given COBOL record fits in the database tables. This activity is invisible to the COBOL application.

For example, if your program has one file with the three records shown below, the underlined fields will be included in the database table by default (this example assumes that ar-codes-key is named in a KEY IS phrase). Some fields will not appear in the table, but the data dictionary will map them to the master field names. Acu4GL thus will eliminate redundancies and give you optimum performance.

    01  ar-codes-record.   
        03  ar-codes-key.   
            05  ar-code-type      pic x.    
            05  ar-code-num       pic 999.   
    01  ship-code-record.   
        03  filler                pic x(4).   
        03  ship-weight           pic s999v9.   
        03  ship-instruct         pic x(15).   
    01  terms-code-record.   
        03  filler                pic x(4).   
        03  terms-rate-1          pic s9v999.   
        03  terms-days-1          pic 9(3).   
        03  terms-rate-2          pic s9v999.   
        03  terms-descript        pic x(15).   

The following diagram shows how Acu4GL creates database columns for some of the fields in the COBOL record, while the data dictionary maps other fields to those columns; this means that all the fields are accessible to the COBOL program.

See section 3.2.2, "Defaults Used in XFD Files," for a description of the rules that Acu4GL follows as it builds the database table, and an explanation of how you can override those rules when necessary.

Acucorp, Inc.
Voice: (800) 262-6585 (U.S.A. and Canada)
Voice: (858) 689-4500
Fax: (858) 689-4550

Please share your comments on this manual
or on any Acucorp documentation with the
Acucorp Communications Department.
1988-2003 Acucorp, Inc.
All rights reserved.