- 數據庫原理及應用:SQL Server 2022(第3版)
- 賈鐵軍 劉建準主編
- 7692字
- 2024-05-11 19:13:05
1.2 數據模型及應用
對于現實世界中的具體事物,計算機無法直接存儲和處理,需要采用數據模型對事物特征進行描述和轉換,然后按照一定的方式組織和處理。數據模型是數據處理的關鍵和重要基礎,是對現實世界數據特征的抽象(表示)。數據庫系統用數據模型才能實現數據處理。
1.2.1 數據模型的概念和類型
1.數據模型的基本概念
數據模型(Data Model)是數據結構和特征的抽象描述(表示),用于對現實世界中的事物特征信息的抽象、表示和處理。DBMS對數據的所有操作都是建立在某種數據模型基礎上的。計算機代替人的腦力勞動主要通過數據處理的方法。數據模型用于描述數據的結構特征、存儲和操作,將具體事物及其之間的聯系轉換為計算機處理的數據,將現實世界中事物特征的信息(實體及聯系)轉換成數據。其轉換過程,如圖1-6所示。
知識拓展
數據模型與現實及機器世界的關系
1)現實世界。以客觀現實世界的事物(實體)及其聯系的特征描述(信息)。
2)信息世界。利用特定數據模型實現對具體事物的抽象描述(表示),即以用戶的觀點對信息和數據進行建模(概念模型,即實體聯系圖)。
3)機器世界。主要描述數據在機器系統內部的表示、存儲方式和存儲方法,是面向計算機系統的對數據最底層的抽象(表示)。

圖1-6 數據抽象轉換過程
2.數據模型的組成要素
數據模型是對數據嚴格定義的一組結構、操作規則和約束的集合,描述了系統的靜態特性、動態特性和完整性約束條件。數據模型由數據結構、數據操作和數據約束三要素組成,如圖1-7所示。

圖1-7 數據模型的組成要素
1)數據結構。數據結構是實體(事物)及其之間聯系的表示方法。各種數據模型都以某種數據結構存取及處理數據,主要描述系統的靜態特性,是所研究的對象類型的集合。其對象是數據庫的組成部分,描述內容包括兩類:一是同數據類型、內容、性質有關的對象,如關系模型中的域、屬性(列)、關系等;二是與數據之間的聯系有關的對象。數據結構用于描述數據模型特性及構成。在數據庫系統中,通常按照其數據結構的類型命名數據模型,如將關系結構的數據模型命名為關系模型。
2)數據操作。數據操作是對數據庫中的各種對象(型)的實例(值)允許執行的操作的集合,包括操作及其有關規則要求。對數據庫的操作(邏輯處理)實際上是對具體數據模型規定的操作,包括操作符、含義和規則等,用于描述系統的動態特性,如數據查詢操作的命令語句、功能含義和語法格式。
3)數據約束。數據約束也稱為完整性約束,是一組數據約束條件規則(條件和要求)的集合,是給定的數據模型中的數據及其聯系所具有的制約和依存規則,用于限定符合數據模型的數據庫狀態及其變化,以保證數據處理的正確有效。
3.數據模型的類型
數據模型按應用層次分成三類:概念數據模型、邏輯數據模型、物理數據模型。
1)概念數據模型(Conceptual Data Model)。簡稱概念模型,也稱信息模型,是對現實世界中問題域內事務(特性)的描述,是以數據庫用戶觀點實現世界的模型(圖形表示方式)。該模型主要用于描述事物的概念化結構,使數據庫的設計人員在設計初期避開計算機系統及DBMS具體技術問題,以圖形化方式表示事物(實體)數據特征(屬性)及其之間的聯系等。最常用的是實體聯系模型(E-R圖)。
2)邏輯數據模型(Logical Data Model)。簡稱邏輯模型,能以系統的觀點對數據建模,是直接面向數據庫的邏輯結構,是對客觀現實世界的第二層抽象,是具體的DBMS所支持的數據模型,如關系模型(二維表結構)等。邏輯模型既要面向用戶,又要面向系統,主要用于DBMS實現,是對概念模型的進一步分解和細化。邏輯模型描述系統“做什么”及執行順序。
3)物理數據模型(Physical Data Model)。簡稱物理模型,是對真實數據庫的描述。數據庫中的對象包括表、視圖、字段、數據類型、長度、主鍵、外鍵、索引、默認值。概念模型中的對象轉換成物理模型的對象,如存儲位置、結構、方式、方法或索引等,同具體DBMS、操作系統和硬件有關。邏輯模型的實現都對應物理模型。
1.2.2 概念模型相關概念及表示
1.概念模型的基本概念
概念模型是現實世界(事物特征)到信息世界的第一層抽象,是數據庫設計人員與用戶之間的交流工具,只需要考慮領域實體屬性和關系,要求語義表達能力強、簡單清晰且易于理解。
(1)實體的有關概念
1)實體(Entity)是現實世界中各種不同的事物或活動,如一個學生、課程、商品、圖書等。
2)實體集(Entity Set)是同一類實體的集合,如一個班級的全體同學、一批貨物中的商品等。
3)實體型(Entity Type)是對同類實體的共同特征和性質的抽象表示,如學生(學號,姓名,性別,出生年月,所在院系,入學時間)。對于同一實體,根據不同的認識和側重,可以抽取不同的特征或實體型。
4)實體值(Entity Value)是符合實體型定義的、某個具體實體的描述(取值)。
實體、實體集、實體型、實體值等概念有時很難區分,常統稱為實體,可根據內容知其含義。
【案例1-4】大學教師的實體型,可用教師(工號,系部編號,教師姓名,性別,年齡,職稱,所在院系)表示,例如,教師周凱的具體數據(X312,X3215,周凱,男,43,教授,信息學院網絡工程)就是一個實體值。實體指的是現實世界中的具體對象(事物或活動)。在表1-1中,第一行規定了客戶的實體型,從第2行開始的各行是該實體型的取值。
表1-1 大學教師數據表

(2)聯系的有關概念
1)聯系(Relationship)是指現實世界中事物(實體)內部以及事物之間的聯系,如學生與課程之間的選課關系、學生與圖書之間的借閱關系和學生之間的同學關系。
2)聯系集(Relationship Set)是同類聯系的集合,如一個班級同學的所有選課、學生與圖書之間的所有借閱、某學生所有的同學、一次展銷會上的全部訂單等。
3)聯系型(Relationship Type)是對同類聯系共有特征的抽象定義(抽象表示)。
4)聯系值(Relationship Value)是對同類聯系型定義的、某個聯系的具體描述(值)。
聯系、聯系集、聯系型、聯系值等概念常統稱為聯系,只有研究具體聯系時才分別討論。
【案例1-5】對于學生的“借閱”聯系,聯系型可以包括卡號、ISBN、是否續借、借書日期、還書日期等屬性,其中卡號和ISBN分別對應“圖書卡”實體和“圖書”實體。表1-2中的第一行為借閱聯系的型,其后各行為借閱聯系型的值(借閱記錄)。
表1-2 學生圖書借閱表

(3)屬性、鍵和域
1)屬性(Attribute)是描述實體或聯系的特征(性)。一個實體或聯系通常具有多個特征,需要多個屬性(列)進行描述。實體選擇的屬性由實際應用需要決定,并不唯一。例如,人事部門、財務部門都使用職工實體,但所涉及的屬性不同,人事部門側重的是工號、姓名、性別、出生日期、職務、職稱、工齡等屬性,而財務部門側重的是工號、姓名、基本工資、崗位津貼、內部津貼、交通補助等屬性。
知識拓展
數據庫鍵的作用及特性
2)鍵(Key)也稱碼、關鍵字、關鍵碼,是區別實體的唯一標識,如學號、工號、商品編號等。一個實體可能具有多個鍵。例如,職工工號和身份證號均可作為鍵。
主屬性(Main Attribute)是實體(關系)中用于鍵的屬性,否則稱為非主屬性。如職工實體中,工號為主屬性,其余為非主屬性。
3)域(Domain)是實體中屬性的取值范圍,如性別屬性域為(男,女)。
(4)實體型之間聯系的分類
實體型之間的聯系按照其中實體的個數可分為三種:單個實體型內的聯系、兩個實體型之間的聯系和兩個以上實體型之間的聯系。在此三種情況中,按照兩個實體型中的實體個數的對應關系,均可分類為一對一聯系、一對多聯系、多對多聯系三種類型。
1)一對一聯系。若實體集A中的每一個實體,在實體集B中至多有一個(或沒有)實體與之聯系,反之亦然,則這兩個實體集之間的聯系為一對一聯系,簡記為1:1。如學生與其身份證。
2)一對多聯系。若實體集A的任一實體,在實體集B中有n個實體(n≥0)與之聯系,反之,對實體集B中的任一實體,在實體集A中至多有一個實體與之聯系,則這兩個實體集之間存在一對多聯系,簡記為1:n。如一個學生選修多門課程。
3)多對多聯系。若實體集A的任一實體,在實體集B中有n個實體(n≥0)與之聯系,反之,對實體集B中的任一實體,在實體集A中也有m個實體(m≥0)與之聯系,則這兩個實體集之間存在多對多聯系,簡記為m:n。
【案例1-6】高校學生與所選課程之間為多對多聯系,每個學生允許選修多門課程,每門課程允許多個學生選修。表1-3為學生數據表,表1-4為課程數據表,圖1-8為多對多選課聯系。
表1-3 學生數據表

表1-4 課程數據表


圖1-8 學生與課程選課聯系圖
由圖1-8可知每個學生選修的課程及每門課程由哪些學生所選修。
2.概念模型及其表示方法
1976年,美籍華人Peter Pin-Shan Chen提出實體聯系模型(Entity Relationship Model),也稱E-R模型或E-R圖(實體-聯系方法),是描述現實世界中事物及其聯系的概念模型。該模型提供了表示實體類型、屬性和聯系的方法,是數據庫設計者與普通用戶進行數據建模和交流溝通的有效工具,在應用軟件研發等方面極為重要。其特點為簡單易用、直觀易懂。
知識拓展
E-R模型的主要作用
(1)E-R模型的構成要素
E-R模型是一種用E-R圖表示實體及其聯系的方法。E-R圖包含四種基本元素:矩形、菱形、橢圓形和連線。矩形表示實體,矩形框內寫上實體名;菱形◇表示聯系,菱形框內寫上聯系名;橢圓形
表示屬性,橢圓形框內寫上屬性名;連線——表示實體、聯系與屬性之間的所屬關系或實體與聯系之間的相連關系。
(2)實體聯系的E-R圖表示
兩個實體之間的三種聯系包括一對一、一對多和多對多,對應的E-R圖如圖1-9所示。為了表示的簡潔性,并沒有對每個實體畫出其屬性及屬性實體間的連線。

圖1-9 三種聯系的E-R圖
如果聯系的兩個實體均來自同一個實體型,則對應的E-R圖如圖1-10所示。

圖1-10 三種聯系的單實體的E-R圖
實際上,經常出現多個實體相互聯系的情況。如客戶在網購中,涉及客戶、購物網站和商品三者之間的關系,客戶通過購物網站購買商品,其中的每兩個實體間都是多對多的聯系。一個客戶可以購買多種商品,每種商品可以被不同的客戶購買。每個客戶都可以到不同的購物網站購物,每個購物網站都可以為不同的客戶服務。每個購物網站都可以出售多種商品,每種商品都可由不同的購物網站銷售。網購聯系對應的E-R圖如圖1-11所示。

圖1-11 網購聯系的E-R圖
(3)E-R模型應用案例
在實際的數據庫系統設計過程中,首先要進行需求分析,確定存儲哪些數據、建立哪些應用和操作;然后根據需求分析所確定的數據進行更高層的抽象,這時需要引入E-R圖描述實體之間的聯系。下面以電子商務(網絡購物)應用為例介紹E-R圖的用法。
【案例1-7】電子商務(網絡購物)應用建立E-R圖的過程。對某購物網站的運營情況調研,可以及時進行業務數據的整理分析。客戶的一次購物活動為:先到某個購物網站(加盟的商家)訂購某種商品,得到商家開出的(電子)訂貨單;客戶憑訂貨單上的“金額”到金融機構(網銀等)交款,獲得“交款”確認;客戶可憑此提醒商家發貨,商家見到“交款”確認后發給快遞公司提貨單;快遞公司憑提貨單取貨(庫房)并送貨。網絡購物過程的E-R圖如圖1-12所示。

圖1-12 網絡購物過程的E-R圖
網站上的商家可以通過加盟的多家購物網站進行運營,各購物網站需要涉及金融機構、客戶、購物網站、商家、庫房、快遞、貨物(商品)、收款單、訂貨單、加盟、提貨單、送貨等實體和聯系,其中前面7個為實體,后面5個為聯系。
說明:上述“訂貨單”聯系的購物網站和客戶是多對多聯系,每個購物網站都可以為多個客戶服務,每個客戶都可以到不同的購物網站訂購不同的貨物。“收款單”聯系的客戶和金融機構也是多對多聯系,每個金融機構都可以為多個客戶服務,每個客戶都可以到不同金融機構交款。同樣,“提貨單”聯系的購物網站和庫房也是多對多聯系,庫房可為各網站服務,購物網站可憑提貨單取貨。
知識拓展
E-R圖的主要實際應用
1.2.3 邏輯模型的結構和特點
數據庫系統中主要的邏輯模型有層次模型、網狀模型、關系模型和面向對象模型四種類型。層次模型是20世紀60年代最早出現的數據模型,關系模型的應用最廣泛,也最重要。
1.層次模型的結構特點
(1)層次模型的結構
層次模型(Hierarchical Model)用樹形結構表示現實世界中的實體及其之間的聯系,有且只有一個無雙親的根節點,其余節點為其子節點。除根節點外,每個節點都有且僅有一個父節點(也稱雙親節點),可以沒有,也可以有一個或多個子節點。沒有子節點的節點被稱為葉。每個節點都表示一個記錄類型,即概念模型中的一個實體型,每對節點的父子聯系為一對多聯系,只有一個子節點時為一對一聯系。圖1-13所示為企業組織層次結構的層次模型。企業集團為根節點,有多個分公司,分公司1有兩個子節點(部門),部門1又有兩個子節點(車間),車間是葉。
(2)層次模型的優缺點
層次模型的優點:當現實世界中的實體之間的聯系自然呈現為層次關系(一對多的聯系)時,表示一對多時結構簡單清晰;層次結構查詢效率高,主要是DBMS指針效率高。層次模型的主要缺點包括:表示多對多的聯系時比較復雜;查詢子節點時必須通過雙親節點,從而影響效率。由于現實世界中事物之間的聯系更多地表現為非層次關系,用層次模型表示非樹形結構很不方便,因此產生了網狀模型。

圖1-13 企業組織層次結構的層次模型
2.網狀模型的結構特點
(1)網狀模型的結構
網狀模型(Network Model)是對層次模型的擴展,允許一個以上的節點無雙親,同時也允許一個節點可以有多于一個的雙親。圖1-14所示是幾個企業和生產零件的網狀模型。

圖1-14 網狀模型示例
在網狀模型中,父子節點的聯系同樣隱含為一對多的聯系,每個節點代表一種記錄型,對應概念模型中的一種實體型。
(2)網狀模型的優缺點
網狀模型的優點包括:可直接表示現實世界,如一個節點有多個雙親的情況;性能良好,有較高的存取效率。主要缺點包括:結構復雜,用戶掌握難;數據定義和操作需嵌入高級語言,掌握難度大。
知識拓展
網狀模型的主要局限性
3.關系模型的結構特點
關系模型由美國IBM公司的研究員E.F.Codd率先提出,數據庫關系方法和關系數據庫理論的研究為數據庫技術的快速發展奠定了重要基礎。關系模型在業務數據處理方面的應用非常廣泛。
(1)關系模型的概念
關系模型(Relational Model)的每個關系對應一個二維表,其中的每個實體及其之間的聯系都可直接轉換為對應的二維表形式。每個二維表稱為一個關系,其中關系的型就是二維表的表頭,除此之外的表中的每行(表體)稱為關系的值。二維表中的每一行稱為一個記錄(或元組),關系型的每一項稱為屬性(或字段),每列的名稱也稱為屬性名(或字段名)。
【案例1-8】數碼商品的關系示例如表1-5所示。該關系的型為(商品ID,商品名稱,價格,品牌,型號,顏色,生產商,產地),關系的元組(行)數為5,關系的屬性(列)數為8,其中第一列的屬性名為“商品ID”。屬性的取值范圍稱為屬性的域,如價格屬性的域為貨幣型數,商品名稱的域為字符型。
表1-5 數碼商品的關系示例

(2)聯系的關系表應用
關系模型可以用“二維表”簡單表示實體及其聯系,對應某個關系,包括相聯系的各實體的鍵。如表1-3、表1-4和圖1-8所示的學生、課程及選課聯系,對應的關系模型包含三個關系,即學生關系、課程關系和選課關系。選課聯系所對應的關系如表1-6所示,這里對選課聯系增加了“成績”屬性,其語義是學生選修課程的成績。
表1-6 選課聯系的關系表

?(3)數據庫的元關系
在以關系模型為數據庫邏輯結構建立的數據庫系統中,所有數據及其結構(關系定義)都以關系(二維表)的形式定義和保存。為了區別于一般的保存數據的關系,將保存關系定義的關系(結構)稱為該數據庫的元關系(元數據、系統數據、數據字典等),其提供了數據庫中所有關系的模式(即關系的型)。元關系是在用戶建立數據庫應用系統時,是由DBMS根據該數據庫中每個關系的模式自動定義(保存數據表結構備用)的。學生選課關系模型的元關系(結構)如表1-7所示。
特別理解
序號、屬性名和類型區別
表1-7 學生選課關系模型的元關系

知識拓展
關系模型中的查詢和更新
(4)關系模型中的查詢和更新
在關系數據庫中,進行業務數據的查詢和更新運算非常方便,在每個關系(二維表)和相關的若干個關系上都可進行。相關關系是依靠關系之間共同使用的相同屬性實現的(以鍵保持記錄一一對應),其相同屬性被稱為連接屬性或關聯屬性。
(5)關系模型的優缺點
關系模型的優點如下。
1)有較堅實的數學理論基礎。關系模型與非關系模型不同,它建立在嚴格的數學基礎之上,已經形成一系列完整的關系代數和集合論理論基礎。
2)數據結構簡單,易懂且應用廣。關系模型實體及其之間的聯系都由關系表示,既表示數據的存儲,也表示數據之間的聯系。從用戶角度,模型中數據的邏輯結構是一個二維表,符合用戶使用數據的習慣且直觀,便于實現。各關系可作為一個文件保存,業務數據應用廣泛。
3)查詢與處理便捷。在關系模型中,數據處理更便捷,一次可操作所有滿足條件的記錄。
4)數據安全性好,有利于提高數據庫系統的安全可靠性,具有高安全機制且數據存取路徑清晰。
5)數據獨立性高。關系模型中,用戶對數據的操作不涉及其存儲位置,而且數據庫同應用程序各自相互獨立運行,便于簡化數據庫系統的開發與維護。
關系模型的缺點:一是關系型數據庫管理系統RDBMS提供了較高的數據獨立性和非過程化的查詢功能,致使系統負載較重,直接影響查詢速度和效率;二是RDBMS實現復雜,由于其效率較低,需對關系模型進行查詢優化,其工作繁雜且實現難度較大;三是關系模型無法有效處理復雜的特殊數據。
知識拓展
關系模型的主要局限性
【案例1-9】關系模型在空間數據表示的局限性。空間數據是指面向地理學及其相關對象的數據,主要包括地球表面、地質、大氣等數據。其特點是數據量龐大、數據對象和空間數據模型復雜等。關系模型僅針對常用的簡單對象,無法表示空間數據。
關系模型用單一的二維表結構很難實現對空間復雜對象的描述,無法有效地管理各種復雜地理等對象。為了解決空間數據存儲與管理問題,產生了空間數據庫或專用數據庫。
?4.面向對象模型的特點
面向對象模型(Object-Oriented Model,OOM)是以面向對象方法描述實體的邏輯組織、對象間限制、聯系的模型。將客觀事物都模型化為一個對象,每個對象都有一個唯一標識。共享同樣屬性和方法集的所有對象構成一個對象類(簡稱類),一個具體對象則是某類的一個實例。將面向對象建模能力和關系數據庫功能結合,使面向對象的關系數據庫技術成為一個研究方向。
(1)面向對象的基本思想
面向對象的基本思想是指:主要通過對問題域的自然分割,以更接近人的思維方式建立問題域的模型,并進行結構模擬和行為模擬,從而使設計的軟件盡可能直接表現出問題的求解過程。
面向對象方法以接近人類的思維方式,將客觀世界的實體模型轉化為對象。每一種對象都有各自的內部狀態和運動規律,不同對象之間的相互作用和聯系構成各種不同的系統,即“萬物一切皆對象”。其基本方法是將系統工程中的模塊和構件視為問題空間的一個對象(類)。
(2)面向對象方法的基本特性及技術
知識拓展
面向對象的特性及核心技術
面向對象方法的特性主要包括抽象性、封裝性、繼承性和多態性等。面向對象數據模型的核心技術主要包括分類、概括、聚集、聯合和消息。
5.四種模型的比較
為了更進一步地加深理解上述四種模型,從產生時間、數據結構、數據聯系和語言類型等方面進行對比,如表1-8所示。
表1-8 四種邏輯數據模型的對比

討論思考:
1)什么是數據模型?數據模型的組成要素是什么?
2)E-R圖的基本構件有哪些?對系統設計有什么作用?
3)數據模型的種類有哪些?各自有什么特點?
微課視頻
課程視頻1.3
