數據模型是什麼?
數據模型(Data Model)是一種模型,它是對現實世界數據特徵的抽象。可以說數據模型是用來描述數據、組織數據和對數據進行操作的,是數據庫系統的核心和基礎。
數據模型的分類
數據模型應滿足三方面要求,一是能比較真實地模擬現實世界,二是容易爲人所理解,三是便於在計算機上實現,分別對應概念模型、邏輯模型和物理模型。通常分爲兩類數據模型,第一類是概念模型,第二類是邏輯模型和物理模型。
物理模型
物理模型是對數據最底層的抽象,它描述數據在系統內部的表示方式和存取方法,或在磁盤或磁帶上的存儲方式和存儲方法,是面向計算機系統的
概念模型
由上圖可以概念模型實際上是現實世界到機器世界的一箇中間層次,用於信息世界的建模,是現實世界到信息世界的第一層抽象,在概念模型中有一些基本概念,如圖所示:
邏輯模型
邏輯模型是按計算機系統的觀點對數據建模,主要用於數據庫管理系統的實現。常用的邏輯模型主要有層次模型、網狀模型、關係模型、面向對象數據模型、對象關係數據模型和半結構化數據模型,這裏詳細說一下前三種。
層次模型
層次模型是用樹形結構來表示各類實體以及實體間的聯繫,如公司的行政系統、家族族譜等
層次模型的數據結構
- 有且只有一個結點沒有雙親結點,這個結點稱爲根節點
- 根以外的其他結點有且只有一個雙親結點
層次模型的數據操縱與完整性約束
- 插入時,如果沒有相應的雙親結點值就不能插入它的子女節點值
- 刪除時,如果刪除雙親結點值,則相應的子女結點值也將同時被刪除
層次模型的優缺點
優點:
- 層次模型的數據結構比較簡單清晰
- 層次模型庫的查詢效率高
- 層次數據模型提供了良好的完整性支持
缺點:
- 現實世界中很多聯繫是非層次性的,如節點之間具有多對多聯繫
- 查詢子女結點必須通過雙親結點
- 層次模型中對插入、刪除操作的限制比較多,因此應用程序的編寫比較複雜
- 由於結構嚴密,層次命令趨於程序化
網狀模型
層次模型是用圖來表示各類實體以及實體間的聯繫,如公司的拓撲網絡
網狀模型的數據結構
- 允許一個以上的結點無雙親
- 一個結點可以有多於一個的雙親
網狀模型的數據操縱與完整性約束
- 支持記錄碼的概念,碼即唯一標識記錄的數據項的集合
- 保證一個聯繫中雙親記錄和子女記錄之間是一對多的聯繫
- 可以支持雙親記錄和子女記錄之間的某些約束條件,例如層次模型中的約束
網狀模型的優缺點
優點:
- 能夠更爲直接地描述現實世界,如多對多關係
- 具有良好的性能,存取效率較高
缺點:
- 結構比較複雜,不利於最終用戶掌握
- 網狀模型的DDL、DML複雜,並且要嵌入某一種高級語言(如COBOL、C)中
- 由於記錄之間的聯繫是通過存取路徑實現,增加了編寫應用程序的負擔
關係模型
關係模型是基於謂詞邏輯和集合論的一種數據模型,可以如一張二維表一樣
no | name | sex | Birthdate | site | Admission Date |
---|---|---|---|---|---|
1 | 李明 | 男 | 199505 | 江蘇省南京市 | 2013 |
關係模型的數據結構
- 關係,一個關係對應通常說的一張表,如上
- 元組,表中的一行即爲一個元組
(1,李明,男,199505,江蘇省南京市,2013)
- 屬性,表中的一列即爲一個屬性
如no、name、sex、Birthdate、site、Admissiondate皆是屬性
- 碼,也稱碼鍵,是表的唯一標識符
如表中學號(no)即使唯一標識符
- 域,一組具有相同數據類型的值的集合
如性別字段的佔用字符爲1
- 分量,元組中的一個屬性值
每一個分量都是一個不可再分的數據項
- 關係模式,對關係的描述
學生(學號,學生姓名,性別,出生年月,地址,入學年份)
關係模型的數據操縱和完整性約束
關係模型中的數據操縱有增刪改查等操作,完整性約束包括實體完整性、參照完整性和用戶自定義的完整性
關係模型的優缺點
優點:
- 關係模型與格式化模型不同,它是建立在嚴格的數據概念的基礎上的
- 關係模型的概念單一,無論實體還是實體之間的聯繫都用關係來表示,操作對象和操作結構都是關係
- 關係模型的存取路徑對用戶透明,從而具有更高的數據獨立性、更好的安全保密性,也簡化了程序員的工作和數據庫開發建立的工作
缺點:
- 由於存取路徑對用戶是透明的,查詢效率往往不如格式化數據模型
- 爲了提高性能,數據庫管理系統必須對用戶的查詢請求進行優化,因此增加了開發數據庫管理系統的難度
數據模型的組成要素
數據模型的組成要素主要包括數據結構、數據操作和數據的完整性約束條件
數據結構
數據結構描述數據庫的組成對象以及對象之間的聯繫,是所描述的對象類型的集合,是對系統靜態特性的描述
數據操作
數據操作是指數據庫中各種對象(型)的實例(值)允許執行的操作的集合,包括操作及有關的操作規則,是對系統動態特性的描述
數據的完整性約束條件
數據的完整性約束條件是一組完整性規則,包括實體完整性、參照完整性和用戶自定義完整性
借鑑
王珊,薩師煊.數據庫系統概論(第五版)[M].北京:高等教育出版社,2014:14-27.