The DATA Division - YSU Computer Science & Information Systems

Chapter 3
The DATA DIVISION
3-1
Chapter Objectives
To familiarize you with
• Systems design considerations
• Ways in which data is organized
• Rules for forming data-names
• Defining input and output files in DATA
DIVISION
• Defining storage for work fields and
constants
3-2
Chapter Contents
• Systems Design Considerations
• Forming Data-Names
• The FILE SECTION of the DATA
DIVISION
• Types of Data
• WORKING-STORAGE SECTION of the
DATA DIVISION
3-3
Systems Design Considerations
1. Systems analyst designs computerized
business information system
2. First determines what outputs from
system should be
3. Then designs inputs needed to produce
desired outputs
4. Designs specifications for programs to read
required input and produce output
3-4
Interactive and Batch Programs
• Fully Interactive Programs
– Use ACCEPT to get input from keyboard
– Use DISPLAY to display output on screen
• Full Batch Programs
– Get input from files on disk
– Direct output to files on disk
• Hybrid Programs
– Use combination of interactive and batch
input and output methods
3-5
COBOL Data Organization
• Field - group of characters forming a
meaningful unit or basic fact
– Characters in a name or digits in an
amount
• Records - group of related fields
– All fields related to customer
• File - group of related records
– Customer file made up of customer records
3-6
Categories of Data
• Data categories in COBOL each
assigned user-defined name
– Files, records, fields in batch programs
– Fields keyed in or displayed in interactive
programs
• Data-name or identifier for user-defined
name in DATA DIVISION must follow
certain rules
3-7
User-Defined Data-Name Rules
1.
2.
3.
4.
5.
6.
1 to 30 characters
Letters, digits, hyphens (-) only
No embedded blanks
At least one alphabetic character
May not begin or end with hyphen
May not be COBOL reserved word
3-8
Identify the valid data-names
1.
2.
3.
4.
5.
6.
Date-Of-Birth
Amount$Out
Section
-First-Name
98-6
Time out
3-9
Data-Name Guidelines
1.Use meaningful data-names that describe
contents of field
• Amount-Due-In instead of A1
2.Use prefixes or suffixes in data-names
when appropriate
• -IN and -OUT for fields (Employee-Salary-IN
and Employee-Salary-OUT)
• -FILE and -RECORD for file and record names
(Employee-File and Employee-Record)
3-10
DATA DIVISION
• Defines, describes storage for all data
• Two main sections
– FILE SECTION
• Defines all input and output files, records, fields
• Required for any program that uses files,
typically batch programs
– WORKING-STORAGE SECTION
• Defines constants, end-of-file indicators and
work areas
• Defines fields not part of input or output files
3-11
Types of Files to Define
• Input files
• Master files
• Transaction files
• Output files
• New Master files
• Report files
3-12
File Description Entries
• Each file described with an FD (File
Descriptor) sentence
• One FD for each SELECT statement in
ENVIRONMENT DIVISION
• FD followed by
• File-name
• Optional clauses to describe file and format
of its records
3-13
File Description Format
FD file-name
RECORD IS
LABEL
RECORDS ARE
OMITTED
STANDARD
RECORD CONTAINS integer-1
CHARACTERS
BLOCK CONTAINS integer-2 RECORDS .
3-14
File Description clauses
• LABEL RECORDS clause
– Used if labels stored in file
• BLOCKS CONTAINS clause
– Indicates blocking factor for disk files
• Both labels and blocking usually
handled by operating systems so
clauses will be omitted
3-15
RECORD CONTAINS clause
• Indicates size of each record
• Optional but recommended since it
provides check on record size
• Given this FD
FD Sales-File
Record Contains 75 Characters.
• If PICTURE clauses mistakenly add up
to 76, compiler will report a syntax error
3-16
Defining a Record
• Each FD followed by record description
entries for the file
• Data grouped in COBOL by levels
• Record-name defined at the 01 level
• Considered highest level of data
• Fields within a record defined at
subordinate level with level numbers
from 02 to 49
3-17
Record Description Example
01 Employee-Rec-In.
05 Name-In …
05 Annual-Salary-In …
05 Job-Description-In …
• Fields at 05 level subordinate to 01 level
entry
• All fields at same level (05), independent or
not subordinate to each other
3-18
SELECT, FD, 01 entries & fields
• SELECT names file, assigns it to
hardware device
• FD describes file
• 01 names record
• 02-49 describes fields within record
3-19
Elementary and Group Items
• Items defined with a level number are
one of two types
– Elementary item - field that is not further
subdivided
• Must include a PICTURE clause
– Group item - field that is further subdivided
• Has no PICTURE clause
3-20
Elementary and Group Items
01 Employee-Rec-In.
05 Name-In …
10 First-Name-In (Picture clause)
10 Last-Name-In (Picture clause)
05 Annual-Salary-In (Picture clause)
• Name-In is group item since it is subdivided
into first and last name
• Employee-Rec-In also group item
• First-Name-In is elementary item since it is
not further subdivided
3-21
Invalid Level Numbers
01 Employee-Rec-In.
05 Name-In …
10 First-Name-In (Picture clause)
12 Last-Name-In (Picture clause)
05 Annual-Salary-In (Picture clause)
• Last-Name-In level number is invalid since it
is not subordinate to First-Name-In
• Both first and last name are at same level and
should have same level number
3-22
PICTURE (PIC) clauses
• Specify type of data stored in field
• Indicate size of field
3-23
Types of data fields
• Alphabetic
• Only letters or blanks
• For name, item description, etc.
• Alphanumeric
• Any character - letters, digits, special characters
• For an address like 123 N. Main St.
• Numeric
• Only digits
• For fields used in arithmetic operations
3-24
Data Types in PICTURE clause
• A for alphabetic
• X for alphanumeric
• 9 for numeric
3-25
Size of Data Fields
Denote size of field by:
• Number of A’s, X’s or 9’s used in
PICTURE
01 Cust-Rec-In.
05
05
Cust-ID-In Picture XXXX.
Amt-In
Picture 99999.
3-26
Size of Data Fields
My also denote size of field by:
• A, X or 9 followed by number in
parentheses
01 Cust-Rec-In.
05
05
Cust-ID-In Picture X(4).
Amt-In
Picture 9(5).
3-27
Defining Fields in Record
• Must account for all positions defined in
record layout
• Must describe fields in order they appear in
record
• Field names should be unique
• For fields not used by program
– Data-name may be left blank (preferable)
– May use reserved word FILLER as data-name
– Positions must still be defined using PIC clause
3-28
Implied Decimal Point
• For fields used in arithmetic operations
• Symbol V used in PIC clause to denote
location of implied decimal point
• Decimal point itself not stored as part of
number
• To store value 26.79 in field AMT-IN,
code entry as
05 Amt-In Pic 99V99.
3-29
Variable and Constant Data
• Entries in DATA DIVISION reserve
storage for data
• Entries in FILE SECTION reserve
storage for data from records in
input/output files
• WORKING-STORAGE SECTION
reserves storage for keyed input/output,
and reserves storage for work fields
3-30
Variable Data
• Entries in both SECTIONs define
variable data
• Contents of field change (vary) with
each new record read or new value
keyed in
• Contents unknown until program begins
execution
3-31
Constant Data
• Data with a fixed value
• Value that does not depend on input
• Examples:
• Fixed tax rate of .05
• Message “INVALID” displayed when a
value is in error
• .05 and “INVALID” are constant values
3-32
Types of Constants
• Numeric literal
• Examples: .05
5280
199.99
• Constant used for arithmetic operations
• Nonnumeric (alphanumeric) literal
• Examples: “INVALID”
“Enter your name”
• Constant used for all operations except arithmetic
• Figurative constant
• SPACES
ZEROS
• Reserved word for commonly used values
3-33
Rules for Numeric Literals
1. 1 to 18 digits.
2. + or - sign may be included to left of
first digit.
3. Decimal point permitted within literal.
May not follow last digit.
Valid numeric literals
23 +2359.4
.125
-68734
3-34
Rules for Nonnumeric Literals
• Must be enclosed in quotation marks
• From 1 to 160 characters, including space
• Any character in COBOL character set except
quotation mark
Valid Nonnumeric Literals
'123 Main St.'
'$14.99'
'12,342'
'Enter a value from 1 to 10'
3-35
Nonnumeric Literals
• Only characters within quotes are
moved or displayed
• May contain all numbers ('125') but not
same as numeric literal (125)
– Cannot be used in arithmetic operations
– Cannot be moved to field with PIC of 9’s
• Are not data-names
– 'Amount-In' not same as field defined in
DATA DIVISION called Amount-In
3-36
Figurative Constants - ZERO
• ZERO, ZEROS or ZEROES means all
zeros
Example
Move Zeros To Total-Out
• Fills each position in Total-Out with a
zero
• May be used with both numeric and
alphanumeric fields
3-37
Figurative Constants - SPACE
• SPACE or SPACES means all spaces
or blanks
Example
Move Spaces To Code-Out
• Fills each position in Code-Out with a
space or blank
• Use only with alphanumeric fields since
blank is invalid numeric character
3-38
WORKING-STORAGE SECTION
•
•
•
•
Follows FILE SECTION
Begins with heading on line by itself
Starts in Area A, ends with period
All items must be defined at 01 level or
in entries subordinate to 01 level entry
3-39
WORKING-STORAGE SECTION
• Rules for user-defined data-names
apply
• Elementary items:
– Must include PICTURE clause
– May be assigned initial value with VALUE
clause
3-40
Uses of WORKING-STORAGE
To define fields used for
• Keyed input and displayed output
• Intermediate arithmetic results
• Counters and totals
• End-Of-File Indicators
3-41
VALUE clause
• To define initial value for field
• If omitted, field’s value undefined when
program begins execution
• May be used only in WORKINGSTORAGE SECTION
3-42
VALUE vs MOVE
• VALUE clause used in DATA DIVISION
– Gives initial value before execution begins
• MOVE used in PROCEDURE DIVISION
– Assigns value to field after program begins
• MOVE may change initial value of field
3-43
VALUE Clause
• Contains literal or figurative constant
• Data type must match PICTURE
• Numeric literals or ZEROS used with
PIC 9 fields
01 WS-Tax-Rate Pic V99 Value .06.
01 WS-Total
Pic 999 Value Zeros.
3-44
VALUE Clause
• Nonnumeric literals, ZEROS or
SPACES used with PIC X fields
01 WS-EOF
Pic X(3) Value ‘YES’.
01 WS-Descrip Pic X(8) Value Spaces.
3-45
Defining Constants or Literals
Define a literal of .28 (28%) for a tax rate
• Method 1 - code as literal in
PROCEDURE DIVISION
Multiply .28 by WS-Salary Giving WS-Tax
• Method 2 - store in data item in
WORKING-STORAGE SECTION
01 WS-Rate Pic V99 Value .28.
3-46
Defining Constants or Literals
• Method 2 - use data-name in place of
literal in PROCEDURE DIVISION
Multiply WS-Rate by WS-Salary Giving
WS-Tax
– Preferable for literals used more than once
– Reduces likelihood of error since literal
value entered one time
– Allows meaningful name to be associated
with number
3-47
Continuation of Literals
• Nonnumeric literals may be up to 160
characters
• Long literals may not fit on one typed
line
• Subdividing long literals into separate
fields is recommended
3-48
Continuation of Literals
Example
Separate this report title into two fields
"Transaction Report for XYZ Corporation"
01 Report-Title.
05
Pic X18) Value 'Transaction Report'.
05
Pic X(20) Value ' for XYZ Corporation'.
3-49
Continuation of Literals
• Long literals may be continued from one line
to next, although this is not recommended
• Rules for continuation of literals from one line
to next
– Begin literal with quotation mark.
– Continue literal to position 72. Do not end with
quotation mark.
– Place hyphen on next line in position 7.
– Continue literal with quotation mark starting
anywhere in Area B.
– End literal with quotation mark.
3-50
COBOL 2008 Changes
1. LABEL RECORDS clause will be phased out
entirely
2. VALUE clause will be allowed in FILE
SECTION
3. Way to continue nonnumeric literals will
change
4. Margins A and B rules will be guidelines
rather than requirements
5. Commas and dollar signs will be permissible
in numeric literals
3-51
Chapter Summary
• Data organized into files, records and
fields
• Variable data changes with each run
depending on input values
• Constant or literal data defined within
program, not entered as input
3-52
Chapter Summary
• FILE SECTION includes FD entry for
each file used by program
• Record names coded at 01 level
• Field names coded at 02-49 level
• Fields must be defined in order they
appear in record
3-53
Chapter Summary
• Group items are further subdivided
• Elementary items are not subdivided
• Elementary items have PICTURE
clause
• Codes X, A, 9, V used to describe data
3-54
Chapter Summary
• WORKING-STORAGE SECTION used
for storing
– Intermediate results, counters
– End-of-file indicators
– Interactive data accepted as input or
displayed
• VALUE clauses may be used in this
section to initialize fields
3-55
Copyright © 2003 John Wiley & Sons, Inc. All rights reserved.
Reproduction or translation of this work beyond that permitted in Section
117 of the 1976 United States Copyright Act without the express written
permission of the copyright owner is unlawful. Request for further
information should be addressed to the Permissions Department, John
Wiley & Sons, Inc. The purchaser may make back-up copies for his/her
own use only and not for distribution or resale. The Publisher assumes no
responsibility for errors, omissions, or damages, caused by the use of these
programs or from the use of the information contained herein.
Limited modifications to original presentation.
3-56