Overview of optional database functions

IMS has several optional functions you can use for your database.

The functions include:

Logical relationships
Logical relationships is a function you can use to let an application program access a logical database record. A logical database record can consist of segments from one or more physical database records. Physical database records can be stored in one or more databases. Thus, a logical database record lets an application program view a database structure that is different from the physical database structure.

For example, if a logical data structure contains segments from two different physical databases, a segment can be accessed from two different paths:

  • A segment can be physically stored in the path where it is most frequently used and where the most urgent response time is required.
  • A pointer containing the location of the segment can be physically stored in the alternate path needed by another application program.
Secondary indexing
Secondary indexing is a function you can use to access segments in a database in a sequence other than the one defined in the sequence field.
Variable-length segments
Variable-length segments is a function you can use to make the data portion of a segment type variable in length. Use variable-length segments when the size of the data portion of a segment type varies greatly from one segment occurrence to the next. With variable-length segments, you define the minimum and maximum length of a segment type. Defining both minimum and maximum length saves space in the database whenever a segment is shorter than the maximum length.
Field-level sensitivity
Field-level sensitivity is a function you can use to:
  • Deny an application program access to selected fields in a segment for security purposes.
  • Allow an application program to use a subset of the fields that make up a segment (and not process fields it does not use) or use fields in a segment in a different order. Use field-level sensitivity in this way to accommodate the differing needs of your application programs.
Segment edit/compression
Segment edit/compression is a function you can use with segments to:
  • Encode or scramble segment data when it is on the device so only application programs with access to the segment receive the data in decoded form.
  • Edit data so application programs can receive data in a format other than the one in which it is stored.
  • Compress data when writing a segment to the device, so the Direct Access Storage Device (DASD) is better used.
A Data Capture exit routine
A Data Capture exit routine is used to capture segment data when an application program updates IMS databases with an insert, replace, or delete call. This is a synchronous activity that happens within the unit of work or application update. Captured data is used for data propagation to Db2 for z/OS® databases. You can also use Data Capture exit routines to perform tasks other than data propagation.
Asynchronous Data Capture
Asynchronous Data Capture is a function you use to capture segment data when an application program updates IMS databases with an insert, replace, or delete call. This is an asynchronous activity that happens outside of the unit of work or application update. Captured data is used for data propagation to Db2 for z/OS databases asynchronously. You can also use Asynchronous Data Capture to perform tasks other than data propagation.

IMS DataPropagator allows you to propagate the changed data to or from IMS and Db2 for z/OS both synchronously and asynchronously.

Related reading: For more information on IMS DataPropagator see IMS DataPropagator for z/OS: An Introduction.

Multiple data set groups
Multiple data set groups is a function you can use to put some segments in a database record in data sets other than the primary data set. This can be done without destroying the hierarchical sequence of segments in a database record.

One reason to use multiple data set groups is to accommodate the differing needs of your applications. By using multiple data set groups, you can give an application program fast access to the segments in which it is interested. The application program simply bypasses the data sets containing unnecessary segments. Another reason for using multiple data set groups is to improve performance by, for example, separating high-use segments from low-use segments. You might also use multiple data set groups to save space by putting segment types whose size varies greatly from the average in a separate data set group.