數據庫2——概念

這一篇用來做課程前期數據庫概念的記錄,不會有sql語句。

數據模型

數據模型是現實世界數據特徵的抽象,是現實世界的模擬。

分類

數據模型分爲兩類:

  • 概念模型:按用戶觀點來對數據和信息建模,用於數據庫設計,也稱爲信息模型。
  • 邏輯模型和物理模型:
    • 邏輯模型:按計算機系統的觀點對數據建模,用於DBMS實現
    • 物理模型:是對數據最底層的抽象,描述數據在系統內部的表示方式和存儲方法,在磁盤或磁帶上的存儲方式和存取方法

概念模型

用途:

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

在這裏插入圖片描述
該圖是用於表示概念模型的E-R圖,其中方框代表模型的實體,橢圓代表實體的屬性,菱形代表實體間的聯繫。

實體

客觀存在並可相互區別的事物,可以是具體的人、事、物,也可以是抽象的概念聯繫

屬性

實體所具有的的某一特性稱爲屬性。實體有若干個屬性值來刻畫(實體不能只有一個屬性)。

碼(key)

唯一標識實體的最小屬性租稱爲碼,又叫做關鍵字、鍵。
關鍵字可以包含一個屬性,也可同時包含多可屬性——實體需要多個屬性才能唯一標識。
實體可以有一個碼,也可同時有多個嗎——最小的屬性組不止一種。

實體型

用實體名及其屬性名集合來抽象和刻畫同類實體,稱爲實體型。
在這裏插入圖片描述
在通常情況下,實體型也稱爲實體,他們倆區別不大

實體集

同型實體的集合

-----------------------------------------------------------
看到這如果不能分清實體、實體型、實體集可以這樣想:一個班級裏有小明、小紅、小剛三明學生,小明是一個實體,小明和他的一堆屬性(姓名,學號等)是一個實體型,小明、小紅、小剛加起來是一個實體集。

不看也行:
我們之所以說實體和實體型區別不大,是因爲“小明是一個實體”其實是“這名學生是一個實體”,“小明”是這名學生的一個屬性,在excel表格中這名學生是其中一行,這一行又包含着這名學生的屬性信息,所以這一行也是實體集,即:在excel表格(數據庫表)中,一行是一個實體/實體型,整個表是實體集
-----------------------------------------------------------

聯繫

事物內部的聯繫:實體內部的聯繫。
事物之間的聯繫:實體之間的聯繫,實體集之間的聯繫。

聯繫可以看做一個實體

實體之間的聯繫:

  • 一對一聯繫(1:1):
    身份證:一個人只有一張,每一張只能一個人用。
    在這裏插入圖片描述

  • 一對多聯繫(1:n):
    手機號:一個人可以有多個,一個手機號只能一個人用,可以沒有手機號,可以手機號沒人用。
    在這裏插入圖片描述

  • 多對多聯繫(m:n):
    共享單車:愛咋用咋用,可以不用,可以沒人騎。
    在這裏插入圖片描述

實體集之間的聯繫:

實體集的一對一聯繫沒有意義:因爲三個實體型以上的1:1聯繫,可以看成兩個實體型的1:1聯繫鏈,根據兩個實體型1:1聯繫的特點,三個以上的實體型可以看成一個實體型。

  • 一對多聯繫:
    在一組實體集中,只要有一組實體集滿足以下條件:其他實體集每一個實體,最多和這個實體集中的一個實體相聯繫,就稱爲一對多。
    各班級學生名單+優秀學生名單

  • 多對多關係:
    某個實體型與其他實體型有m:n的聯繫。
    供貨商–項目–零件

實體內部的聯繫:

  • 一對多聯繫:
    某一學生是全班學生的班長,
    一個學生只有一個班長。

  • 一對一聯繫:
    一個學生只有一個同桌,
    一個學生只能是另外一個學生的同桌。

  • 多對多聯繫:
    同班同學中,
    一個學生有許多同鄉,
    一個學生可以是其他許多學生的同桌。

邏輯模型(數據模型)

邏輯模型(數據模型)描述系統的靜態特性、動態特性和完整性約束條件。

邏輯模型的三要素:

  • 數據結構
  • 數據操作
  • 數據的約束條件(完整性約束)

數據結構

描述數據庫的組成對象(數據類型,內容,性質),以及對象之間的聯繫。

數據結構是對系統靜態特性的描述

數據操作

數據操作是指對數據庫中的各種對象(型)的實例(值)允許執行的操作的集合,包括操作以及有關的操作規則

數據操作的類型:

  • 檢索
  • 更新(包括插入、刪除、修改)

數據操作是對系統動態特性的描述

數據的約束條件

是一組完整性規則的集合。

完整性規則:

  • 是給定的數據模型中數據及其聯繫所具有制約依存規則
  • 是以限定符合數據模型的數據庫狀態以及狀態變化
  • 保證數據的正確、有效、相容

最常用的數據模型

  • 非關係模型
    • 層次模型:用樹狀結構來表示各類實體以及實體之間的聯繫。
    • 網狀模型
  • 關係模型
  • 面向對象模型
  • 對象關係模型

層次模型的優點:

  • 層次模型的數據結構比較簡單清晰
  • 查詢效率高,性能優於關係模型,不低於網狀模型
  • 層次數據模型提供了良好的完整性支持

層次模型的缺點:

  • 多對多聯繫表示不自然
  • 對插入和刪除操作限制多,應用程序的編寫比較複雜
  • 查詢子女節點必須通過雙親結點
  • 由於結構嚴密,層次命令趨於程序化

網狀模型的優點:

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

網狀模型的缺點:

  • 結構比較複雜,而且隨着應用環境的擴大,數據庫的結構就變得越來越複雜,不利於最終用戶掌握。
  • DDL、DML語言複雜,用戶不容易使用
  • 記錄之間的聯繫是通過存取路徑實現的,應用程序在訪問數據時必須選擇合適的存取路徑,因此用戶必須瞭解系統結構的細節,加重了編寫程序的負擔。

關係模型 (重要)

關係模型是目前最重要的一種數據模型。
關係模型是建立在嚴格的數學概念的基礎上的。
用戶角度,關係模型中的數據邏輯結構是一張二維表,由行和列組成。
在這裏插入圖片描述

術語

  • 關係:一張二維表,由行和列組成。->表/實體集
  • 元祖:表中的一行即爲一個元祖。->記錄/實體
  • 屬性:表中的一列即爲一個屬性。->字段/屬性
  • 主碼:表中的某個屬性組,它可以唯一確定一個元組。
  • 域:屬性的取值範圍。
  • 分量:元組中的一個屬性值。
  • 關係模式:對關係的描述,->表結構/實體型
    一般表示爲:關係名/表名(屬性集) 或 關係名/表名(屬性1,……,屬性n)

注意:
在這裏插入圖片描述

在這裏插入圖片描述

操縱和完整性約束條件

操縱: 查詢、插入、刪除、修改。

關係模型操作的特點:

  • 數據操縱都是集合操作
  • 操作對象和操作結果都是關係
  • 關係模型的語言:高度的非過程化

關係的完整性約束條件包括三大類:

  • 實體完整性
  • 參照完整性
  • 用戶定義完整性

存儲結構

關係模型的存儲單元是,表以文件形式存儲

優缺點

優點:

  • 建立在嚴格的數學概念的基礎上;
  • 關係模型的概念單一(關係,即表);數據結構簡單、清晰,用戶易懂易用;
  • 存取路徑對用戶透明,從而具有更高的數據獨立性、更好的安全保密性,簡化了開發工作。

缺點:

  • 由於存取路徑對用戶透明,查詢效率往往不如非關係模型;
  • 因此,爲了提高性能,必須對用戶的查詢請求進行優化,增加了DBMS開發難度。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章