The join logical file joins three physical files (PF1, PF2, and
PF3) in this example, so that an application program can get name, address,
and salary information in one input operation, even though the information
is stored in three different physical files.
The following keywords are important in the example:
Figure 1. DDS for a join logical file|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
00010A (1)R JOINREC (2) JFILE(PF1 PF2 PF3)
00020A J JOIN(PF1 PF2)
00030A (3) JFLD(NAME NAME)
00040A J JOIN(PF2 PF3)
00050A JFLD(NAME NAME)
00060A (4) NAME (5) JREF(1)
00070A (4) ADDR
00080A (4) PHONE
00090A (4) SALARY
A
Legend: - (1)
- R identifies the record format. There can be only one record format in
a join logical file.
- (2)
- The JFILE keyword specifies that PF1, PF2, and PF3 are the physical files
on which this join logical file is based. Because it is specified first,
PF1 is the primary file. There are two secondary files: PF2 and PF3.
- (3)
- J identifies the join specifications. With two secondary files in this
join logical file, there must be two join specifications. Each join specification
defines how a pair of files is to be joined, as follows:
- JOIN is required when more than two physical files are being joined, and
it identifies which two files are being joined in this join specification.
In the first join specification, PF1 and PF2 are joined. In the second join
specification, PF2 and PF3 are joined.
Note: Secondary files can be joined to either the
primary file or to another secondary file. In this example, PF2 in the second
JOIN keyword can be PF1. There is no difference in the order
of records supplied to the program or in performance.
- JFLD identifies which fields are used to link together records from the
physical files being joined. In the first join specification, NAME from PF1
links with NAME from PF2. In the second join specification, NAME from PF2
links with NAME from PF3.
- (4)
- The field names show which fields are presented to the program. At least
one field name is required.
- (5)
- The JREF keyword identifies which physical file to search for the field
name; in this example, NAME from PF1 is used. Note the use of the direct
file number: JREF(1) indicates to use the first file on the JFILE keyword,
which is PF1.