資料表A的一筆記錄,只能對應到資料表B的一筆記錄,而資料表B的一筆記錄,只能對應到資料表A中的一筆記錄。
例如 : 一個人對應一張有效身分證,一張身分證也只對應一個人
資料表A的一筆記錄,可以對應到資料表B的多筆記錄,但是資料表B的一筆記錄,只能對應到資料表A的一筆記錄。
例如 : 一個學生只能在一個班級,但一個班級可以包含多個學生
資料表A的一筆記錄,能夠對應到資料表B的多筆記錄,而資料表B的一筆記錄,能夠對應到資料表A的多筆記錄。
例如 : 選課系統中,一位學生可以選擇多門課程,每門課程可以被多位學生選擇
資料庫中實體之間的關聯是資料、數值之間的關聯,如何定義這個關聯會影響到之後操作資料的效率、準確性,於是有了正規化,正規化是透過修改資料以減少矛盾的一系列步驟,關聯模型定義了3種正規化。
客戶代號 | 客戶姓名 | 商品 | 價錢 | 數量 | 購買日期 | 訂單編號 |
---|---|---|---|---|---|---|
0001 | Rose | 水煮蛋、黑輪 | 10、15 | 2、2 | 9/20 | 114 |
0002 | Irene | 蒟蒻 | 10 | 3 | 9/20 | 115 |
0003 | Joy | 豬血糕、黑輪 | 20、15 | 4、2 | 9/21 | 116 |
0004 | Amy | 貢丸 | 20 | 5 | 9/21 | 117 |
0004 | Amy | 貢丸 | 20 | 5 | 9/22 | 118 |
《出現的問題》
△ 一個欄位出現多筆資料
△ 出現屬性意義相同的欄位
原則
1 一個欄位只能有一筆資料
2每列資料裡的同一屬性包含的數值數量需一樣多
3多個屬性的意義不能相同
客戶代號 | 客戶姓名 | 商品 | 價錢 | 數量 | 總金額 | 購買日期 | 訂單編號 |
---|---|---|---|---|---|---|---|
0001 | Rose | 水煮蛋 | 10 | 2 | 20 | 9/20 | 114 |
0001 | Rose | 黑輪 | 15 | 2 | 30 | 9/20 | 114 |
0002 | Irene | 蒟蒻 | 10 | 3 | 30 | 9/20 | 115 |
0003 | Joy | 豬血糕 | 20 | 4 | 80 | 9/21 | 116 |
0003 | Joy | 黑輪 | 15 | 2 | 30 | 9/21 | 116 |
0004 | Amy | 貢丸 | 20 | 5 | 100 | 9/21 | 117 |
0004 | Amy | 貢丸 | 20 | 5 | 100 | 9/22 | 118 |
《出現的問題》 | |||||||
△ 有太多重複資料 |
原則
1 消除部分相依
2滿足第一正規化
客戶代號 | 客戶姓名 | 數量 | 總金額 | 購買日期 | 訂單編號 |
---|---|---|---|---|---|
0001 | Rose | 2 | 20 | 9/20 | 114 |
0001 | Rose | 2 | 30 | 9/20 | 114 |
0002 | Irene | 3 | 30 | 9/20 | 115 |
0003 | Joy | 4 | 80 | 9/21 | 116 |
0003 | Joy | 2 | 30 | 9/21 | 116 |
0004 | Amy | 5 | 100 | 9/21 | 117 |
0004 | Amy | 5 | 100 | 9/22 | 118 |
商品 | 價錢 |
---|---|
水煮蛋 | 10 |
黑輪 | 15 |
蒟蒻 | 10 |
豬血糕 | 20 |
貢丸 | 20 |
原則
1消除遞移相依
2滿足第二正規化
訂單資料表
編號 | 購買日期 | 訂單編號 | 客戶代號 | 商品 | 數量 | 總金額 |
---|---|---|---|---|---|---|
1 | 9/20 | 114 | 0001 | 水煮蛋 | 2 | 20 |
2 | 9/20 | 114 | 0001 | 黑輪 | 2 | 30 |
3 | 9/20 | 115 | 0002 | 蒟蒻 | 3 | 30 |
4 | 9/21 | 116 | 0003 | 豬血糕 | 4 | 80 |
5 | 9/21 | 116 | 0003 | 黑輪 | 2 | 30 |
6 | 9/21 | 117 | 0004 | 貢丸 | 5 | 100 |
7 | 9/22 | 118 | 0004 | 貢丸 | 5 | 100 |
客戶資料表
客戶代號 | 客戶姓名 |
---|---|
0001 | Rose |
0002 | Irene |
0003 | Joy |
0004 | Amy |
商品資料表
商品 | 價錢 |
---|---|
水煮蛋 | 10 |
黑輪 | 15 |
蒟蒻 | 10 |
豬血糕 | 20 |
貢丸 | 20 |