Analyzing data access
The DBA chooses a type of database, based on how the majority of programs that use the database will access the data.
IMS databases are categorized according to the
access method used. The types of databases that can be defined are as follows:
- Hierarchical Direct Access Method (HDAM)
- Partitioned Hierarchical Direct Access Method (PHDAM)
- Hierarchical Indexed Direct Access Method (HIDAM)
- Partitioned Hierarchical Indexed Direct Access Method (PHIDAM)
- Main Storage Database (MSDB)
- Data Entry Database (DEDB)
- Hierarchical Sequential Access Method (HSAM)
- Hierarchical Indexed Sequential Access Method (HISAM)
- Generalized Sequential Access Method (GSAM)
- Simple Hierarchical Sequential Access Method (SHSAM)
- Simple Hierarchical Indexed Sequential Access Method (SHISAM)
Important: PHDAM and PHIDAM are the partitioned versions of the HDAM and HIDAM
database types, respectively. The corresponding descriptions of the HDAM and HIDAM database types
therefore apply to PHDAM and PHIDAM.
Some of the information that you can gather to help the DBA to decide the type of database to set
up are as follows:
- To access a database record, a program must first access the root of the record. How will each
program access root segments?Is it:
- Directly
- Sequentially
- Both
- The segments within the database record are the dependents of the root segment. How will each
program access the segments within each database record? Is it:
- Directly
- Sequentially
- Both
It is important to note the distinction between accessing a database record and accessing segments within the record. A program might access database records sequentially, but after the program is within a record, the program might access the segments directly. These are different, and can influence the choice of the access method to use.
- To what extent will the program update the database? Is it:
- By adding new database records?
- By adding new segments to existing database records?
- By deleting segments or database records?
Again, note the difference between updating a database record and updating a segment within the database record.