層次模型(樹形結構)

  • 2019 年 10 月 27 日
  • 筆記

在格式化模型中,實體用記錄表示,實體的屬性對應記錄的數據項(或字段)。

 

層次模型所滿足的兩個條件:

  1. 有且只有一個結點沒有雙親結點,這個結點稱為根結點。
  2. 根節點以外的其他結點有且只有一個雙親結點

 

在層次模型中,每個結點表示一個記錄類型,每個記錄類型可包含若干個字段,記錄類型描述的是實體,字段描述的是實體的屬性。

 

層次數據模型的存儲結構

  1. 鄰接法:

按照層次樹前序穿越的順序把所有記錄值依次鄰接存放,即通過物理空間的位置相鄰來體現層次順序。

  1. 鏈接法:

用指針來反映數據之間的層次聯繫。

 

層次模型的優點:

  1. 層次模型的數據結構比較簡單清晰
  2. 層次數據庫的查詢效率高(因為層次模型中記錄之間的聯繫用有向邊表示,這種聯繫在DBMS中用指針來實現,當要存取某個結點的記錄值,DBMS就沿着這一條路徑很快找到該記錄值,所以層次數據庫的性能優於關係係數據庫,不低於網狀數據庫)
  3. 層次數據模型提供了良好的完整性支持

 

層次模型的缺點:

  1. 現實世界中很多聯繫是非層次性的,如結點之間具有多對多聯繫
  2. 一個結點具有多個雙親等,對插入刪除操作的限制比較多,因此應用程序的編寫比較複雜
  3. 查詢子女結點必須通過雙親結點
  4. 由於結構嚴密,層次命令趨於程序化

 

層次模型對具有一對多的層次聯繫的部門描述非常自然、直觀,容易理解。這是層次數據庫的突出優點。