什么是層次數據模型?
2023-03-22 14:40:57 閱讀(243)
數據庫模型根據數據模型來劃分,而數據庫管理系統(Database Management System)有自己的數據結構,目前比較成熟的在數據庫系統中的數據模型有:層次模型、網狀模型和關系模型。它們之間的根本區別在于數據之間聯系的表示方式不同(即記錄型之間的聯系方式不同)。
層次模型以“樹結構”表示數據之間的聯系。
網狀模型是以“圖結構”來表示數據之間的聯系。
關系模型是用“二維表”(或稱為關系)來表示數據之間的聯系的。
層次模型(Hierchical)
層次模型是數據庫系統最早使用的一種模型,它的數據結構是一棵“有向樹”。根結點在最上端,層次最高,子結點在下,逐層排列。
層次模型的特征是:
在一個層次模型中的限制條件是:
(1)有且僅有一個節點,無父節點,它為樹的根;(有且僅有一個結點沒有雙親,該節點就是根結點。)
(2)其他節點有且僅有一個父節點。(根以外的其他結點有且僅有一個雙親結點 )這就使得層次數據庫系統只能直接處理一對多的實體關系。
(3)任何一個給定的記錄值只有按照其路徑查看時,才能顯出它的全部意義,沒有一個子女記錄值能夠脫離雙親記錄值而獨立存在。
比如:
一個教師學生層次模型。該層次模型有4個記錄類型,即實體。
分別是:
(1)記錄型(實體)系是根結點,由編號、名稱、專業、人數屬性(字段)組成。它有兩個子結點,分別是學院老師實體和課程實體。
(2)記錄型(實體)教師是學院的子結點,它有6個屬性(字段)組成。
(3)記錄型(實體)課程由4個屬性(字段)組成。
(4)記錄型(實體)教師由6個屬性(字段)組成。課程與教師是葉子結點,由學院到老師、老師到課程都是一對多的聯系。
數據完整性約束
其主要四個功能:增刪查改;要滿足完整性約束條件;
增加(插入):滿足必須有雙親節點,即如果加入教師,就必須分配到學院中;
刪除:如果是字節點,不影響,直接刪除字節點,如果是雙親節點,則整個字節點被刪除;如果刪除整個教研室則教研室的老師不存在這個體系;
查找:根據樹狀結構自上而下查找;
修改:更新相應的關系的信息。
其優缺點:
優點:
比較簡單,容易使用;
結構清晰,現實中公司、家族等都存在類似結構;
良好的完整性支持;
查詢效率高,模型層次是有向邊,常記錄存取路徑。
缺點:
有很多不是單向關系,一對多,多對一,只能通過引進冗余數據或建非自然的數據組織如創建虛擬節點的方法來解決,易產生不一致性;
插入刪除限制太多
查找字節點必須通過雙親;
樹結點中任何記錄的屬性是不可再分的簡單數據類型;
還有一些市場具象的層次模型:
最有影響的層次模型的DBS是20世紀60年代末,IBM公司推出的IMS層次模型數據庫系統。