← 返回 DBM

Chapter 3: Entity-Relationship Data Model

嘉義大學 管理資訊系 李延憲 教授

0
答對題數
0
總題數
0%
正確率
0/12
完成章節

1. ER 模型簡介 (Introduction to ER Model)

ER 模型是一種 Object-based data model(物件導向資料模型),廣泛用於概念資料庫設計階段的概念資料模型。

歷史

  • Peter Chen (1976) 首次提出 ER 模型
  • 原本只有三個基本概念:Entity Relationship Attributes
  • 後來擴展加入更多概念:
擴展概念:Generalization Aggregation Composite Attribute Multi-valued Attribute
ER 模型是資料庫設計的「藍圖」,就像建築師畫設計圖一樣,先用 ER 圖規劃好資料結構,再轉換成實際的資料庫 schema。
Q1: ER 模型最初由誰在哪一年提出?
Peter Chen 在 1976 年首次提出 ER 模型,原始版本包含 Entity、Relationship 和 Attributes 三個基本概念。Edgar Codd 提出的是關聯式模型(1970)。
Q2: ER 模型原始版本不包含以下哪個概念?
Generalization 是後來擴展加入的概念。原始 ER 模型只有 Entity、Relationship 和 Attributes。
Q3: ER 模型屬於哪一類資料模型?
ER 模型是 Object-based data model(物件導向資料模型),用於概念層級的資料庫設計。

2. ER 圖形符號 (ER Diagram Notations)

ER 圖使用標準化的圖形符號來表示不同的概念。點擊每個符號卡片查看詳細說明。

ENTITY
Entity Type(實體類型)
矩形
代表一組具有相同屬性的實體集合。例如:EMPLOYEE、DEPARTMENT、PROJECT 等。矩形內寫上實體類型的名稱。
WEAK
Weak Entity Type(弱實體類型)
雙線矩形
沒有自己的 key attribute,必須依賴其他 entity type(owner)來識別。例如:DEPENDENT 依賴 EMPLOYEE。
WORKS
Relationship Type(關係類型)
菱形
代表兩個或多個 entity types 之間的關聯。菱形內寫上關係名稱,如 WORKS-FOR、MANAGES 等。
IDENT
Identifying Relationship(識別關係)
雙線菱形
連接 weak entity type 和其 owner entity type 的特殊關係。Weak entity 透過此關係來獲得完整的識別。
IS-AE2E3
Specialization / IS-A
三角形 + IS-A 標籤
E1 是 superclass,E2/E3 是 subclasses。表示「E2 IS-A E1」的繼承關係。子類繼承父類的所有屬性和關係。
Name
Single-valued Attribute(單值屬性)
橢圓
每個 entity 對此屬性只有一個值。例如:Name、Age、Salary。
AddressCityStateZip
Composite Attribute(複合屬性)
橢圓連接子橢圓
可分為更小的子部分,形成階層結構。例如:Address 可分為 City、State、ZipCode。
Phones
Multi-valued Attribute(多值屬性)
雙線橢圓
每個 entity 可有多個值。例如:一個人可能有多個電話號碼。有上下界限制。
Age
Derived Attribute(衍生屬性)
虛線橢圓
可從其他屬性推導出來的值。例如:Age 可從 BirthDate 推導;#OfEmployees 可從計算員工數得出。
SSN
Key Attribute(鍵屬性)
底線橢圓
值對每個 entity 都不同(唯一性約束)。用底線標示。例如:SSN、EmployeeID。
Name
Partial Key(部分鍵)
虛底線橢圓
Weak entity type 的 discriminator。可唯一識別同一 owner 下的 weak entities。例如:Dependent 的 Name 在同一 Employee 下是唯一的。
Q1: Weak entity type 在 ER 圖中用什麼符號表示?
Weak entity type 用雙線矩形表示,而雙線菱形是 identifying relationship 的符號。
Q2: Derived attribute 在 ER 圖中用什麼符號表示?
Derived attribute 用虛線橢圓表示,因為它的值是「推導」出來的,不是直接儲存的。雙線橢圓是 multi-valued attribute。
Q3: 以下哪個不是 ER 圖的標準符號?
Entity type 用矩形表示,不是圓形。圓形不是 ER 圖的標準符號。

3. Entities(實體)

Entity 是存在且可區分的物件,可以是物理的或概念的。

Physical Entity(物理實體)

特定的人、員工、車、房子 — 可以實際觸摸或看到的物件

Conceptual Entity(概念實體)

公司、工作、大學課程、銀行帳戶 — 抽象的概念

Entity 的特性

  • 每個 entity 有 attributes(屬性)來描述它
  • 每個 entity 對每個 attribute 有一個值(value)
  • Entity 是可以被唯一識別的個體

4. Entity Types(實體類型)

Entity type 是具有相同 attributes 的 entities 集合。

  • 同類型的 entities 共享相同 attributes,但各自有不同的值
  • 名稱屬性列表描述

範例

EMPLOYEE(Name, Age, Salary)
→ e1(Justin, M, 80K), e2(Judy, F, 90K)

Company(Name, Headquarters, President)
→ c1(One-to-One Marketing, Urbana, Justin)
Entity type 定義了「結構」(有哪些屬性),而 entity 是具體的「實例」(有具體的值)。就像「學生」是 entity type,「小明」是一個 entity。
Q1: 以下哪個是 Conceptual Entity?
大學課程是抽象的概念(conceptual entity),而車、員工、建築物都是可以實際看到或觸摸的物理實體(physical entity)。
Q2: Entity type 和 Entity 的關係是?
Entity type 定義結構(如 EMPLOYEE 有 Name, Age, Salary),Entity 是具體的實例(如 Justin, M, 80K)。就像「類別」和「物件」的關係。

5. Relationships and Relationship Types(關係與關係類型)

Relationship(關係)

多個 entities 之間的關聯。

John Smith works-for MIS department
Judy Brown works-on DB-design project for Accounting department

Relationship Type(關係類型)

  • 同類型 relationships 的集合
  • 每個 relationship instance 包含每個參與 entity type 的恰好一個 entity

6. Types of Relationship Types(關係類型的種類)

① Association Relationship(關聯關係)

關聯兩個或多個獨立的 entity types。

EMPLOYEE works-for DEPARTMENT

② Specialization / Generalization Relationship(特化/一般化關係)

  • 將 entity type(superclass)特化為一組 entity types(subclasses
  • IS-A relationship
  • Generalization 是 specialization 的反向
  • 子類繼承父類的所有 attributes 和 relationships(inheritance
PERSON IS-A EMPLOYEE / STUDENT(Employee 和 Student 繼承 Person 的所有屬性)

③ Aggregation Relationship(聚合關係)

  • 從一組 component entity types 定義新的 aggregate entity type
  • IS-PART-OF relationship
ENGINE IS-PART-OF CAR(引擎是汽車的一部分)
Q1: Specialization 和 Generalization 的關係是?
Specialization 是由上而下(superclass → subclasses),Generalization 是由下而上(subclasses → superclass),兩者互為反向。
Q2: IS-PART-OF 關係屬於哪種 relationship type?
IS-PART-OF 是 Aggregation relationship 的特徵。IS-A 是 Specialization,而 Association 是一般的關聯關係。
Q3: Subclass 會繼承 superclass 的什麼?
在 IS-A 關係中,subclass 繼承 superclass 的所有 attributes 和 relationships,這就是 inheritance(繼承)的概念。

7. Attributes(屬性)

Attributes 描述 entity 的特性。有多種分類方式:

① Simple vs Composite(簡單 vs 複合)

Simple (Atomic)

不可分割的屬性
例如:Age、Salary

Composite

可分為更小的子部分
可形成階層結構

Composite 範例:
Address → StreetAddress(Number, Street, ApartmentNumber) + City + State + ZipCode
Name → FirstName + MiddleName + LastName

② Single-valued vs Multi-valued(單值 vs 多值)

Single-valued

每個 entity 只有一個
例如:BirthDate、SSN

Multi-valued

每個 entity 可有多個
有上下界限制

Multi-valued 範例:一個人可能有多個電話號碼(Phone: 0912-xxx, 02-xxxx)

③ Stored vs Derived(儲存 vs 衍生)

Stored

原始儲存的值
例如:BirthDate

Derived

可從其他屬性推導
例如:Age(從 BirthDate)

Derived attribute 也可從相關 entities 推導。例如:Department 的 #OfEmployees 可從計算該部門的員工數得出。

8. Null Values(空值)

當 entity 沒有適用的值時,使用 Null。

注意:兩種 Null 的意義不同!
Not Applicable(不適用):例如公寓號碼對獨棟房屋不適用
Unknown(未知):例如不知道某人的電話號碼
Q1: Address 可分為 City、State、ZipCode,這種屬性稱為?
Address 可以分解為更小的子部分(City、State、ZipCode),這是 Composite attribute 的特徵。Multi-valued 是指一個屬性有多個值。
Q2: Age 從 BirthDate 計算得出,Age 屬於哪種屬性?
Age 可以從 BirthDate 推導出來,所以是 Derived attribute。BirthDate 才是 Stored attribute。
Q3: Null value 的兩種意義分別是?
Null 有兩種不同意義:Not Applicable(不適用,如公寓號碼對獨棟房屋)和 Unknown(未知,如不知道某人的電話)。

9. Key Attributes(鍵屬性)

  • Key attribute = 值對每個 entity 都不同的屬性(唯一性約束)
  • Candidate key:可作為 key 的屬性(可能有多個)
  • Primary key:被選為主要識別方式的 candidate key
  • Secondary key:其他未被選為 primary key 的 candidate keys
Employee 有兩個 candidate keys:
SSN(社會安全號碼)
EmployeeID(員工編號)
選擇 SSN 作為 primary key,則 EmployeeID 就是 secondary key。

10. Weak Entity Types(弱實體類型)

  • 沒有自己的 key attribute 的 entity type
  • 透過與 identifying (owner) entity type 的關係來識別
  • Identifying relationship:連接 weak entity type 和 owner 的關係
  • 總是有 total participation(存在依賴)
  • Partial key (discriminator):可唯一識別同一 owner 下的 weak entities 的屬性集
範例:Dependent 依賴 Employee
→ 兩個不同 employee 的 dependent 可能有相同的 Name/BirthDate/Gender
→ Dependent 的 partial key 是 Name(在同一 Employee 下唯一)
→ 完整識別 = Employee.SSN + Dependent.Name
注意:不是所有 existence dependency 都是 weak entity!
例如 Driver_License 雖然依賴 Person 存在,但它有自己的 key(LicenseNumber),所以不是 weak entity。
Q1: Primary key 和 Secondary key 的關係是?
Candidate key 是所有可作為 key 的屬性。從中選一個作為 Primary key,其餘的就是 Secondary key。兩者都具有唯一性。
Q2: Weak entity type 的 partial key 的作用是?
Partial key(discriminator)只能在同一 owner 下唯一識別 weak entities。完整識別需要 owner 的 key + partial key。
Q3: Driver_License 依賴 Person 存在,但有自己的 LicenseNumber。它是 weak entity 嗎?
Weak entity 的定義是「沒有自己的 key attribute」。Driver_License 有 LicenseNumber 作為 key,所以不是 weak entity,即使它在存在上依賴 Person。

11. Degree of Relationship Type(關係的度數)

Degree 指的是參與 relationship 的 entity types 數量。

Relationship Degree 比較
EMPLOYEE supervises
Unary (Degree 1)
同一 entity type 參與多次
EMP works-for DEPT
Binary (Degree 2)
兩個不同 entity types
SUPP supply PROJ PART
Ternary (Degree 3)
三個不同 entity types
大多數現實世界的 relationship types 是 binary(度數為 2)。

12. Roles in Relationship Type(關係中的角色)

  • 每個參與的 entity type 扮演特定角色(role)
  • 當所有參與 entity types 不同時,角色名稱是隱含的
  • Unary (recursive) relationship 中,角色名稱是必要的
Unary 範例:EMPLOYEE supervises EMPLOYEE
→ 需要角色名稱:supervisor(上司)和 supervisee(下屬)
→ 因為同一個 entity type 參與了兩次,必須用角色區分
Q1: 一個 EMPLOYEE supervises 另一個 EMPLOYEE,這是什麼 degree 的 relationship?
雖然有兩個 entity 參與,但它們屬於同一個 entity type(EMPLOYEE),所以是 Unary(recursive)relationship,degree 為 1。
Q2: 什麼情況下角色名稱是必要的?
在 Unary relationship 中,同一個 entity type 參與多次,必須用角色名稱來區分不同的參與方式。其他情況下角色名稱是隱含的。

13. Cardinality Constraints(基數約束)

Binary Relationship 的基數

  • Maximal cardinality:一個 entity 最多可關聯多少個另一類型的 entities
  • Minimal cardinality:一個 entity 最少要關聯多少個
  • (min, max) 表示

互動展示:Cardinality Types

點擊不同的基數類型查看說明和圖示:

1:1 — One-to-One
EMPLOYEE manages DEPT 1 1

一個 Employee 最多管理一個 Department,一個 Department 最多被一個 Employee 管理。

(min, max) 表示法

Employee (1,1) Works-for (0,N) Department

→ 每個 Employee 必須且只能在一個 Department 工作 (min=1, max=1)
→ 每個 Department 可以有 0 到多個 Employee (min=0, max=N)

Ternary Relationship 的基數

Student (1,1) Work-on (1,N) Advisor, Dissertation (1,1)

→ 每個 Student 恰好有一個 Advisor 和一篇 Dissertation
→ 每個 Advisor 可以指導 1 到 N 個 Student

不同圖形表示法

  • 數字標記:1, N, M
  • 箭頭標記:→ 表示 one,無箭頭表示 many
  • 文字標記:one, many
Q1: Employee (1,1) Works-for (0,N) Department,以下哪個敘述正確?
Employee 的 (1,1) 表示 min=1, max=1,即每個員工必須且只能屬於一個部門。Department 的 (0,N) 表示部門可以有 0 到多個員工。
Q2: M:N 的 relationship 表示什麼?
M:N 表示多對多(Many-to-Many)關係。一邊的 entity 可以關聯多個另一邊的 entities,反之亦然。例如:Student M:N Course(學生可選多門課,課程可有多個學生)。
Q3: 在箭頭標記法中,→ 表示什麼?
在箭頭標記法中,箭頭(→)表示 one,無箭頭表示 many。

Participation Constraint(參與約束)

Participation constraint 決定一個 entity type 的 instance 是否必須參與某個 relationship。在 ER 圖中用連線的粗細來表示。

兩種參與類型

雙線(Double Line)= Total Participation

  • 每個 entity instance 都必須參與該 relationship
  • min ≥ 1
  • 又稱 existence dependency

單線(Single Line)= Partial Participation

  • entity instance 可以不參與該 relationship
  • min = 0
  • 參與是可選的

互動展示:雙線 vs 單線

點擊切換不同的範例:

EMPLOYEE Works_For DEPARTMENT Total (雙線) Partial (單線)

Employee ═══ Works_For ─── Department
Employee 是 Total Participation(雙線):每個員工都必須屬於一個部門。
Department 是 Partial Participation(單線):可以有部門暫時沒有員工。

與 (min, max) 的對應

ER 圖表示 Participation (min, max) 的 min 意義
雙線 ═══ Total min ≥ 1 每個 instance 都必須參與
單線 ─── Partial min = 0 instance 可以不參與

常見範例整理

Employee ═══ Works_For ─── Department
每個員工必須屬於一個部門(Total),但部門可以暫時沒人(Partial)
Employee ─── Manages ─── Department
不是每個員工都管理部門(Partial),也不是每個部門都有管理者(Partial)
Employee ─── Has ═══ Dependent
不是每個員工都有眷屬(Partial),但每個眷屬必須屬於一個員工(Total)— Dependent 是 Weak Entity
Q1: ER 圖中,雙線連線代表什麼?
雙線連線表示 Total Participation,代表該 entity type 的每個 instance 都必須參與該 relationship。
Q2: Employee (0,N) Manages (1,1) Department,Employee 到 Manages 是什麼 participation?
Employee 的 min = 0,表示不是每個員工都管理部門,所以是 Partial Participation(單線)。Department 的 min = 1,表示每個部門都必須有管理者,是 Total Participation(雙線)。
Q3: Weak Entity 到 Identifying Relationship 一定是什麼 participation?
Weak Entity 的存在依賴 Owner Entity,所以它到 Identifying Relationship 一定是 Total Participation(雙線)。沒有 Owner 就不存在。

14. ER Diagram 完整範例

點擊圖中的 entity 或 relationship 查看詳細資訊。

Instructor-Course-Student ER Diagram(互動式)
Instructor SSN Name Rank Has (0,N) Dependent (1,1) Name Sex Relation Teach (1,N) Course (1,1) C-No C-Name #Students Take (1,N) Grade Student (1,N) SSN Name Address Phone AreaCode Local# IS-A (D,P) Undergraduate Graduate

Q1: 在上面的 ER 圖中,Dependent 是什麼類型的 entity?
Dependent 用雙線矩形表示,是 weak entity type。它的 Name 是 partial key(虛底線),透過 Has(identifying relationship)依賴 Instructor。
Q2: #Students 用虛線橢圓表示,這代表什麼?
#Students 是 derived attribute(衍生屬性),可以從計算選修該課程的學生數得出,不需要直接儲存。
Q3: Student 的 IS-A 標記 (D,P) 代表什麼意思?
D = Disjoint(一個 Student 最多屬於一個 subclass),P = Partial(Student 可以不屬於任何 subclass,即既不是 Undergraduate 也不是 Graduate)。

15. Specialization Constraints(特化約束)

① Disjointness Constraint(不相交約束)

Disjoint (D)

Entity 最多屬於一個 subclass

Overlapping (O)

Entity 可屬於多個 subclasses

② Completeness Constraint(完整性約束)

Total (T)

Superclass 的每個 entity 必須屬於某個 subclass

Partial (P)

Superclass 的 entity 可以不屬於任何 subclass

互動展示:Specialization Constraints

切換開關查看不同約束組合的效果:

Overlapping (O) Disjoint (D)
Partial (P) Total (T)
目前:(D, P) — Disjoint, Partial
Employee IS-A (D, P) Doctor Nurse
Disjoint:一個 Employee 最多是 Doctor 或 Nurse 其中之一
Partial:Employee 可以既不是 Doctor 也不是 Nurse

四種組合

(D, P) 最多一個 subclass,可以都不是
(D, T) 恰好一個 subclass
(O, P) 可多個 subclass,可以都不是
(O, T) 至少一個 subclass,可多個

範例

Hospital Employee IS-A (D) Doctor / Nurse → 不能同時是醫生和護士
Student Assistant IS-A (O) RA / TA → 可同時是 RA 和 TA
Hospital Employee IS-A (P) → 可以既不是醫生也不是護士
Student Assistant IS-A (T) → 必須是 RA 或 TA(或兩者)
Q1: 一個 Student Assistant 可以同時是 RA 和 TA,這是什麼約束?
可以同時屬於多個 subclass 就是 Overlapping (O)。Disjoint 表示最多只能屬於一個。
Q2: (D, T) 約束表示什麼?
D = Disjoint(最多一個),T = Total(至少一個)。合起來就是「恰好一個」subclass。
Q3: Hospital Employee IS-A (D) Doctor/Nurse,以下哪個情況是允許的?
Disjoint 約束表示一個 entity 最多屬於一個 subclass,所以不能同時是 Doctor 和 Nurse。只是 Doctor 是允許的。

16. Integrity Constraints(完整性約束)

ER 模型中有多種完整性約束,確保資料的正確性和一致性:

Uniqueness constraint
Key attribute 的唯一性約束 — 每個 entity 的 key 值必須不同
Existence-dependence constraint
Weak entity types 的存在依賴約束 — weak entity 必須有對應的 owner entity
Entity participation constraint
包含 cardinality、disjointness、completeness 約束
Attribute domain constraint
資料型別、可能值、值範圍的限制
Attribute value dependence constraint
屬性值之間的依賴關係
Q1: Weak entity type 的存在依賴屬於哪種 integrity constraint?
Weak entity type 必須依賴 owner entity 存在,這就是 existence-dependence constraint。
Q2: 「Salary 必須是正整數且不超過 1,000,000」屬於哪種約束?
限制屬性的資料型別和值範圍屬於 attribute domain constraint。

17. Key Attribute of Relationship Type(關係類型的鍵屬性)

Relationship type 的 key 取決於業務規則語意

Work-for 範例

情況 1:員工不能重複在同一部門工作
→ Key = Employee.SSN(因為一個員工只能在一個部門)

情況 2:員工可以重複在同一部門工作(保留歷史紀錄)
→ Key = Employee.SSN + Work-for.StartingDate

Take 範例

情況 1:不能重修
→ Key = Student.SSN + Course.C-No

情況 2:可以重修
→ Key = Student.SSN + Course.C-No + Take.Term
Relationship type 的 key 設計非常重要!它決定了哪些 relationship instances 是「不同的」。設計時要仔細考慮業務需求。
Q1: 如果學生可以重修課程,Take relationship 的 key 應該是?
如果可以重修,同一個學生可以在不同學期修同一門課,所以需要加上 Term 來區分不同的修課紀錄。
Q2: Relationship type 的 key 設計取決於什麼?
Relationship type 的 key 取決於業務規則(如能否重修、能否重複任職)和語意需求,不是機械式決定的。

術語表 (Glossary)

可搜尋的中英對照術語表,輸入關鍵字快速查找:

英文術語中文翻譯說明
Entity實體存在且可區分的物件
Entity Type實體類型具有相同屬性的實體集合
Weak Entity Type弱實體類型沒有自己 key 的實體類型
Relationship關係多個實體之間的關聯
Relationship Type關係類型同類型關係的集合
Attribute屬性描述實體特性的資料項
Simple Attribute簡單屬性不可分割的原子屬性
Composite Attribute複合屬性可分為子部分的屬性
Multi-valued Attribute多值屬性可有多個值的屬性
Derived Attribute衍生屬性可從其他屬性推導的屬性
Stored Attribute儲存屬性直接儲存的原始屬性
Key Attribute鍵屬性值唯一的屬性
Candidate Key候選鍵可作為 key 的屬性
Primary Key主鍵被選為主要識別的候選鍵
Secondary Key次要鍵未被選為主鍵的候選鍵
Partial Key部分鍵Weak entity 的 discriminator
Identifying Relationship識別關係連接 weak entity 和 owner 的關係
Association Relationship關聯關係關聯獨立 entity types 的關係
Specialization特化Superclass 分為 subclasses
Generalization一般化Subclasses 合為 superclass
Aggregation聚合IS-PART-OF 關係
Inheritance繼承子類繼承父類的屬性和關係
Superclass超類別被特化的父類
Subclass子類別特化後的子類
Cardinality基數關係中實體的數量約束
Maximal Cardinality最大基數最多可關聯的實體數
Minimal Cardinality最小基數最少要關聯的實體數
Total Participation全部參與每個實體都必須參與關係
Partial Participation部分參與實體可以不參與關係
Disjoint (D)不相交最多屬於一個子類
Overlapping (O)重疊可屬於多個子類
Total (T)完全必須屬於某個子類
Partial (P)部分可以不屬於任何子類
Degree度數參與關係的 entity type 數量
Unary Relationship一元關係Degree 1,遞迴關係
Binary Relationship二元關係Degree 2
Ternary Relationship三元關係Degree 3
Role角色Entity 在關係中扮演的角色
Null Value空值不適用或未知的值
Existence Dependency存在依賴一個實體依賴另一個存在
Uniqueness Constraint唯一性約束Key 值必須唯一
Domain Constraint定義域約束屬性值的型別和範圍限制
ER DiagramER 圖實體關係圖
Physical Entity物理實體可觸摸的實際物件
Conceptual Entity概念實體抽象的概念物件

成就系統

完成學習目標解鎖成就!

學習進度