- この記事は、IBM Community Japanの主催する2026年ナレッジモール研究における、「WG ID: 2026-C-05 メインフレーム若手技術者の広場」の成果物です。
- 当記事の著作権はIBMに帰属します。詳細はこちらを参照ください。
はじめに
当記事では、IBMメインフレーム(z/OS)で長年利用されているIMS(IBM Information Management System)の DB機能(IMS DB)についてご紹介します。
IMS DBは銀行、保険、公共機関などの大規模オンラインシステムで広く利用されています。
IMS DBの特徴
1. 階層型DB
・最上位はルートセグメント
・DETAILはPURCHASE ORDERの子セグメント
・PURCHASE ORDERはDETAILの親セグメント
・階層型DBのデータアクセス順は、1上から下、2左から右、3前から後ろになります。上図の場合、上から順番にセグメントへとアクセスすると以下の順でアクセスが行われます。
1:PART - 2:Stock1 -3:Stocck2-4:Stock3-5:Purchase Order-6:Detail
リレーショナルDBは「表(Table)」イメージでデータを保持しますが、それとは考え方が異なります。
2. DL/Iによるデータアクセス
IMS DBは主にDL/I (Data Language/I) というインターフェースでアクセスします。
DL/I呼び出しを使ってDBにアクセスする命令コードは以下の通りです。
<主要なDL/I機能コード一覧>
| 機能(何をしてほしいのか) | コード |
|---|---|
| セグメントの取り出し | GU,GN |
| 削除または更新のためのセグメントの取り出し | GHU,GHN |
| 削除 | DLET |
| 更新 | REPL |
| 追加 | ISRT |
3. 複数のDB編成方式
IMS DBには用途に応じて複数のDBタイプがあります。
<主要なDB編成方式一覧>
| 編成方式 | 説明 |
|---|---|
| HSAM | 階層順次アクセス方式 |
| HISAM | 階層索引順次アクセス方式 |
| HDAM | 階層直接アクセス方式 |
| HIDAM | 階層索引直接アクセス方式 |
| PHIDAM | 区分階層索引直接アクセス方式 |
| DEDB | Fast Path用高速DB |
主要なDB編成方式
ここでは前項で説明したDBのうち、現場でよく使われる2つのDB編成方式について掘り下げて説明します。
1. HIDAM
索引を使ってルートセグメントへ高速アクセスする階層型データベース
HIDAMは2つのDBから構成されます。
1. 索引DB:データDBのルートセグメントのアドレスを持つDB
顧客番号1001 → アドレスA
顧客番号1002 → アドレスB
顧客番号1003 → アドレスC
2. データDB:実データを持つDB
顧客1001
├─口座A
└─口座B
顧客1002
└─口座C
例えば顧客番号1001のデータにアクセスしたい場合、以下の順番でデータ検索されます。
①索引DBから、顧客番号1001のデータはアドレスAにあることがわかる
②データDBのアドレスAにアクセスして顧客1001セグメントを取得
③顧客1001の子セグメントである口座Aを取得
2. DEDB
IMS Fast Path(FP)機能(※)専用のDB。
※FP機能:大量トランザクションを高速に処理することを目的としたIMSの拡張機能。
通常トランザクションとは異なるコマンド・手順・設計等を用いる。
・区分化
データベースは複数のエリアに分割されています(最大2048エリア)。
データはルートキーを元にしてランダマイザーによってどのエリアに格納されるか決定されます。
※ランダマイザー:ルートキーからデータの格納場所を計算する関数
・レコード構造
ランダマイザーを利用した直接アクセス方式です。
ルートキーを元にランダマイザーでアドレスを計算し、直接アクセスします。
まとめ
IMS DBは「高速で堅牢な階層型データベース」であり、現在でも大規模な金融・公共システムの基幹業務を支えているDBMS(Database Management System:データベース管理システム)です。
参考文献
当資料に掲載の情報・図表に関する注釈
| 番号 | 対象 | 区分 | 出典・利用許諾状況など |
|---|---|---|---|
| *i1 | 図 | 引用 | IBMが提供しているサイトより取得 https://www.ibm.com/docs/en/zos-basic-skills?topic=product-ims-database-manager |
