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