1.2 《數據庫系統概論》之數據模型(概念模型、邏輯模型--物理模型、層次模型、網狀模型、關系模型、面向對象模型、對象關系模型)


前言

0.思維導圖

20200325154511288

1.數據模型的概念

  • 在數據庫中用數據模型這個工具來抽象、表示和處理現實世界中的數據和信息。
  • 通俗地講數據模型就是現實世界的模擬。

數據模型應滿足三方面要求:

  • 能比較真實地模擬現實世界

  • 容易為人所理解

  • 便於在計算機上實現

2.兩大類數據模型

數據模型分為兩類(分屬兩個不同的層次)

  • (1) 概念模型 也稱信息模型,它是按用戶的觀點來對數據和信息建模,用於數據庫設計。

  • (2) 邏輯模型物理模型
    邏輯模型主要包括網狀模型層次模型關系模型面向對象模型等,按計算機系統的觀點對數據建模,用於DBMS實現。
    物理模型是對數據最底層的抽象,描述數據在系統內部的表示方式和存取方法,在磁盤或磁帶上的存儲方式和存取方法。

客觀對象的抽象過程—兩步抽象

  • 現實世界中的客觀對象抽象為概念模型

  • 概念模型轉換為某一DBMS支持的數據模型

3.數據模型的組成要素

(1)數據結構

數據結構是所研究的對象類型的集合。這些對象是數據庫的組成成分,數據結構指對象和對象間聯系的表達和實現,是對系統靜態特征的描述,包括兩個方面:
(1)數據本身:類型、內容、性質。例如關系模型中的域、屬性、關系等。
(2)數據之間的聯系:數據之間是如何相互關聯的,例如關系模型中的主碼、外碼聯系等。

(2)數據操作

數據操作

  • 對數據庫中各種對象(型)實例(值)允許執行的操作,及有關的操作規則

數據操作的類型

  • 查詢
  • 更新(包括插入、刪除、修改)

(3)數據的完整性約束條件

  • 數據的完整性約束條件是一組完整性規則的集合,規定數據庫狀態及狀態變化所應滿足的條件,以保證數據的正確性、有效性和相容性。

完整性規則:給定的數據模型中數據及其聯系所具有的制約和儲存規則

4.概念模型

(1)用途與基本要求

概念模型的用途:

  • 概念模型用於信息世界的建模
  • 是現實世界到機器世界的一個中間層次
  • 是數據庫設計的有力工具
  • 數據庫設計人員和用戶之間進行交流的語言

對概念模型的基本要求:

  • 較強的語義表達能力
  • 能夠方便、直接地表達應用中的各種語義知識
  • 簡單、清晰、易於用戶理解

(2) 信息世界中的基本概念

  • (1) 實體(Entity)
    客觀存在並可相互區別的事物稱為實體。
    可以是具體的人、事、物或抽象的概念。
  • (2) 屬性(Attribute)
    實體所具有的某一特性稱為屬性。
    一個實體可以由若干個屬性來刻畫。
  • (3) (Key)
    唯一標識實體的屬性集 稱為碼。
  • (4) (Domain)
    屬性取值范圍稱為該屬性的域。
  • (5) 實體型(Entity Type)
    實體名 及其 屬性名集合 來抽象和刻畫 同類實體 稱為實體型
  • (6) 實體集(Entity Set)
    同一類型實體的集合 稱為實體集
  • (7) 聯系(Relationship)
    • 現實世界中 事物內部 以及 事物之間聯系 在信息世界中反映為實體內部的聯系和實體之間的聯系。
    • 實體 內部的聯系 通常是指組成實體的 各屬性之間 的聯系
    • 實體 之間的聯系 通常是指 不同實體集之間 的聯系

(3)兩個實體型之間的聯系

① 一對一聯系(1:1)

實例

  • 一個班級只有一個正班長
  • 一個班長只在一個班中任職

定義:
如果對於實體集A中的每一個實體,實體集B中至多有一個(也可以沒有)實體與之聯系,反之亦然。則稱實體集A與實體集B具有一對一聯系,記為1:1

② 一對多聯系(1:n)

實例

一個班級中有若干名學生,
每個學生只在一個班級中學習

定義:
如果對於實體集A中的每一個實體,實體集B中有n個實體(n≥0)與之聯系,反之,對於實體集B中的每一個實體,實體集A中至多只有一個實體與之聯系,則稱實體集A與實體集B有一對多聯系,記為1:n

③ 多對多聯系(m:n)

實例

課程與學生之間的聯系:

  • 一門課程同時有若干個學生選修
  • 一個學生可以同時選修多門課程

定義:
如果對於實體集A中的每一個實體,實體集B中有n個實體(n≥0)與之聯系,反之,對於實體集B中的每一個實體,實體集A中也有m個實體(m≥0)與之聯系,則稱實體集A與實體B具有多對多聯系,記為m:n

(4)兩個以上實體型之間的聯系

① 一對多聯系(1:m||1:n)

  • 若實體集E1,E2,…,En存在聯系,對於實體集Ej(j=1,2,…,i-1i+1,…,n)中的給定實體,最多只和Ei中的一個實體相聯系,則我們說Ei與E1E2,…,Ei-1,Ei+1,…,En之間的聯系是一對多的。

實例

  • 課程、教師與參考書三個實體型
    一門課程可以有若干個教師講授,
    使用若干本參考書,
    每一個教師只講授一門課程,
    每一本參考書只供一門課程使用

② 一對一聯系(1:1:1)

實例

  • 一個獨生子女只有一個父親,一個母親
  • 一個父親也只有一個獨生子女
  • 一個母親也只有一個獨生子女

③ 多對多聯系(m:n:p)

實例
供應商、項目、零件三個實體型
一個供應商可以供給多個項目多種零件
每個項目可以使用多個供應商供應的零件
每種零件可由不同供應商供給

(5)單個實體型內的聯系

① 一對多聯系(1:n)

實例
職工實體型內部具 有領導與被領導 的聯系
某一職工(干部)“領導”若干名職工
一個職工僅被另外一個職工直接領導
這是一對多的聯系

② 一對一聯系(1:1)

  • 身份證可以唯一確認一個人的身份,人與身份證 有確認和被確認 的關系
  • 一個身份證唯一確定一個人
  • 一個人也唯一確認一個身份證

③ 多對多聯系 (m:n)

  • 飲料和廠商之間有 制造和被制造 的關系
  • 多個飲料可以被多個廠商制造
  • 多個廠商可以制造出多種飲料

在這里插入圖片描述

(6)概念模型的一種表示方法

① 實體-聯系方法(E-R方法)

  • E-R圖也稱實體-聯系圖(Entity Relationship Diagram),提供了表示實體類型、屬性和聯系的方法,用E-R圖來描述現實世界的概念模型
  • E-R方法也稱為E-R模型

② 實體型

用矩形表示,矩形框內寫明實體名。

在這里插入圖片描述

③ 屬性

用橢圓形表示,並用無向邊將其與相應的實體連接起來

在這里插入圖片描述

④ 聯系

聯系本身:
用菱形表示,菱形框內寫明聯系名,並用無向邊分別與有關實體連接起來,同時在無向邊旁標上聯系的類型(1:1、1:n或m:n)

在這里插入圖片描述

⑤ 聯系的表示方法

⑥ 聯系的表示方法示例

⑦ 聯系的屬性

  • 聯系本身 也是一種 實體型也可以有屬性。如果一個聯系具有屬性,則這些屬性也要用無向邊與該聯系連接起來

在這里插入圖片描述

⑧ 一個實例

用E-R圖表示某個工廠物資管理的概念模型

  • 實體
    倉庫: 倉庫號、面積、電話號碼
    零件 :零件號、名稱、規格、單價、描述
    供應商:供應商號、姓名、地址、電話號碼、帳號
    項目:項目號、預算、開工日期
    職工:職工號、姓名、年齡、職稱

實體之間的聯系如下:

(1)一個倉庫可以存放多種零件,一種零件可以存放在多個倉庫中。倉庫和零件具有多對多的聯系。用庫存量來表示某種零件在某個倉庫中的數量。

(2)一個倉庫有多個職工當倉庫保管員,一個職工只能在一個倉庫工作,倉庫和職工之間是一對多的聯系。職工實體型中具有一對多的聯系

(3)職工之間具有領導-被領導關系。即倉庫主任領導若干保管員。

(4)供應商、項目和零件三者之間具有多對多的聯系

5.非關系模型

(1)層次模型(Hierarchical Model)

  • 層次模型是數據庫系統中最早出現的數據模型
  • 層次數據庫系統的典型代表是IBM公司的IMS(Information Management System)數據庫管理系統
  • 層次模型用樹形結構來表示各類實體以及實體間的聯系

① 數據結構

滿足下面兩個條件的基本層次聯系的集合為層次模型

  • 有且只有一個結點沒有雙親結點,這個結點稱為 根結點
  • 根以外的其它結點 有且只有一個 雙親結點
層次模型中的幾個術語

根結點,雙親結點,兄弟結點,葉結點

② 特點

  • 結點的雙親是 唯一
  • 只能直接處理 一對多 的實體聯系
  • 每個記錄類型可以定義一個排序字段,也稱為 碼字段
  • 任何記錄值只有 按其路徑查看 時,才能顯出它的全部意義
  • 沒有 一個子女記錄值能夠 脫離 雙親記錄值而獨立存在

在這里插入圖片描述

在這里插入圖片描述

③ 多對多聯系在層次模型中的表示

方法:

  • 將多對多聯系分解成一對多聯系

分解方法:

  • 冗余結點法

  • 虛擬結點法

④ 數據操縱與完整性約束

層次模型的數據操縱:

  • 查詢
  • 插入
  • 刪除
  • 更新

層次模型的完整性約束條件:

  • 無相應的雙親結點值就不能插入子女結點值
  • 如果刪除雙親結點值,則相應的子女結點值也被同時刪除
  • 更新操作時,應更新所有相應記錄,以保證數據的一致性

⑤ 存儲結構

鄰接法

按照層次樹 前序遍歷(T-L-R)的順序把所有記錄值依次鄰接存放,即通過物理空間的位置相鄰來實現層次順序。又可分為:子女-兄弟鏈接法層次序列鏈接法

❶ 子女-兄弟鏈接法

每個記錄設兩類指針,分別指向最左邊的子女(每個記錄型對應一個)和最近的兄弟

❷ 層次序列鏈接法

  • 按樹的 前序穿越順序 鏈接各記錄值

⑥ 優缺點

  • 優點:
    層次模型的數據結構比較簡單清晰
    查詢效率高,性能優於關系模型,不低於網狀模型
    層次數據模型提供了良好的完整性支持
  • 缺點:
    多對多聯系表示不自然
    對插入和刪除操作的限制多,應用程序的編寫比較復雜
    查詢子女結點必須通過雙親結點
    由於結構嚴密,層次命令趨於程序化

(2)網狀模型(Network Model)

網狀數據庫系統采用網狀模型作為數據的組織方式

① 數據結構

網狀模型:

滿足下面兩個條件的基本層次聯系的集合:

  1. 允許一個以上的結點無雙親;
  2. 一個結點可以有多於一個的雙親。

表示方法(與層次數據模型相同):
實體型:用記錄類型描述
每個結點表示一個記錄類型(實體)
屬性:用字段描述
每個記錄類型可包含若干個字段
聯系:用結點之間的連線表示記錄類型(實體)之
間的一對多的父子聯系

網狀模型與層次模型的區別:

  • 網狀模型允許多個結點沒有雙親結點
  • 網狀模型允許結點有多個雙親結點
  • 網狀模型允許兩個結點之間有多種聯系(復合聯系)
  • 網狀模型可以更直接地去描述現實世界
  • 層次模型實際上是網狀模型的一個特例

網狀模型中子女結點與雙親結點的聯系可以不唯一
要為每個聯系命名,並指出與該聯系有關雙親記錄子女記錄

在這里插入圖片描述

在這里插入圖片描述

多對多聯系在網狀模型中的表示:

方法:將多對多聯系直接分解成一對多聯系

例如:一個學生可以選修若干門課程,·某一課程可以被多個學生選修,學生與課程之間是多對多聯系 ·

  • 引進一個學生選課的聯結記錄,由3個數據項組成
    學號
    課程號
    成績
    表示某個學生選修某一門課程及其成績

② 網狀數據模型的操縱與完整性約束(續)

網狀數據庫系統(如DBTG)對數據操縱加 了一些限制,提供了一定的完整性約束

  • :唯一標識記錄的數據項的集合
  • 一個聯系中雙親記錄與子女記錄之間是一對多聯系
  • 支持雙親記錄和子女記錄之間某些約束條件

③ 存儲結構

關鍵:

  • 實現記錄之間的聯系

常用方法

  • 單向鏈接
  • 雙向鏈接
  • 環狀鏈接
  • 向首鏈接

在這里插入圖片描述

④ 優缺點

  • 優點
    能夠更為直接地描述現實世界,如一個結點可以有多個雙親;
    具有良好的性能,存取效率較高;

  • 缺點
    結構比較復雜,而且隨着應用環境的擴大,數據庫的結構就變得越來越復雜,不利於最終用戶掌握;
    DDL、DML語言復雜,用戶不容易使用;

6.關系模型

關系數據庫系統采用關系模型作為數據的組織方式
1970年美國IBM公司San Jose研究室的研究員E.F.Codd首次提出了數據庫系統的關系模型
計算機廠商新推出的數據庫管理系統幾乎都支持關系模型

(1)數據結構

在用戶觀點下,關系模型中數據的邏輯結構是一張二維表,它由組成。
幾個名詞解釋:

  • 關系(Relation)
    一個關系對應通常說的一張表

  • 元組(Tuple)
    表中的一行即為一個元組

  • 屬性(Attribute)
    表中的一列即為一個屬性,給每一個屬性起一個名稱即屬性名

  • 主碼(Key)
    表中的某個屬性組,它可以唯一確定一個元組。

  • (Domain)
    屬性的取值范圍。

  • 分量
    元組中的一個屬性值。

  • 關系模式
    對關系的描述
    關系名(屬性1,屬性2,…,屬性n)
    學生(學號,姓名,年齡,性別,系,年級)

在這里插入圖片描述

舉幾個例子:

  • 例1
    學生、系、系與學生之間的 一對多聯系:
    學生(學號,姓名,年齡,性別,系號,年級)
    系 (系號,系名,辦公地點)

  • 例2
    系、系主任、系與系主任間的一對一聯系

  • 例3
    學生、課程、學生與課程之間的多對多聯系:
    學生(學號,姓名,年齡,性別,系號,年級)
    課程(課程號,課程名,學分)
    選修(學號,課程號,成績)

規范化:

關系必須是規范化的,滿足一定的規范條件
最基本的規范條件:關系的每一個分量必須是一個不可分的數據項, 不允許表中還有表
圖1.27中工資和扣除是可分的數據項 ,不符合關系模型要求

在這里插入圖片描述

在這里插入圖片描述

(2)關系數據模型的操縱與完整性約束

數據操作是集合操作,操作對象和操作結果都是關系

  • 查詢
  • 插入
  • 刪除
  • 更新

數據操作是集合操作,操作對象和操作結果都是關系,即若干元組的集合存取路徑對用戶隱蔽,用戶只要指出“干什么”,不必詳細說明“怎么干”

關系的完整性約束條件
實體完整性
參照完整性
用戶定義的完整性

(3)存儲結構

  • 實體及實體間的聯系都用表來表示
  • 表以文件形式存儲
    有的DBMS一個表對應一個操作系統文件;
    有的DBMS自己設計文件結構;

(4)優缺點

  • 優點
    建立在嚴格的數學概念的基礎上;
    概念單一:
    實體和各類聯系都用關系來表示;
    對數據的檢索結果也是關系;
    關系模型的存取路徑對用戶透明;
    具有更高的數據獨立性,更好的安全保密性
    簡化了程序員的工作和數據庫開發建立的工作;
  • 缺點
    • 存取路徑對用戶透明導致查詢效率往往不如非關系數據模型;
    • 為提高性能,必須對用戶的查詢請求進行優化,增加了開發DBMS的難度;

7.面向對象數據模型

  • 語義數據模型面向對象程序設計方法結合起來,用面向對象觀點來描述現實世界實體(對象)的邏輯組織、對象間限制、聯系等的模型。

  • 一系列面向對象核心概念構成了面向對象數據模型( Object Oriented Data Model, 00模型)的基礎。

8.對象關系模型

  • 對象關系數據庫系統(Object Relational DataBase System, ORDBS) 是關系數據庫面向對象數據庫的結合。
  • 它保持了關系數據庫系統的非過程化數據存取方式和數據獨立性,繼承了關系數據庫系統已有的技術,支持原有的數據管理,又能支持00模型和對象管理。各數據庫廠商都在原來的產品基礎上進行了擴展。
  • 1999 年發布的SQL標准(也稱為SQL99),增加了SQL/Object Language Binding, 提供了面向對象的功能標准。SQL99對ORDBS標准的制定滯后於實際系統的實現。所以各個ORDBS產品在支持對象模型方面雖然思想一致,但是所采用的術語、語言語法、擴展的功能都不盡相同。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM