- IMS DB 基礎教程
- IMS DB - 首頁
- IMS DB - 概述
- IMS DB - 結構
- IMS DB - DL/I 術語
- IMS DB - DL/I 處理
- IMS DB - 控制塊
- IMS DB - 程式設計
- IMS DB - COBOL 基礎
- IMS DB - DL/I 函式
- IMS DB - PCB 掩碼
- IMS DB - SSA
- IMS DB - 資料檢索
- IMS DB - 資料操作
- IMS DB - 二級索引
- IMS DB - 邏輯資料庫
- IMS DB - 恢復
- IMS DB 有用資源
- IMS DB - 問答
- IMS DB - 快速指南
- IMS DB - 有用資源
IMS DB - 邏輯資料庫
IMS 資料庫有一條規則,即每個段型別只能有一個父段。這限制了物理資料庫的複雜性。許多 DL/I 應用程式需要允許段具有兩種父段型別的複雜結構。為了克服這個限制,DL/I 允許 DBA 實現邏輯關係,其中一個段可以同時具有物理父段和邏輯父段。我們可以在一個物理資料庫中建立額外的關係。實現邏輯關係後的新資料結構稱為邏輯資料庫。
邏輯關係
邏輯關係具有以下屬性:
邏輯關係是兩個在邏輯上而不是物理上相關的段之間的路徑。
通常,邏輯關係是在不同的資料庫之間建立的。但也可以在一個特定資料庫的段之間建立關係。
下圖顯示了兩個不同的資料庫。一個是學生資料庫,另一個是圖書館資料庫。我們建立了學生資料庫中的“已借書”段和圖書館資料庫中的“圖書”段之間的邏輯關係。
建立邏輯關係後,邏輯資料庫如下所示:
邏輯子段
邏輯子段是邏輯關係的基礎。它是一個物理資料段,但對於 DL/I 而言,它似乎有兩個父段。在上例中,“圖書”段有兩個父段。“已借書”段是邏輯父段,“圖書館”段是物理父段。一個邏輯子段例項只有一個邏輯父段例項,一個邏輯父段例項可以有多個邏輯子段例項。
邏輯雙胞胎
邏輯雙胞胎是邏輯子段型別的例項,它們都從屬於邏輯父段型別的單個例項。DL/I 使邏輯子段看起來類似於實際的物理子段。這也被稱為虛擬邏輯子段。
邏輯關係的型別
DBA 在段之間建立邏輯關係。為了實現邏輯關係,DBA 必須在相關物理資料庫的 DBDGEN 中指定它。邏輯關係有三種類型:
- 單向
- 雙向虛擬
- 雙向物理
單向
邏輯連線從邏輯子段到邏輯父段,反之則不行。
雙向虛擬
它允許雙向訪問。邏輯子段在其物理結構中以及相應的虛擬邏輯子段可以被視為成對的段。
雙向物理
邏輯子段在物理上儲存為其物理父段和邏輯父段的從屬段。對於應用程式程式,它看起來與雙向虛擬邏輯子段相同。
程式設計注意事項
使用邏輯資料庫的程式設計注意事項如下:
訪問資料庫的 DL/I 呼叫在邏輯資料庫中也保持不變。
程式規範塊指示我們在呼叫中使用的結構。在某些情況下,我們無法識別我們正在使用邏輯資料庫。
邏輯關係為資料庫程式設計增加了新的維度。
使用邏輯資料庫時必須小心,因為兩個資料庫整合在一起。如果修改一個數據庫,則必須在另一個數據庫中反映相同的修改。
程式規範應指示允許對資料庫進行哪些處理。如果違反處理規則,則會得到一個非空狀態程式碼。
連線段
邏輯子段總是以目標父段的完整連線鍵開頭。這稱為目標父段連線鍵 (DPCK)。對於邏輯子段,您需要始終在段 I/O 區域的開頭編碼 DPCK。在邏輯資料庫中,連線段建立在不同物理資料庫中定義的段之間的連線。連線段包含以下兩個部分:
- 邏輯子段
- 目標父段
邏輯子段包含以下兩個部分:
- 目標父段連線鍵 (DPCK)
- 邏輯子段使用者資料
在更新期間使用連線段時,可能可以透過單個呼叫新增或更改邏輯子段和目標父段中的資料。這也取決於 DBA 為資料庫指定的規則。對於插入,請在正確的位置提供 DPCK。對於替換或刪除,請勿更改連線段任一部分中的 DPCK 或序列欄位資料。