Ims-db-dli-processing
提供:Dev Guides
IMS DB-DL/I処理
IMS DBは、さまざまなレベルでデータを保管します。 データは、アプリケーションプログラムからDL/I呼び出しを発行することで取得および挿入されます。 DL/I呼び出しについては、今後の章で詳しく説明します。 データは、次の2つの方法で処理することができます-
- 順次処理
- ランダム処理
順次処理
データベースからセグメントが順次取得されると、DL/Iは事前定義されたパターンに従います。 IMS DBの順次処理について理解しましょう。
以下にリストされているのは、順次処理に関する注意点です-
- DL/Iのデータにアクセスするための事前定義されたパターンは、最初に階層を下って、次に左から右です。
- ルートセグメントが最初に取得され、次にDL/Iが最初の左の子に移動し、最下位レベルまで下がります。 最下位レベルでは、ツインセグメントのすべての出現を取得します。 次に、右のセグメントに進みます。
- よりよく理解するために、セグメントにアクセスするためのフローを示す上の図の矢印を観察してください。 ライブラリはルートセグメントであり、フローはそこから始まり、車まで進んで単一のレコードにアクセスします。 すべてのデータレコードを取得するために、すべてのオカレンスに対して同じプロセスが繰り返されます。
- データにアクセスする際、プログラムはデータベース内の「位置」を使用して、セグメントの取得と挿入を支援します。
ランダム処理
ランダム処理は、IMS DBのデータの直接処理とも呼ばれます。 IMS DBでのランダム処理を理解するための例を取り上げましょう-
以下にリストされているのは、ランダム処理に関する注意点です-
- ランダムに取得する必要があるセグメントオカレンスには、依存するすべてのセグメントのキーフィールドが必要です。 これらのキーフィールドは、アプリケーションプログラムによって提供されます。
- 連結キーは、ルートセグメントから取得するセグメントへのパスを完全に識別します。
- Commerceセグメントのオカレンスを取得する場合、Library、Books、Commerceなど、依存するセグメントの連結キーフィールド値を指定する必要があるとします。
- ランダム処理は、順次処理よりも高速です。 実際のシナリオでは、アプリケーションはシーケンシャル処理とランダム処理の両方の方法を組み合わせて、最高の結果を達成します。
キーフィールド
注意点-
- キーフィールドは、シーケンスフィールドとも呼ばれます。
- キーフィールドはセグメント内に存在し、セグメントオカレンスを取得するために使用されます。
- キーフィールドは、セグメントの発生を昇順で管理します。
- 各セグメントでは、キーフィールドまたはシーケンスフィールドとして使用できるフィールドは1つだけです。
検索フィールド
前述のように、キーフィールドとして使用できるフィールドは1つだけです。 キーフィールドではない他のセグメントフィールドの内容を検索する場合、データを取得するために使用されるフィールドは検索フィールドと呼ばれます。