- MySQL數據庫技術與應用
- 張素青 翟慧 黃靜
- 2042字
- 2019-10-23 17:45:22
1.5 常見的數據模型
數據庫領域中的常見的數據模型有4種:層次模型、網狀模型、關系模型、面向對象模型。其中,層次模型和網狀模型統稱為非關系模型,出現較早,現在已經逐漸被關系模型取代。關系模型的開發雖相對較晚,但由于其優點很多,具有很強的實用性,一直被廣泛使用。下面分別介紹這幾種數據模型。
1. 層次模型(Hierarchical Model)
層次模型用樹形結構表示各類實體及實體間聯系。它是數據庫系統中最早出現的數據模型。
層次模型的特點:
? 有且僅有一個結點無雙親結點,稱為根結點;
? 除根結點之外的其他結點有且僅有一個雙親結點。
層次模型結構如圖1-14所示。

圖1-14 層次模型
在層次模型中,每個結點表示一個記錄類型,記錄類型之間的聯系用結點之間的連線實現,這樣就會導致層次模型只能表示1:n的聯系。盡管有許多輔助手段可以實現m:n的聯系,但都比較復雜,不易掌握。
2. 網狀模型(Network Model)
網狀模型用網絡結構表示各類實體及實體間聯系。
網狀模型的特點:
? 允許一個以上的結點無雙親結點;
? 一個結點可以有多于一個的雙親結點。
網狀模型有很多種,圖1-15為幾種典型的網狀模型圖例。

圖1-15 網狀模型
在網狀模型中,每個結點表示一個記錄類型,每個記錄類型可以包含若干個字段,結點之間的連線表示記錄類型之間一對多的父子關系。
3. 關系模型(Relational Model)
用二維表的形式表示各類實體及實體間的聯系。關系模型是目前最重要的一種數據模型。
(1)關系模型的數據結構
關系模型的數據結構就是一種二維表結構,它由行列組成,如表1-1所示學生信息表。
表1-1 學生信息表

表中涉及一些常見術語,對其解釋如下。
①關系(Relation):一個關系對應著一張二維表,二維表名就是關系名。
②元組(Tuple):表中的一行就是一個元組。也稱為記錄。
③屬性(Attribute):表中的一列稱為一個屬性,也稱為字段。列的值就是屬性值,屬性值的取值范圍為域(Domain)。
④分量:每一行對應的列的屬性值,即元組中的一個屬性值。
⑤關系模式:對關系的描述稱為關系模式。一般表示為關系名(屬性1,屬性2,……,屬性n)。
⑥候選鍵或候選碼:關系中存在多個屬性或屬性集都能唯一標識該關系的元組,這些屬性或屬性集稱為該關系的候選鍵或候選碼。
⑦主鍵或主碼:在一個關系的若干候選鍵中指定一個用來唯一標識該關系的元組,這個被指定的候選鍵稱為主關鍵字,或簡稱為主鍵、關鍵字、主碼。每一個關系都有且只能有一個主鍵,通常用較小的屬性集作為主鍵。
⑧主屬性和非主屬性:包含在任何一個候選鍵中的屬性稱為主屬性,不包含在任何一個候選鍵中的屬性稱為非主屬性。
⑨外鍵或外碼:當關系中的某個屬性或屬性集雖然不是該關系的主鍵,或者只是主鍵的一部分,但它卻是別的關系的主鍵時,則稱其為外鍵或者外碼。
(2)關系模型的數據操作與完整性約束
關系模型的數據操作主要有查詢、插入、刪除和修改,這些操作必須滿足關系模型的完整性約束條件。關系模型的完整性約束條件如下。
①實體完整性規則(Entity Integrity Rule):該規則要求關系中的元組在組成主鍵的屬性上不能有空值且值必須唯一。
②參照完整性規則(Reference Integrity Rule)該規則用于約束相關聯的數據表間的數據保持一致。通過建立外鍵可以實現數據表之間的參照完整性。
③用戶定義的完整性規則:針對某一具體數據庫的約束條件并由相關的應用環境而確定。
(3)關系模型的優缺點
關系模型的優點如下。
①數據結構單一。在該模型中,不管是實體還是實體之間的聯系,都用關系來表示,而關系都對應一張二維表,數據結構簡單、清晰。
②關系規范化,并建立在嚴格的數學理論基礎之上。
③概念簡單,用戶容易理解和掌握,操作方便。
關系模型的缺點主要有:存儲路徑透明,查詢效率不如非關系數據模型。
4. 面向對象模型(Object Oriented Model)
面向對象模型采用面向對象的方法來設計數據庫,其數據庫存儲的數據以對象為單位,每個對象由屬性和方法組成,具有類和繼承等特點。
(1)面向對象模型中的常見概念
①類(Class):類是對客觀世界中具有共同特征的事物的抽象。如學生是一個類、汽車也是一個類。
②對象(Object):對象是客觀世界中概念化的實體,是類的具體實現。如一個學生、一輛汽車。
③封裝(Encapsulation):利用抽象數據類型將數據和數據的操作結合在一起,使其構成一個不可分割的獨立實體,并且盡可能隱藏內部的細節,只保留一些對外接口來與外部聯系。
④繼承(Inheritance):在一個現有類的基礎上去構建一個新類,構建出來的新類被稱作子類或派生類,現有類被稱作父類或基類,子類會自動擁有父類所有可繼承的屬性和方法。
(2)面向對象模型的優點
①適合處理豐富的數據類型,如圖片、聲音、視頻、文本、數字等。
②開發效率高。面向對象模型提供強大的特性,如封裝、繼承、多態等,允許開發者不編寫特定對象的代碼就可以構成對象并提供解決方案,有效地提高了開發效率。
③提高了數據訪問的性能。
(3)面向對象模型的缺點
①沒有準確的定義。該模型很難提供一個準確的定義來說明面向對象的數據庫管理系統應建成什么樣。
②維護起來比較麻煩。當對象的定義被改變或移植到其他數據庫時,操作起來比較困難。
③不適合所有應用。該模型更適合于數據對象之間存在復雜關系的應用,并不適合所有應用。