關聯式資料庫的理論基礎

Download Report

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