層次資料庫背景
層次模型資料庫系統是最早研製成功的資料庫系統,這種資料庫最成功的典型是IMS。
IMS的全稱時Information Management System,由IBM公司研製成功。
IMS於1969年投入運行,最早的版本有IMS/360-1和IMS/360-2。較近的版本有IMS/VS DL/1,它是在作業系統DOS/VS(Disk Operation System/Virtual Storage)支持下運行。
IMS/VS DL/1的數據操縱語言叫DL/1(Data Language/1),是宿主型語言。它使用的宿主語言有彙編語言,PL/1,COBOL,RPG ΙΙ等。應用程式是以宿主語言為基礎加上DL/1語句組成。DL/1語句實際上是宿主語言的調用語句(call語句)。每一個這樣的調用語句都對應有一個用宿主編寫的子程式來完成對資料庫的某種操縱功能。
IMS/VS DL/1的數據描述語言是彙編語言的宏語句。
層次資料庫IMS的結構
層次資料庫IMS的系統結構如圖7-1所示。
I/O區即為用戶工作區,用戶通過自己的應用程式來實現對資料庫的各種操縱。
IMS控制程式即為資料庫管理系統DBMS。
資料庫描述DBD(Data Base Description)的集合是IMS資料庫的概念模式並有部分存貯結構的定義。它規定了資料庫的總體邏輯結構和部分物理存貯結構。
若干個PCB(Program Comunication Block)組成一個PSB(Program Specification Block)相當於IMS資料庫的外模式,它是相應於某個用戶需要的局部邏輯結構,是提供給該用戶的一個資料庫子集的數據結構。
IMS/VS DL/1的資料庫的基本數據結構是層次結構,即數據之間的聯繫表現為分層的樹狀結構。
每個實體的信息構成一個片段(segment),它是應用程式訪問資料庫的基本數據單位,每個片段成為樹結構中的一個結點(node),各個結點之間只有縱向聯繫。
每個結點最多有一個比它高一級的節點,這高一級的結點叫雙親。沒有雙親的結點叫根。每一個層次結構中有且僅有一個根,叫根片段。
層次結構中的每一個片段,相當於
網狀資料庫中的一個記錄。每個片段由多個欄位組成。欄位相當於網狀資料庫中的
數據項。
資料庫管理員根據需要定義一個片段的名及其中每個欄位的名和數據類型(字元型、數字型等)及長度。片段的這種定義叫片段型,片段型的每一個具體取值叫片段值。
每個片段定義一個關鍵欄位(key)用來標識片段值,它應能唯一地標識出一個片段值。
同一雙親值且同一片段型的各個片段值稱為孿生片段值。顯然根片段型的各片段值互為孿生。
一個根片段型及其所有從屬片段型組成的一個層次結構叫一個物理資料庫記錄型。
根片段型的一個值及其所有從屬片段值的整體為一個物理資料庫記錄值。
對應於同一物理資料庫記錄型的所有物理資料庫記錄值的集合稱為一個物理資料庫。