概述
IMS是最早的大型資料庫管理系統,其資料庫模式是多個物理資料庫記錄型(PDBR)的集合。每個PDBR對應層次數據模型的一個層次模式,用一個DBD定義。各個用戶所需數據的邏輯結構稱為外模式,每個外模式是一組邏輯資料庫記錄型(LDBR)的集合。LDBR是應用程式所需的局部邏輯結構。用戶按照外模式操縱數據。數據定義
大型資料庫的數據定義包括資料庫模式定義和外模式定義。大型資料庫的資料庫模式是物理資料庫記錄型的集合。每個物理資料庫記錄型對應於層次數據模型中的一個層次模式,由一個DBD定義。物理資料庫記錄型到存儲資料庫的映射包含在這個物理資料庫記錄型的DBD定義中。
大型資料庫的外模式是邏輯資料庫記錄型的集合。每個邏輯資料庫記錄型由一個PCB定義。一個邏輯資料庫記錄型到大型資料庫模式的映射包含在這個邏輯資料庫記錄型的PCB定義中。用戶是按照外模式操縱數據的。
模式定義
大型資料庫的資料庫模式是一組物理資料庫記錄型(PDBR型),每個PDBR型是由若干相關聯的片段型組成的一棵層次樹結構。它的一個根片段值及其後裔片段值構成了該PDBR型的一個值,即資料庫記錄或實例。
每個PDBR型通過一個DBD語句群定義其邏輯結構及其存儲結構映像,大型資料庫模式的定義是一組DBD定義的排列。在DBD定義過程中各片段型出現的次序決定了資料庫各片段值的存儲次序,從而會影響到某些DL/1語句的執行結果。要求這種次序與片段型在PDBR型樹的層次順序(自頂向下,自左向右)保持一致。
外模式定義
外模式是各個用戶所需數據的局部邏輯結構,是應用程式的數據視圖,一般地只涉及資料庫的一部分,故需在PDBR型的基礎上分別定義。一個資料庫模式有若干外模式,允許多個應用程式共享一個外模式,但每個程式只能啟動一個外模式。一個外模式是一組邏輯資料庫記錄型(LDBR型)的集合,記為PSB。一個LDBR型是某個PDBR型的子樹,由一個PCB定義。
外模式的定義遵循如下規則:
‘若外模式包含某個片斷型,則必須包含其父片斷型。’
下邊說明一個邏輯資料庫記錄型是如何定義的。
(1)教學資料庫的一個LDBR型
(2)LDBR型的PCB定義
用PCB定義一個邏輯資料庫記錄型LDBR
(1)PCBtype=DB,DBDname=TS,KEYLENGH=10
(2)SENSEGname=dept,PROCopt=G
(3)SENSEGname=course,parent=dept,procopt=all
(4)SENSEGname=student,parent=course,procopt=r
IMS的數據操縱語言是DL/1。
用戶使用某種高級語言(稱為宿主語言)編程,
通過嵌入DL/1語句實現對資料庫的存取。
DL/1命令
GU檢索某片段
GN順序檢索下一片段
GNP在當前父片段內檢索下一片段
GHU同GU,為刪改作準備
ghn同GN,為刪改作準備
GHNP同GUP,為刪改作準備
ISRT插入片段
REPL修改片段內容
DELT刪除某片段及其後裔
LOAD初始載入一個片段
CHKP建立檢查點
SCHD調度PSB
TERM釋放PSB
IMS的存儲結構
IMS提供四種存儲結構:
以下各存儲結構的示例均以教學資料庫PDBR為模型。
1.HSAM:層次順序訪問方法,片段按層次順序作物理鄰接存儲。
2.HISAM:層次索引順序訪問方法,
非根片段按層次順序值升序鄰接存儲,
根片段用順序域索引的方法組織並指向下屬區域。
3.HDAM:層次直接訪問方法,片段的存儲採用離散分布方式,
根片段用順序域HASH方法組織,從根片段出發用指針
按層次順序值的順序把物理上分散的從屬片段連結起來。
4.HIDAM:層次索引直接訪問方法,類似於HDAM,不同的是,
根片段採用順序域索引技術組織,而不是HASH方法。
故是HDAM和HISAM兩種方法的混合。
根片段從片段
HSAM順序鄰接順序鄰接
HISAM索引法順序鄰接
HDAMHASH法鍊表
HIDAM索引法鍊表