天天看點

[資料庫系統]第3講 ER模型設計知識點整理

第1節 資料庫設計過程

資料庫設計的基礎條件(前提/資料源)

  • 清楚一個應用系統的功能需求與資料需求(直接與使用者互動/資料流程圖示例/UML類圖等)

資料庫設計的核心階段:

  1. 資料庫模組化階段(概念設計)

    根據資料需求->建立概念模型(便于面向使用者互動)

  2. 資料庫邏輯結構設計階段(邏輯設計)

    基于概念模型->形成商業産品支援的邏輯模型(面向計算機邏輯實作)

  3. 資料庫實體組織設計階段(實體設計)

    根據邏輯模型->确定适合應用要求的實體模型(面向計算機實體實作)

資料庫設計的後期工作(資料庫實作)

根據設計的邏輯模型和實體模型實際的資料庫結構(比如:采用SQL定義語言,實際建立關系模式)

設計選擇

在設計一個資料庫模式的時候,我們必須確定避免兩個主要的缺陷:

  1. 備援:一個不好的設計可能會重複資訊。
  2. 不完整:一個不好的設計可能會使得企事業機構的某些方面難于甚至無法模組化。

第2節 E-R模型的基本組成

E-R模型有什麼作用

  1. 有助于資料庫設計
  2. 是一種語義模型,模型的語義方面主要展現在模型力圖去表達資料的意義
  3. 提供了在資料庫設計過程中如何表示實體以及實體間聯系的方法
  4. 有助于将現實世界的含義和互相關聯映射到概念模式方面

E-R模型與E-R圖有什麼差別

  • E-R模型是一種描述方法
  • E-R圖采用E-R模型方法,對一具體應用的描述結果

E-R模型有哪些基本要素?

  • 基本要素包括實體集和聯系
    • 實體集&屬性(矩形): 描述資料内部結構,具有相同屬性的實體具有相同的特征和性質,包括實體和屬性
    • 聯系集(菱形及連線): 描述外部結構,聯系也稱關系,在資訊世界中反映實體内部或實體之間的聯系

實體集

  • 實體: 是現實世界中可差別于所有其他對象的一個“事物”或”對象“
  • 相關類型實體(對象)的集合

聯系集

  • 聯系: 是指多個實體間的互相關聯
  • 相關類型聯系(連線)的集合

超碼

  • 一個或多個屬性的集合,這些屬性的組合可以使我們在一個實體集中唯一的辨別一個實體。

候選碼

  • 如果任意超碼的真子集不能包括超碼,則稱其為候選碼;超碼包括候選碼。

主碼

  • 被資料庫設計者選中的,用來在同一實體集中區分不同實體的候選碼。

第3節 E-R模型中聯系集的類型

常見的聯系集類型(映射基數)分為一對一、一對多和多對多

[資料庫系統]第3講 ER模型設計知識點整理

第4節 E-R圖的繪制

如何建立ER圖?

  • 兩種方式:第一種是從需求分析階段得到的資料流圖(DFD)和資料字典(DD)來建立模型;第二種是根據對現實世界的了解,直接進行模組化。當資料庫應用的業務邏輯簡單易懂時,可以直接使用第二種

第5節 複合屬性與多元聯系集

[資料庫系統]第3講 ER模型設計知識點整理

E-R模型可描述任何複雜客觀對象,實體集可以是任何一種複雜資料結構

  • 因為:E-R模型重點是面向客觀世界,建立易于使用者了解的抽象資料模型(它不關心資料如何才能夠被實際存儲)

什麼是多元聯系集和角色?

  • 一個聯系相關的有多個實體集
  • 每一個連線代表一個不同角色

多元聯系集描述可否轉換為二進制聯系集描述?

  • 轉換規則如下:

    多元聯系的二進制分解(實體集間的關系):

    對多元聯系集R中每個實體(ai,bi,ci):

    建立實體集E中的一個新實體ei=(ai,bi,ci)

    添加(ei,ai)到二進制聯系集RA

    添加(ei,bi)到二進制聯系集RB……

[資料庫系統]第3講 ER模型設計知識點整理

第6節 E-R圖設計問題

E-R圖設計時有哪些問題需要考慮?

  • 描述一個概念應該用實體還是屬性,用實體還是實體集,用實體集還是聯系集,如用聯系集,應該用二進制聯系還是多元聯系。

多對一或一對一聯系的屬性,一般放在實體集中

如何處理多值屬性和複合屬性

  1. 将原來的多值屬性用幾個單值屬性來代替
  2. 将原來的多值屬性用一個新的實體來代替

什麼是弱實體集

  • 有鍵的實體稱為強實體,無鍵的實體稱為弱實體。
  • 弱實體的存在依賴于主實體。弱實體區分各個實體的屬性集合稱為鑒别鍵或偏鍵。弱實體集的主鍵由所依賴的強實體主鍵加上弱實體的鑒别鍵構成。
  • 在E-R圖上用雙矩形表示弱實體集,其鑒别鍵加下劃虛線。

聯系集還是實體集

  • 設計原則:通常地,采用聯系來表示發生在兩個實體集之間的一個動作,如選課!如果僅描述學生選課,用選課聯系(方法1)。但如果強調學生為上何課程,要求到教務辦去報名注冊,則應用一個實體集及兩個聯系(方法2)。
[資料庫系統]第3講 ER模型設計知識點整理

第7節 擴充E-R模型

特化與概化(特殊化與一般化)

  • 特化:自頂向下的設計過程
  • 概化:自底向上的設計過程
    • 部分概化:允許父實體不屬于任何子實體集(預設表示)
    • 全部概化:每個父實體必屬于某一子實體集(采用辨別total)

擴充E-R模型的特性

  • 特殊化: 實體集中某些子集具有差別于該實體集内其他實體的特性,可以根據這些差異特性對實體集進行分組,這一分組的過程稱為特殊化。
  • 概括: 各個實體集根據共有的性質,合成一個較高層的實體集。概括是一個高層實體集與若幹個底層實體集之間的包含關系。自底向上,逐漸合成
  • 屬性繼承: 高層實體集的屬性被底層實體集自動繼承。底層實體集特有的性質僅适用于某個特定的低層實體集
  • 聚集: 聯系之間存在重疊,如何表達聯系之間的聯系?聚集是一種抽象,通過它聯系被作為實體集。實體集A與B以及它們的聯系可被看成另一實體集C,使用聚集來消除備援。

聚集

  • 聚集是一種抽象:它将聯系集(及其相關實體集)看着是一個更高層的抽象實體集
  • 例中,抽象的“proj_guide實體集”包含了project_guide聯系集、以及instructor,student,project實體集(看着是一個具有複雜構造的實體集)
  • [資料庫系統]第3講 ER模型設計知識點整理

第8節 概念設計

概念設計的作用是什麼?

  • 概念:将需求分析得到的使用者需求抽象為資訊結構即概念模型的過程就是概念設計結構設計。
  • 概念結構獨立于資料庫邏輯結構,也獨立于支援資料庫的DBMS,是現實世界的一個真實模型,易于了解,便于和不熟悉計算機的使用者交換意見,使使用者易于參與。

概念設計包括哪些步驟

  1. 局部E-R模式設計
  2. 全局E-R模式設計
  3. 全局E-R模式優化