Sei sulla pagina 1di 2

IMS V13 - Database administration - Specifying lo... https://www-01.ibm.com/support/knowledgecente...

Specifying logical relationships in the logical DBD


To identify which segment types are used in a logical data structure, you must code a logical DBD.

The following figure shows an example of how the logical DBD is coded. The example is a logical DBD for
the same physical databases defined in Specifying logical relationships in the physical DBD.

When defining a segment in a logical database, you can specify whether the segment is returned to the
program's I/O area by using the KEY or DATA operand on the SOURCE= parameter of the SEGM
statement. DATA returns both the key and data portions of the segment to the I/O area. KEY returns only
the key portion, and not the data portion of the segment to the I/O area.

When the SOURCE= parameter is used on the SEGM statement of a concatenated segment, the KEY
and DATA parameters control which of the two segments, or both, is put in the I/O area on retrieval calls.
In other words, you define the SOURCE= parameter twice for a concatenated segment type, once for the
logical child portion and once for the destination parent portion.

The following figure illustrates the logical data structure you need to create in the application program. It is
implemented with a unidirectional logical relationship using symbolic pointing. The root segment is
ORDER from the ORDER database. Dependent on ORDER is ORDITEM, the logical child, concatenated
with its logical parent ITEM. The application program receives both segments in its I/O area when a single
call is issued for ORDIT. DELIVERY and SCHEDULE are variable intersection data.

Figure 1. Logical data structure for a unidirectional relationship using symbolic pointing

The following logical DBD is for the logical data structure shown in the above figure:

DBD NAME=ORDLOG,ACCESS=LOGICAL
DATASET LOGICAL
SEGM NAME=ORDER,SOURCE=((ORDER,DATA,ORDDB))
SEGM NAME=ORDIT,PARENT=ORDER, X
SOURCE=((ORDITEM,DATA,ORDDB),(ITEM,DATA,ITEMDB))
SEGM NAME=DELIVERY,PARENT=ORDIT,SOURCE=((DELIVERY,DATA,ORDDB))
SEGM NAME=SCHEDULE,PARENT=ORDIT,SOURCE=((SCHEDULE,DATA,ORDDB))
DBDGEN
FINISH
END

1 of 2 11/04/2015 01:11 PM
IMS V13 - Database administration - Specifying lo... https://www-01.ibm.com/support/knowledgecente...

Notes to the preceding figure:

1. The DBD statement has the name of the logical DBD, in this example ORDLOG. As with physical
DBDs, this name must be unique and must be the same name as specified in the MBR operand of
the DBDGEN procedure. ACCESS=LOGICAL simply says this is a logical DBD.
2. The DATASET statement always says LOGICAL, meaning a logical DBD. No other parameters can
be specified on this statement; however, ddnames for data sets are all specified in the DATASET
statements in the physical DBDs.
3. The SEGM statements show which segments are to be included in the logical database. The only
operands allowed on the SEGM statements for a logical DBD are NAME=, PARENT=, and
SOURCE=. All other information about the segment is defined in the physical DBD.
The first SEGM statement defines the root segment ORDER.

The NAME= operand specifies the name used in the PCB to refer to this segment. This
name is used by application programmers when coding SSAs. In this example, the segment
name is the same as the name used in the physical DBD - ORDER. However, the segment
could have a different name from that specified in its physical DBD.

The SOURCE= operand tells IMS™ where the data for this segment is to come from. First
the name of the segment type appears in its physical database, which is ORDER. DATA
says that the data in this segment needs to be put in the application program's I/O area.
ORDDB is the name of the physical database in which the ORDER segment exists.

No FIELD statements are coded in the logical DBD. IMS picks the statements up from the
physical DBD, so when accessing the ORDER segment in this logical data structure, the
application program could have SSAs referring to ORDKEY or ORDATE. These fields were
defined for the ORDER segments in its physical DBD, as shown in Figure 2.

The second SEGM statement is for the ORDIT segment. The ORDIT segment is made up
of the logical child ORDITEM, concatenated with its logical parent ITEM. As you can see,
the SOURCE= operand identifies both the ORDITEM and ITEM segments in their different
physical databases.
The third and fourth SEGM statements are for the variable intersection data DELIVERY and
SCHEDULE. These SEGM statements must be placed in the logical DBD in the same
relative order they appear in the physical DBD. In the physical DBD, DELIVERY is to the left
of SCHEDULE.

Checklist of rules for defining logical databases


Logical relationships can become very complex. To help you to you properly define databases that
use logical relationships, you must understand and follow the rules that govern logical
relationships.

Parent topic: Logical relationships

Related concepts:
PSBs, PCBs, and DBDs in logical relationships
Paths in logical relationships

2 of 2 11/04/2015 01:11 PM

Potrebbero piacerti anche