前言
數據模型是數據庫系統的核心,本文簡要介紹三種主要的數據庫模型。
一、格式化模型
格式化模型是層次模型和網狀模型的統稱
1.層次模型
① 層次數據模型的概念
層次模型用屬性結構來表示各類實體以及實體間的聯繫
② 層次模型的數據結構
特點:
- 結點的雙親是唯一的;
- 只能直接處理一對多的實體聯繫;
- 每個記錄類型可以定義一個排序段,也稱碼字段;
- 任何記錄值只有按其路徑查看時才能顯出它的全部意義;
- 沒有一個子女記錄值能夠脫離雙親記錄值而獨立存在。
③層次模型的數據操縱
- 查詢
- 插入
- 刪除
- 更新
④層次模型的完整性約束
- 無對應的雙親結點值就不能插入子女結點;
- 如果刪除雙親結點則相應的子女節點值也被同時刪除;
- 更新操作時,應更新所有相應記錄,以保證數據的一致性。
⑤層次模型的優缺點
-
優點
層次模型的數據結構比較簡單清晰;
查詢效率高,性能優於關係模型,不低於網狀模型;
層次數據模型提供了良好的完整性支持。 -
缺點
結點之間的多對多聯繫表示不自然;
對插入和刪除操作的限制多,應用程序的編寫比較複雜;
查詢子女結點必須通過雙親結點;
層次命令趨於程序化;
2.網狀模型
①網狀模型的概念
網狀數據庫系統採用網狀模型作爲數據的組織方式
✧典型代表是DBTG系統:
■亦稱CODASYL系統
■20世紀70年代由DBTG提出的一個系統方案
必實際系統
■Cullinet Software公司的IDMS
■Univac公司的DMS1100
■Honeywell公司的IDS/2
■HP公司的IMAGE
②網狀模型的數據結構
滿足下面兩個條件的基本層次聯繫的集合:
- 允許一個以上的結點無雙親;
- 一個結點可以有多於一個的雙親。
表示方法(與層次數據模型相同)
- 實體型:用記錄類型描述
每個結點表示-一個記錄類型(實體) - 屬性:用字段描述
每個記錄類型可包含若千個字段 - 聯繫:用結點之間的連線表示記錄類型(實體)之間的一對多的父子聯繫
③網狀模型的操縱與完整性約束
網狀數據庫系統(如DBTG)對數據操縱加
了一些限制,提供了–定的完整性約束
■碼:唯一標識記錄的數據項的集合
■一個聯繫中雙親記錄與子女記錄之間是一-對多聯繫
■支持雙親記錄和子女記錄之間某些約束條件
④網狀模型的優缺點
- 優點
a.能夠更爲直接地描述現實世界,如一個結點可以有多個雙親
b.具有良好地性,存取效率較高 - 缺點
a.結構比較複雜,而且隨着應用環境地擴大,數據庫就變得越來越複雜,不利於最終用戶掌握
b.DDL、DML語言複雜,用戶不容易使用
c.記錄之間聯繫是通過存取路徑實現地,用戶必須瞭解系統結構地細節
3.網狀模型與層次模型的區別
■網狀模型允許多個結點沒有雙親結點
■網狀模型允許結點有多個雙親結點
■網狀模型允許兩個結點之間有多種聯繫(複合聯繫)
■網狀模型可以更直接地描述現實世界
■層次模型實際上是網狀模型的一一個特例
二、關係模型
①關係模型的概念
關係數據庫系統採用關係模型作爲數據的組織方式
心970年美國IBM公司SanJose研究室的研究員E.F.Codd首次提出了數據庫系統的關係模型
計算機廠商新推出的數據庫管理系統幾乎都支持關係模型
②關係模型的數據結構
在用戶觀點下,關係模型中數據的邏輯結構是一張二維表,它由行和列組成。
-
關係(Relation)
●一個關係對應通常說的一張表 -
元組(Tuple)
●表中的一行即爲一個元組 -
屬性(Attribute )
●表中的一列即爲一個屬性,給每–個屬性起一個名稱即屬性名 -
主碼(Key)
●也稱碼鍵。表中的某個屬性組,它可以唯一 確定一個元組 -
域(Domain )
●是一組具有相同數據類型的值的集合。屬性的取值範圍來自某個域。 -
分量
●元組中的一一個屬性值。 -
關係模式 ●對關係的描述 關係名(屬性1,屬性2,,.屬性n) 學生(學號,姓名,年齡,性別,系名,年級)
關係必須是規範的,滿足一定的約束條件
最基本的約束條件: 關係的每一個分量必須是一個不可分的數據項,不允許表中還有表
③關係模型的操縱與完整性約束
- 數據操作是集合操作,操作對象和操作結果都是關係
■查詢
■插入
■刪除
■更新 - 存取路徑對用戶隱蔽,用戶只要指出“千什麼 ’,不必詳細說明‘ “怎麼幹”
- 關係的完整性約束條件
■實體完整性
■參照完整性
■用戶定義的完整性
④關係數據庫的優缺點
- 優點
1.建立在嚴格的數學概念的基礎上
2.概念單一
●實體和各類聯繫都用關係來表示
●對數據的檢索結果也是關係
3.關係模型的存取路徑對用戶透明
●具有更高的數據獨立性,更好的安全保密性
●簡化了程序員的工作和數據庫開發建立的工作 - 缺點
1.存取路徑對用戶透明,查詢效率往往不如格式化數據模型
2.爲提高性能,必須對用戶的查詢請求進行優化,增加了開發數據庫管理系統的難度
總結
數據庫領域當前的研究工作都是以關係方法爲基礎,所以大家學習數據庫的時候應該把重點放在關係數據庫上。