二、個體關係模型 (ER model)

十鱷魚
twelvefish
Published in
Jul 22, 2021
Photo by eskay lim on Unsplash

《每日一句》The beginning is the most important part of the work.

開始階段是工作最重要的部分。

個體關係模型 ER model

主要區分為個體、關聯、屬性,三種類型

個體

  • 一般個體 (Entity) : 可獨立存在的事物,ex: 員工、部門、專案
  • 弱個體 (Weak Entity) : 本身沒有鍵值屬性,需依附於其他個體,ex: 員工親屬個體必須依附於員工個體,之間的關聯必須用全部參與來表示

關聯

  • 關聯 (Relatinship) : 用以表達個體與個體間的關係,ex: 教授個體與學生個體之間有教導的關係
  • 二元關聯 : 由兩個個體所產生的關聯,ex: 員工個體和部門個體產生工作於關係
  • 三元關聯 : 由三個個體所產生的關聯,ex: 業務員客戶產品,三者個體之間的關聯
  • 一對一關聯 : 表達個體間數量關係,ex: 一個部門只有一位主管,一位主管也只能管理一個部門
  • 一對多關聯 : 表達個體間數量關係,ex: 一個部門可以有多位員工,但一位員工只能工作於一個部門
  • 多對多關聯 : 表達個體間數量關係,ex: 一位員工可以參與多個專案,而一個專案也可以由多位員工參與
  • 部分參與 : 由參與關係的個體數來看,以 (min,max) 來表示,而最小值min =0,以一條直線表示
  • 全部參與 : 由參與關係的個體數來看,以 (min,max) 來表示,而最小值min >=1,以兩條直線表示

屬性

  • 屬性 (Attribute) : 描述個體特性,個體可能含有多個屬性,且每個屬性都含有值 (Value),ex: 員工個體擁有員工代號、姓名、電話…等屬性
  • 複合屬性 (Composite Attribute) : 某一屬性可再分割為更小單元,ex: 生日可在分為年、月、日
  • 多值屬性 (Multi-valued Attribute) : 某些屬性,可能有一個以上的值,ex: 部門個體的地址屬性可能不只一個
  • 衍生屬性 (Derived Attributes) : 可以推算出來的屬性,ex: 可藉由生日屬性推算出年齡

藉由題目繪製ER圖

  • 決定資料庫之個體 (Entity)
  • 決定個體之屬性 (Attribute)
  • 決定個體和個體之間的關聯 (Relationship)
  • 劃出個體的鍵值屬性 (Key attribute)

範例 :

1、本公司需記錄員工資料,包含員工身分證、姓名、電話、住址、薪資
2、公司擁有多個部門,每個部門需記錄部門代號、部門名稱、地點,每個員工必須屬於公司的某個部門
3、本公司擁有多個專案,專案紀錄專案代碼、專案名稱,每個專案皆由特定部門掌控,但一個部門可以掌控多個專案

藉由ER圖敘述所代表含意

  • 找出每個個體,敘述個體之屬性 (一般、鍵值、複合、多值屬性...)
  • 找出各個關聯為一對一、一對多、多對多
  • 關聯搭配個體和最大最小值一起描述

範例 :

1、客戶有客戶代號、姓名、電話、地址,其中客戶代號不能重複
2、訂單有訂單代號、日期,其中訂單代號不能重複
3、產品有產品代號、名稱、單價,其中產品代號不能重複
4、一位客戶可以下N張訂單也可不下單,而一張訂單只能屬於一位客戶
5、一張訂單可以訂購多樣產品,至少須訂購一樣產品,且紀錄數量,產品也可重複在訂單中被訂購

三元關係 VS 三個二元關係

三元關係不等於三個二元關係

三元關係

  • 三元關係的畫法有下列兩種
  • 三元關係等同於三個二元一對多
  • 個體客戶、業務、產品三者關聯缺一不可
  • 銷售紀錄必為弱個體,因為依附於其他三個個體

三個二元關係

  • 三個二元關係只能表達兩個個體之間的關聯
  • 缺乏三者之間的關聯,無法得知客戶某次購買之產品為哪位業務負責

以上針對資料庫的個體關係模型 (ER model)做個學習筆記

如果你喜歡我的創作,請大力地給我拍拍手 🐊 🐊 🐊

上一章: 一、資料庫系統概論

下一章:

--

--