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