HiDB Overview
This chapter gives a brief introduction to IMS system of IBM Mainframe, and data set access methods supported by HiDB.
1. IMS System
OpenFrame/HiDB (hereafter HiDB) stands for the hierarchical high performance database of TmaxSoft OpenFrame. It is a counterpart to IBM Mainframe’s IMS/DB. The IMS system is a database and transaction management system that was first introduced by IBM in 1968. IMS consists of two components: data communication management (DC) and database management (DB).
-
IMS/DC
A message-based transaction processing system. A transaction is a data packet prepared to run a specific application. IMS/DC offers infrastructure services to process transaction messages sent from network terminal or created in other applications.
-
IMS/DB
A hierarchical database management system to store and manage customer data in a hierarchical structure. IMS/DB provides interfaces through which IMS/DB applications or batch programs can conveniently access the database.
An application must call a standard IMS function to access transaction messages or databases in the IMS system. Such IMS functions are provided through the standard application interface called Data Language One (DL/I) that is provided in each programming language.
2. Basic Database Concepts
When computer system was first introduced, data was either stored in application-specific data sets or created as part of each program. As a result, multiple copies of the same data were often stored in multiple data sets. For example, detailed information about customers is used by both ordering program and shipping program.
The following are the possible problems that may occur in such case.
-
Since data is processed independently in each program, its value may be different in each program. For example, the customer address information stored in a data set of an ordering program may be different from that of a shipping program.
-
To modify the common data, duplicate copies of the data must be modified across multiple storages. This incurs higher update overhead and processing time.
-
As there is no device for centralized data management, it is more difficult to control illegal data access and prevent data loss.
-
Data storage could be wasted due to duplicated data.
In contrast, the following are the benefits of using the database management system that stores and manages customer’s application data in a hierarchical data structure.
-
Data integrity can be maintained and multiple applications can concurrently access and change data.
-
Even when applications fail to run, data integrity can be maintained across multiple database records.
-
Data loss can be prevented through the data backup and recovery utility.
-
A utility is provided for user to monitor data and implement performance tuning.
3. Hierarchical Database
A hierarchical model was adopted to store data in IBM IMS/DB. In a hierarchical structure, each entity is managed as a unit of segment.
The hierarchical data structure can be explained with the concept of segment type and segment instance. Segment type indicates the type of segment, and segment instance is the actual data of the segment type.
Each segment in a hierarchical data structure is connected in a parent/child relationship of a hierarchical structure. A parent segment instance can have 0 or more child segment instances, but a child segment instance can have only one parent segment instance. Two or more segment instances of the same type and with the same parent instance are twin segments of one another, and the child segment instances of different types and with the same parent instances are called sibling segments.
A parent segment can have children with different segment types. A child segment can be a parent segment and it can have child segments. The segment with no parent segments is called the root segment and is the only segment at the top of the hierarchy. All segment instances under one root segment instance are grouped into a DL/I database record, and the collection of such records make up the DL/I database.
Segment hierarchical path is a list of consecutive segments from the root to a specific segment to search for in the database. DL/I uses a sequential field to distinguish a particular segment from others and access it. In general, each segment contains a sequential field. Twin segment instances with the same parent must have a unique sequential value.
As previously mentioned, IMS/DB provides two kinds of database segment access path as follows. Each path provides applications with a distinct access path to the physical database, and can be defined on top of the existing database structure.
-
Logical Relationship
One or more physical databases are logically connected and applications can be access them as if they are a single database.
-
Secondary Indexes
Applications can access database records through root or non-root segments.
4. Access Methods
Databases, segments, and database records are physically organized according to the database access method such as HSAM, HDAM, or DEDB. Database access methods use mainframe database access methods to perform data I/O to a physical disk.
Hierarchical database structure and application access methods are defined by control blocks such as DBD, PSB, or ACB. A database administrator creates macro statements in a script and compiles it to create control blocks, which are then used by the database system and applications.
There are various types of database access methods used to define and store data segments and records. Before selecting a particular method, you need to fully analyze application requirements. This is because a choice of a database access method can affect performance of an application or available functions.
The following are the database types used in the most common hierarchical database configurations.
Database Configuration | Database Type |
---|---|
Hierarchical Direct Access Method |
HDAM |
Hierarchical Indexed Direct Access Method |
HIDAM |
Hierarchical Sequential Access Method |
HSAM |
Hierarchical Indexed Sequential Access Method |
HISAM |
Data Entry Database |
DEDB |
The following describes each hierarchical database access methods.
-
Hierarchical Direct
A hierarchical direct structure is a storage structure where physical database records are interconnected by address pointers stored in the prefix of each segment. There are hierarchical direct access method (HDAM) and hierarchical indexed direct access method (HIDAM).
-
HDAM uses a randomized algorithm to search for a root segment.
-
HIDAM uses an index to search for a root segment.
-
-
Hierarchical Sequential
A hierarchical sequential structure is a storage structure where relationship of database segments is formed based on the adjacency of the physical database records. Because HDAM has more advantages, HSAM is rarely used. There are hierarchical sequential access method (HSAM) and hierarchical indexed sequential access method (HISAM).
-
Data Entry Database (DEDB)
DEDB is designed to be suitable for processing large volumes of data. However, this method can only be used to access a database that supports this method.
A database with hierarchical direct or hierarchical sequential structure is called a full function database, and DEDB is called a fast path database. There is another fast path database called Main Storage Database (MSDB) supplied by IBM mainframe, but it has recently been replaced with DEDB, which supports the virtual storage option (VSO).
-
Index Database
An index database structure physically implements secondary index or HIDAM primary index.
-
Generalized Sequential Access Method (GSAM)
A GSAM provides APIs for batch or BMP programs to access sequential data set records.
5. Support Functions
As a counterpart to IBM IMS/DB, more functions are currently under development for HiDB. It currently supports the following database access methods.
-
Hierarchical Sequential Access Method (HSAM)
-
Simple HSAM (SHSAM)
-
Hierarchical Indexed Sequential Access Method (HISAM)
-
Simple HISAM (SHISAM)
-
Hierarchical Direct Access Method (HDAM)
-
Hierarchical Indexed Direct Access Method (HIDAM)
-
Data Entry Database (DEDB)
HiDB uses VSAM access methods for data set access, and does not support OSAM access methods.
OpenFrame TSAM supports mainframe VSAM access methods. For the detailed information about VSAM access methods, refer to OpenFrame Data Set Guide. |
HiDB also supports the following advanced features for database record access.
-
Logical Relationship
-
Secondary Indexes
For details about advanced features of HiDB, refer to Advanced Features.