Transcript 關聯式資料庫的理論基礎
認識關聯式資料庫系統的理論基礎。
了解關聯式資料庫的標準化格式。
了解標準化格式與資料庫設計之間的關係。
標準化格式(normal forms)是什麼?
關聯式的理論(relational theory)與資料庫的設計
有什麼關係 ?
這是一個腦力激盪的園地!
關聯式表格(Relational Table)
又稱為關聯表(Relation)
是一組相關的資料所形成的集合
透過關聯式運算(Relational Operation)進行
操作
聯集(Union)
差集(Set Difference)
內積(Cartesian Product)
選行(Projection)(投影)
選列(Selection)
連結(Join)
欄位數值必須是單純的(atomic),無法再分割。
欄位在表格中要有唯一的名稱。
同一欄位的數值要有相同的類型(Type)與寬
度(Width)。
欄位在表格中的次序沒有特定的意義。
記錄在表格中的次序沒有特定的意義。
不可以有重複的記錄
表格是元素的集合
集合裡的元素不能重複,也沒有順序
資料重複(Data Redundancy)
浪費空間
造成各種異常現象
插入的異常(Insertion Anomaly)
刪除的異常(Deletion Anomaly)
修改的異常(Update Anomaly)
訂單(訂單編號, 訂單日期, 客戶名稱, 客戶地址,
項目名稱, 數量, 單價)
『金冠』改名『欣冠』?
研發成功新產品『特2號炸油』?
『長興』倒店,刪除客戶資料?
訂單編號
訂單日期 客戶名稱
客戶地址
項目名稱
數量
單價
1
02/11
金冠
中山路3號
特1號炸油
10
5
2
02/11
長興
館前路10號
特3號黑豆沙
20
100
3
02/12
金冠
中山路3號
3號麵包粉
20
6
4
02/13
長興
館前路10號
3號麵包粉
100
6
又稱為『功能相依性』
A→B 表示『一旦A確定了,必然B也確定了』
遞移性(Transitive)
若 A→B 且 B→C,則 A→C
A
B
C
D
E
001
03/10/85
吐司
30
45
002
02/11/85
餅乾
15
21
003
04/01/85
牛奶
50
45
004
03/10/85
糖果
20
36
005
02/10/85
牛奶
50
22
006
05/09/85
吐司
30
40
表格中有C→D的欄位相依
關係,因為只要知道欄位
C的值,就能決定欄位D的
值。只要C是吐司,D必定
是30,若C是牛奶,則D必
是50;我們可以把D看成
是物品C的價格。
欄位A與欄位B若有存在欄位相依關係,而此
關係為A→B時,則任何記錄的欄位A的值將
只有唯一的欄位B的值與其對應,此關係也
可表示成「A determines B」。
{A,B} C?
聯集(Union)
差集(Set difference)
內積(Cartesian product)
選行(Projection)
選列(Selection)
選列(橫)
選行(直欄)
Natural Join
內積之後,取兩邊共同欄位值相等者
Codd在西元1972年提出
1 NF
2 NF
3 NF
BCNF(Boyce-Codd normal form)是一種條件更
嚴格的3 NF
後來出現的4 NF與5 NF是以
multivalued dependency與join
dependency的觀念為基礎而發展出
來的。
Normalization(正規化、標準化)
所有的欄位都Atomic
不可以只和複合主鍵中的部份欄位相依,
必須相依於整個主鍵
不是主鍵的欄位之間不可存在相依性
所有決定性屬性都是候選鍵
1NF
2NF
訂單資料表格 : X
貨品資料表格 : Y
訂單號碼
顧客編號
項目編號
數量
項目編號
價格
1
2
3
010
010
020
2
2
3
10
5
5
2
3
4
3
1
2
3NF