Ims-db-logical-database

提供:Dev Guides
移動先:案内検索

IMS DB-論理データベース

IMSデータベースには、各セグメントタイプは1つの親しか持つことができないというルールがあります。 これにより、物理データベースの複雑さが制限されます。 多くのDL/Iアプリケーションでは、セグメントに2つの親セグメントタイプを持たせることができる複雑な構造が必要です。 この制限を克服するために、DL/Iでは、DBAは、セグメントが物理的および論理的な親を持つことができる論理関係を実装できます。 1つの物理データベース内に追加の関係を作成できます。 論理関係を実装した後の新しいデータ構造は、論理データベースと呼ばれます。

論理関係

論理的な関係には、次のプロパティがあります-

  • 論理関係は、物理的にではなく論理的に関連付けられた2つのセグメント間のパスです。
  • 通常、別々のデータベース間で論理的な関係が確立されます。 ただし、特定のデータベースのセグメント間で関係を持つことは可能です。

次の図は、2つの異なるデータベースを示しています。 1つは学生データベースで、もう1つは図書館データベースです。 StudentデータベースのBooks発行セグメントとLibraryデータベースのBooksセグメントの間に論理的な関係を作成します。

std and library database

これは、論理関係を作成するときに論理データベースがどのように見えるかです-

論理データベース

論理子セグメント

論理子セグメントは、論理関係の基礎です。 これは物理データセグメントですが、DL/Iの場合、2つの親があるように見えます。 上記の例のBooksセグメントには、2つの親セグメントがあります。 発行された本のセグメントは論理的な親であり、図書館のセグメントは物理的な親です。 1つの論理子セグメントオカレンスには1つの論理親セグメントオカレンスのみがあり、1つの論理親セグメントオカレンスには多くの論理子セグメントオカレンスを含めることができます。

論理双子

論理双子は、論理子セグメントタイプのオカレンスであり、すべて論理親セグメントタイプの単一オカレンスに従属します。 DL/Iは、論理子セグメントを実際の物理子セグメントのように見せます。 これは、仮想論理子セグメントとも呼ばれます。

論理関係の種類

DBAは、セグメント間に論理的な関係を作成します。 論理関係を実装するには、DBAは関係する物理データベースのDBDGENでそれを指定する必要があります。 論理関係には3つのタイプがあります-

  • 一方向
  • 双方向仮想
  • 双方向の物理

一方向

論理的な接続は、論理的な子から論理的な親へと進み、その逆はできません。

双方向仮想

双方向にアクセスできます。 物理構造内の論理子と対応する仮想論理子は、ペアのセグメントとして見ることができます。

双方向の物理

論理子は、物理的および論理的な親の両方に物理的に格納された従属です。 アプリケーションプログラムから見ると、双方向の仮想論理子と同じように見えます。

プログラミングの考慮事項

論理データベースを使用するためのプログラミングの考慮事項は次のとおりです-

  • データベースにアクセスするためのDL/I呼び出しは、論理データベースでも同じままです。
  • プログラム仕様ブロックは、呼び出しで使用する構造を示します。 場合によっては、論理データベースを使用していることを特定できません。
  • 論理関係は、データベースプログラミングに新しい次元を追加します。
  • 2つのデータベースが統合されているため、論理データベースでの作業には注意が必要です。 1つのデータベースを変更する場合、同じ変更を他のデータベースに反映する必要があります。
  • プログラム仕様は、データベースで許可される処理を示す必要があります。 処理ルールに違反すると、非空白のステータスコードが表示されます。

連結セグメント

論理子セグメントは常に、宛先親の完全に連結されたキーで始まります。 これは、Destination Parent Concatenated Key(DPCK)と呼ばれます。 論理子のセグメントI/O領域の開始時にDPCKを常にコーディングする必要があります。 論理データベースでは、連結されたセグメントは、異なる物理データベースで定義されたセグメント間の接続を確立します。 連結セグメントは、次の2つの部分で構成されています-

  • 論理子セグメント
  • 宛先親セグメント

論理的な子セグメントは、次の2つの部分で構成されています-

  • 宛先親連結キー(DPCK)
  • 論理子ユーザーデータ

論理子

更新中に連結されたセグメントを操作する場合、1回の呼び出しで論理子と宛先親の両方のデータを追加または変更できる場合があります。 これは、DBAがデータベースに指定したルールにも依存します。 挿入の場合、正しい位置にDPCKを提供します。 置換または削除の場合、連結セグメントのいずれかの部分でDPCKまたはシーケンスフィールドデータを変更しないでください。