- MySQL數據庫應用與維護項目式教程(微課版)
- 舒蕾 劉均主編
- 2831字
- 2023-11-16 18:21:55
任務1.2.2 掌握數據模型
在數據庫領域,數據模型按不同的應用目的,主要分為3種類型:概念數據模型、邏輯數據模型和物理數據模型。
1.概念數據模型
概念數據模型(Conceptual Data Model)也稱為概念模型,它按照用戶的觀點對數據和信息建模,是對現實世界的抽象反映。它使數據庫設計人員在設計的初始階段擺脫了計算機系統及DBMS的具體技術問題,能集中精力分析數據及數據之間的聯系等,不依賴于具體的計算機系統,是現實世界到數據世界的中間層。概念數據模型主要用來完成數據庫設計,它必須轉換成邏輯數據模型才能在DBMS中實現。
概念數據模型是數據庫設計者進行數據庫設計的有力工具,也是設計者與用戶之間進行交流的“語言”。因此,概念數據模型一方面應該具有強大的語義表達能力,另一方面應該清晰、直接、易于用戶理解。
描述概念數據模型的工具是E-R模型,主要包括實體、聯系和屬性3個基本概念。
(1)實體(Entity)
實體可以是現實世界中可互相區別的事件或物體,也可以是抽象的概念或聯系。例如,學校中的每個人都是一個實體。每個實體由一組屬性來表示,其中一些屬性可以唯一地標識一個實體,如學號。與此類似,每一門課程也可以看作一個實體,而課程號唯一地標識了某個具體的課程實體。當然,實體也可以是抽象的概念,如學生選課、機票預訂等。實體集是具有相同屬性的實體集合,而實例是實體集中的某個特例。
實體集與實例舉例如圖1-7所示。

圖1-7 實體集與實例舉例
(2)聯系(Relationship)
在客觀世界中,事物彼此之間是有聯系的。實體之間的聯系可以分為以下3類。
① 一對一聯系(1 : 1)。
如果實體集E(1)中的每一個實體至多與實體集E(2)中的一個實體相對應,并且實體集E(2)中的每一個實體至多與實體集E(1)中的一個實體相對應,則稱實體集E(1)與實體集E(2)為一對一聯系,記作1 : 1。
例如,電影院里一個座位只能坐一個觀眾,因此觀眾與座位之間是一對一聯系。
② 一對多聯系(1 : n)。
如果實體集E(1)中的一個實體與實體集E(2)中的多個實體相對應,并且實體集E(2)中的一個實體至多與實體集E(1)中的一個實體相對應,則稱實體集E(1)與實體集E(2)為一對多聯系,記作1 : n。
例如,一個系部有多位教師,而每位教師只屬于某一個系部,因此系部與教師之間是一對多聯系。
③ 多對多聯系(m : n)。
如果實體集E(1)中的一個實體與實體集E(2)中的多個實體相對應,并且實體集E(2)中的一個實體與實體集E(1)中的多個實體相對應,則稱實體集E(1)與實體集E(2)為多對多聯系,記作m : n。
例如,一個項目有多個職工,一個職工也可以參與多個項目,因此職工與項目之間是多對多聯系。
實體間的聯系舉例如圖1-8所示。

圖1-8 實體間的聯系舉例
(3)屬性(Attribute)
實體或聯系所具有的某方面特性被稱為屬性。一個實體可以由若干個屬性來描述。例如,學生實體可能有學號、姓名、專業、性別、出生日期等屬性;課程實體可能有課程號、課程名稱、開課學期、學時、學分等屬性。可以唯一確定一個實體的屬性(一個或多個)稱之為主鍵。
聯系也可能有屬性。例如,學生與課程的聯系是“學習”,學生“學習”某門課程所獲取的“成績”同時依賴于某個特定的學生以及某門特定的課程,所以“成績”是學生與課程之間的聯系“學習”的屬性。
概念數據模型有多種表示方法,其中最為常用的是陳品山(P.P.S.Chen)于1976年提出的實體-聯系(E-R)模型,也就是E-R圖,它提供了表示實體、屬性和聯系的方法。
① 實體:用矩形框表示,矩形框內寫明實體名。
② 屬性:用橢圓形框表示,并用無向邊將其與相應的實體連接起來,確定為主鍵的屬性用添加下劃線的方式表示。聯系也是可以有屬性的。
③ 聯系:用菱形框表示,菱形框內寫明聯系名,并用無向邊分別與實體相連,同時注明聯系的類型(1 : 1、1 : n或m : n)。
學生成績管理系統數據庫的E-R模型如圖1-9所示。
2.邏輯數據模型
邏輯數據模型(Logical Data Model)簡稱數據模型,它按計算機系統的觀點對數據建模,是對概念數據模型的進一步分解和細化。它也是用戶從數據庫中看到的模型,是具體的 DBMS 支持的數據模型,主要包括層次模型(Hierarchical Model)、網狀模型(Network Model)、關系模型(Relation Model)等。此模型既要面向用戶,又要面向系統,主要用于DBMS的實現。
邏輯數據模型的選擇將直接影響數據庫的性能。邏輯數據模型的選擇對數據庫設計者來說是首要任務。目前常用的邏輯數據模型有3種:層次模型、網狀模型和關系模型。

圖1-9 學生成績管理系統數據庫的E-R模型
(1)層次模型
層次模型的基本數據結構就是層次結構。由于在層次模型中,各類實體及實體間的聯系是用“有向樹”的數據結構來表示的,所以也稱其為樹形結構。大學系部的層次模型如圖1-10所示,系部就是“樹根”(根節點),系部下面的各辦公室就是“樹枝”(樹節點)。

圖1-10 大學系部的層次模型
從模型圖可見,層次模型的優點是數據結構簡單、節點間聯系清晰;缺點是不能直接表示實體間的復雜聯系(如多對多聯系),查詢樹節點必須通過根節點,查詢效率較低。
(2)網狀模型
網狀模型的基本數據結構就是網絡結構。網狀模型中的每個節點表示一個實體,節點之間的連線表示實體與實體之間的聯系,從而構成一個復雜的網狀結構。學生與課程的網狀模型如圖1-11所示。

圖1-11 學生與課程的網狀模型
(3)關系模型
關系模型在邏輯數據模型中占據了最重要的地位。20世紀80年代以來,計算機廠商推出的DBMS幾乎都支持關系模型,數據庫領域當前的研究方向也大都以關系模型為根基。
每個關系的數據結構都是一張規范化的二維表,每張二維表都可以稱為關系,表中的每一行對應一個元組或者一條記錄,表中的每一列對應一個屬性或者一個字段。表1-1所示的課程信息表便是以二維表的形式來表示課程關系的。
表1-1 課程信息表

關系模型的優點是數據結構簡單、清晰,用戶易懂、易使用,并且存取路徑透明,從而可以保證更高的數據獨立性和安全保密性。
3.物理數據模型
物理數據模型(Physical Data Model)簡稱物理模型,是面向計算機系統的物理表示模型,描述了系統內部的表示方法和存取方法,或者在磁盤、磁帶上的存儲方式和存取方法。它不僅與具體的 DBMS 有關,還與操作系統和硬件有關。設計人員在實現邏輯數據模型時都需選擇對應的物理數據模型。DBMS為了保證其獨立性與可移植性,大部分物理數據模型的實現工作由系統自動完成,設計者只需設計索引、聚集等特殊結構。
這3個模型的生成過程就是實現一個軟件系統的3個關鍵步驟,是從抽象到具體的不斷細化,是完善的分析、設計和開發過程。
各種機器上實現的DBMS都是基于某種數據模型的。為了把現實世界中的具體事物抽象、組織成某種 DBMS支持的數據模型,人們常常先把現實世界轉換為信息世界,將客觀世界中的事物用對應的信息結構表達出來;然后將信息世界轉換為機器世界,也就是某一個 DBMS支持的數據模型。也就是說,要將現實世界中的客觀對象轉換為機器世界(計算機)能處理的數字信息,需要經過抽象和數字化:先將現實世界的事物抽象成某一種信息結構,也就是信息世界的概念數據模型,這種概念數據模型與具體的計算機系統無關,不是某一個 DBMS支持的數據模型;接著,將信息世界的概念數據模型進行數字化,將其轉換為計算機上某一個 DBMS支持的數據模型。這一過程如圖1-12所示。

圖1-12 現實世界的抽象過程