關聯模型

關聯式模型
以table(資料表)的方式來呈現
此table在關聯式模型中稱為
Relation(關聯)或Entity(實體)
ps:IBM Codd博士於1970發表

Relational Schema(關聯綱要)
是由數個關聯所組成的一個集合

關聯式模型的完整性限制
Key Integrity Constraint(鍵值完整性限制)
鍵值不可為Null Value(空值)
Domain Integrity Constraint(領域完整性限制)

對於不符合人們所期待的屬性值,要被被限制輸入,以避免造成無用的資料儲存在資料庫內
ex:定義姓別只可有男或女可選
Entity Integrity Constraint(實體完整性限制)
在同一關聯中,鍵值屬性不可有重複值
Referential Integrity Constraint(參考完整性限制)
由子關聯的FK(Foreign Key,外來鍵)參考父關聯的PK(Primary Key,主要鍵)所形成的一個Relationship(關聯性)
User-Defined Integrity Constraint(使用者自訂的完整性限制)
依據使用者的需求,額外新增的限制資料的輸入,以保持資料的完整性

…………………….

關聯轉換
ps:
E1為entity1
A1為第1個attribute
表示該attribute為PK
.fk表示該attribute為外來鍵
E1.A1表示entity1的第一個attribute

1< R>1  轉換
通常會將兩個關聯直接合併成一個關聯,在實作上而言會增加實作上的效率和系統實際在運作上的速度
格式為:
[E1(A1,A2,…)] 1< R>1 [E2(E1.A1.fk , A1,…)]

1< R>n / m< R>1 轉換
將基數代表1的一方,將此方關聯中的主要鍵嵌入代表多的一方的關聯,成為外來鍵
格式為:
[E1(A1,A2,…)] 1< R>n [E2(E1.A1.fk,A1,…)]
[E1(E2.A1.fk,A1,…)] m< R>1 [E2(A1,A2,…)]

m< R>n 轉換
需轉換成1:M 和 N:1的關係,中間會形成另一個關聯
格式為:
[E1(A1,A2,…)] 1< R>n [E3(E1.A1.fk,E2.A1.fk,A1,…)] m< R>1 [E2(A1,A2,…)]

…………………….

關聯式資料庫設計主要問題
方便查詢:常見的缺點為異動操作時會出現不同的異常現象
異動操作正常:關聯切割後,常見的缺點是查詢不方便
ps:
異動操作的異常為:新增異常,刪除異常,修改異常

解決方式
正規化:透過關聯切割解決不同異動的異常
合併理論:解決因關聯切割後造成的查詢不方便

…………………….

鍵值屬性種類
SK(super key,超級鍵)
一個或多個屬性若可做唯一識別的集合就是super key
ex:
學號+姓名+科系 ,使用3個屬性做SK
學號+姓名 ,使用2個屬性做SK
學號 ,使用1個屬性做SK
CK(candidate key,候選鍵)
唯一識別的最小集合
具有成為primary key資格的鍵
ex:
學號
身分證字號
PK(primary key,主鍵)
CK的其中一個
ex:學號
FK(forigen key,外來鍵)

該關聯(子關聯)中的屬性為另一個關聯(父關聯)的PK即為FK