層次模型(樹形結構)
- 2019 年 10 月 27 日
- 筆記
在格式化模型中,實體用記錄表示,實體的屬性對應記錄的數據項(或字段)。
層次模型所滿足的兩個條件:
- 有且只有一個結點沒有雙親結點,這個結點稱為根結點。
- 根節點以外的其他結點有且只有一個雙親結點
在層次模型中,每個結點表示一個記錄類型,每個記錄類型可包含若干個字段,記錄類型描述的是實體,字段描述的是實體的屬性。
層次數據模型的存儲結構
- 鄰接法:
按照層次樹前序穿越的順序把所有記錄值依次鄰接存放,即通過物理空間的位置相鄰來體現層次順序。
- 鏈接法:
用指針來反映數據之間的層次聯繫。
層次模型的優點:
- 層次模型的數據結構比較簡單清晰
- 層次數據庫的查詢效率高(因為層次模型中記錄之間的聯繫用有向邊表示,這種聯繫在DBMS中用指針來實現,當要存取某個結點的記錄值,DBMS就沿着這一條路徑很快找到該記錄值,所以層次數據庫的性能優於關係係數據庫,不低於網狀數據庫)
- 層次數據模型提供了良好的完整性支持
層次模型的缺點:
- 現實世界中很多聯繫是非層次性的,如結點之間具有多對多聯繫
- 一個結點具有多個雙親等,對插入刪除操作的限制比較多,因此應用程序的編寫比較複雜
- 查詢子女結點必須通過雙親結點
- 由於結構嚴密,層次命令趨於程序化
層次模型對具有一對多的層次聯繫的部門描述非常自然、直觀,容易理解。這是層次數據庫的突出優點。