热门问题
时间线
聊天
视角
第三規範化
要求所有非主鍵都只和候選鍵有關聯的資料庫正規化形式 来自维基百科,自由的百科全书
Remove ads
第三範式(3NF)是資料庫規範化所使用的正規形式,要求所有非主鍵屬性都只和候選鍵有相關性,也就是說非主鍵屬性之間應該是獨立無關的。
![]() | 此條目翻譯自英語維基百科,需要相關領域的編者協助校對翻譯。 |
如果再對第三範式做進一步加強就成了BC範式,強調的重點在於「資料間的關係是奠基在主鍵上、以整個主鍵為考量、而且除了主鍵之外不考慮其他因素」。
正規定義
令:
- 關係R(表)滿足第二範式 (2NF);
- R的每個非鍵屬性是R的每個候選鍵的非傳遞依賴。
Carlo Zaniolo於1982年給出的一個等價定義為[2][3]:
如果對於 這種型式的函數依賴而言,下列敘述任一為真的話,則可以稱 符合第三範式:
任何一個具有部份依賴性或是轉移依賴性的關係都違反了第三範式。
Remove ads
範例
以下面這個定義機械元件的關係為例:
本例中製造商地址很明顯地不該被列在這個關係裏面,因為和元件本身比起來,製造商地址應該和製造商比較有關係;正確的做法應該是把獨立出新的資料表:
然後把原本的資料表改成這樣:
先前那個資料表的問題在於每提到一次製造商名稱就要多存一次它的地址,而這就不符合第三範式的原則。
下面提供了另一個例子:
在本例中,非主鍵字段完全依賴於主鍵訂單編號,也就是說唯一的訂單編號能導出唯一非主鍵字段值,符合第二範式。第三範式要求非主鍵字段之間不能有依賴關係,顯然本例中小計依賴於非主鍵字段「單價」和「數量」,不符合第三範式。小計不應該放在這個資料表裏面,只要把單價乘上數量就可以得到小計了;如果想要符合第三範式的話,就把小計拿掉 (不過在做查詢時, SELECT Order.Total FROM Order 需改成 SELECT UnitPrice * Quantity FROM Order )。
Remove ads
參考文獻
- Ramakrishnan, Raghu and Johannes Gehrke. "Schema Refinement and Normal Forms." Database Management Systems, Third Edition. ISBN 0-07-246563-8. McGraw Hill. August 14, 2002.
- Gupta, Gopal. "Third Normal Form (3NF)." Single Valued Normalization. 1996.
- Litt's Tips: Normalization (頁面存檔備份,存於互聯網檔案館)
- Rules Of Data Normalization
- Date, C. J. (1999), An Introduction to Database Systems (8th ed.). Addison-Wesley Longman. ISBN 0-321-19784-4.
- Kent, W. (1983) A Simple Guide to Five Normal Forms in Relational Database Theory (頁面存檔備份,存於互聯網檔案館), Communications of the ACM, vol. 26, pp. 120–125
- Date, C.J., & Darwen, H., & Pascal, F. Database Debunkings (頁面存檔備份,存於互聯網檔案館)
外部連結
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads