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.
- Encode or
- 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.