數據庫中的常用的數據模型 層次模型 網狀模型 關係模型

層次數據模型

    定義:層次數據模型是用樹狀<層次>結構來組織數據的數據模型。

    滿足下面兩個條件的基本層次聯繫的集合爲層次模型
    1. 有且只有一個結點沒有雙親結點,這個結點稱爲根結點
    2. 根以外的其它結點有且只有一個雙親結點

其實層次數據模型就是的圖形表示就是一個倒立生長的樹,由基本數據結構中的樹(或者二叉樹)的定義可知,每棵樹都有且僅有一個根節點,其餘的節點都是非根節點。每個節點表示一個記錄類型對應與實體的概念,記錄類型的各個字段對應實體的各個屬性。各個記錄類型及其字段都必須記錄。
  在這裏插入圖片描述
  層次模型的特點:
    結點的雙親是唯一的
    只能直接處理一對多的實體聯繫
    每個記錄類型可以定義一個排序字段,也稱爲碼字段
    任何記錄值只有按其路徑查看時,才能顯出它的全部意義
    沒有一個子女記錄值能夠脫離雙親記錄值而獨立存在
  實例:
    在這裏插入圖片描述
    在這裏插入圖片描述
    
    層次模型的完整性約束條件
    無相應的雙親結點值就不能插入子女結點值
    如果刪除雙親結點值,則相應的子女結點值也被同時刪除
    更新操作時,應更新所有相應記錄,以保證數據的一致性

    優點
    層次模型的數據結構比較簡單清晰
    查詢效率高,性能優於關係模型,不低於網狀模型
    層次數據模型提供了良好的完整性支持
    缺點
    結點之間的多對多聯繫表示不自然
    對插入和刪除操作的限制多,應用程序的編寫比較複雜
    查詢子女結點必須通過雙親結點
    層次命令趨於程序化

層次數據庫系統的典型代表是IBM公司的IMS(Information Management System)數據庫管理系統


網狀數據模型

    定義:用有向圖表示實體和實體之間的聯繫的數據結構模型稱爲網狀數據模型。
    滿足下面兩個條件的基本層次聯繫的集合稱爲網狀數據模型:
    1. 允許一個以上的結點無雙親;
    2. 一個結點可以有多於一個的雙親。
在這裏插入圖片描述
  其實,網狀數據模型可以看做是放鬆層次數據模型的約束性的一種擴展。網狀數據模型中所有的節點允許脫離父節點而存在,也就是說說在整個模型中允許存在兩個或多個沒有根節點的節點,同時也允許一個節點存在一個或者多個的父節點,成爲一種網狀的有向圖。因此節點之間的對應關係不再是1:n,而是一種m:n的關係,從而克服了層次狀數據模型的缺點。
  特徵:
     1. 可以存在兩個或者多個節點沒有父節點;
     2. 允許單個節點存在多於一個父節點;
  網狀數據模型中的,每個節點表示一個實體,節點之間的有向線段表示實體之間的聯繫。網狀數據模型中需要爲每個聯繫指定對應的名稱。
  實例:  
在這裏插入圖片描述

    優點:
    網狀數據模型可以很方便的表示現實世界中的很多複雜的關係;
    修改網狀數據模型時,沒有層次狀數據模型的那麼多的嚴格限制,可以刪除一個節點的父節點而依舊保留該節點;也允許插入一個沒有任何父節點的節點,這樣的插入在層次狀數據模型中是不被允許的,除非是首先插入的是根節點;
    實體之間的關係在底層中可以藉由指針指針實現,因此在這種數據庫中的執行操作的效率較高;

    缺點:
     網狀數據模型的結構複雜,使用不易,隨着應用環境的擴大,數據結構越來越複雜,數據的插入、刪除牽動的相關數據太多,不利於數據庫的維護和重建。
     網狀數據模型數據之間的彼此關聯比較大,該模型其實一種導航式的數據模型結構,不僅要說明要對數據做些什麼,還說明操作的記錄的路徑;
    DDL、DML語言複雜,用戶不容易使用
    記錄之間聯繫是通過存取路徑實現的,用戶必須瞭解系統結構的細節

    網狀模型與層次模型的區別
    網狀模型允許多個結點沒有雙親結點
    網狀模型允許結點有多個雙親結點
    網狀模型允許兩個結點之間有多種聯繫(複合聯繫)
    網狀模型可以更直接地描述現實世界
    層次模型實際上是網狀模型的一個特例

典型代表是DBTG系統,亦稱CODASYL系統,是20世紀70年代由DBTG提出的一個系統方案。實際系統:Cullinet Software公司的 IDMS、Univac公司的 DMS1100、Honeywell公司的IDS/2、HP公司的IMAGE。


三、關係型數據模型
  關係型數據模型對應的數據庫自然就是關係型數據庫了,這是目前應用最多的數據庫。
  定義:使用表格表示實體和實體之間關係的數據模型稱之爲關係數據模型。
  關係型數據庫是目前最流行的數據庫,同時也是被普遍使用的數據庫,如MySQL就是一種流行的數據庫。支持關係數據模型的數據庫管理系統稱爲關係型數據庫管理系統。
  特徵:
     1. 關係數據模型中,無論是是實體、還是實體之間的聯繫都是被映射成統一的關係—一張二維表,在關係模型中,操作的對象和結果都是一張二維表,它由行和列組成;
     2. 關係型數據庫可用於表示實體之間的多對多的關係,只是此時要藉助第三個關係—表,來實現多對多的關係;
     3. 關係必須是規範化的關係,即每個屬性是不可分割的實體,不允許表中表的存在;
  實例:

在這裏插入圖片描述

    優點:
     結構簡單,關係數據模型是一些表格的框架,實體的屬性是表格中列的條目,實體之間的關係也是通過表格的公共屬性表示,結構簡單明瞭;
    關係數據模型中的存取路徑對用戶而言是完全隱蔽的,是程序和數據具有高度的獨立性,其數據語言的非過程化程度較高;
    操作方便,在關係數據模型中操作的基本對象是集合而不是某一個元祖;
     有堅實的數學理論做基礎,包括邏輯計算、數學計算等;

    缺點:
    查詢效率低,關係數據模型提供了較高的數據獨立性和非過程化的查詢功能(查詢的時候只需指明數據存在的表和需要的數據所在的列,不用指明具體的查找路徑),因此加大了系統的負擔;
    由於查詢效率較低,因此需要數據庫管理系統對查詢進行優化,加大了DBMS的負擔;

    相關概念:
    關係(Relation):一個關係對應通常說的一張表
    元組(Tuple):表中的一行即爲一個元組
    屬性(Attribute):表中的一列即爲一個屬性,給每一個屬性起一個名稱即屬性名
    主碼(Key):也稱碼鍵。表中的某個屬性組,它可以唯一確定一個元組
    域(Domain):是一組具有相同數據類型的值的集合。屬性的取值範圍來自某個域。
    分量:元組中的一個屬性值。
    關係模式:對關係的描述,關係名(屬性1,屬性2,…,屬性n),如:學生(學號,姓名,年齡,性別,系名,年級)

    關係必須是規範化的,滿足一定的規範條件
    最基本的規範條件:關係的每一個分量必須是一個不可分的數據項, 不允許表中還有表

    術語對比
在這裏插入圖片描述

    關係的完整性約束條件
    實體完整性
    實體完整性是指實體的主屬性不能取空值。實體完整性規則規定實體的所有主屬性都不能爲空。實體完整性針對基本關係而言的,一個基本關係對應着現實世界中的一個主題,例如上例中的學生表對應着學生這個實體。現實世界中的實體是可以區分的,他們具有某種唯一性標誌,這種標誌在關係模型中稱之爲主碼,主碼的屬性也就是主屬性不能爲空。
    參照完整性
    在關係數據庫中主要是值得外鍵參照的完整性。若A關係中的某個或者某些屬性參照B或其他幾個關係中的屬性,那麼在關係A中該屬性要麼爲空,要麼必須出現B或者其他的關係的對應屬性中。
    用戶定義的完整性
    用戶定義完整性是針對某一個具體關係的約束條件。它反映的某一個具體應用所對應的數據必須滿足一定的約束條件。例如,某些屬性必須取唯一值,某些值的範圍爲0-100等。

計算機廠商新推出的數據庫管理系統幾乎都支持關係模型



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章