數據庫範式解讀

就不列官方的描述了,以自己的理解來描述下,正規的解釋百度一下一大把。
一、第一範式
每一列都是第一屬性,這個沒啥說的,別一列裏面放兩個屬性就行。

二、第二範式
實際上就是一張表是組合主鍵(A和B)類型的,那不要把單獨和A或B相關的屬性加進這種表,常見的場景就是多對多(學生、老師)的關係表中,不要把學生和老師的非id屬性放進關係表。
ps:兩張表的關係表裏冗餘了兩張表裏的其餘屬性;
三、第三範式
我的理解就是不要把命名可以獨立成一張表的幾個屬性放進另外一張表,舉個小例子(訂單id,訂單編號,用戶id,用戶姓名,用戶頭像),用戶信息明顯可以獨立出去,這種情況就是不符合第三範式。不要一個表裏麪包含另外一個邏輯獨立的表就行。
ps:非主鍵屬性存在傳遞依賴。

四、BC範式
組合主鍵內部存在傳遞依賴。如:倉庫、管理員、商品,倉庫和管理員明明一條記錄就ok了,現在會根據商品的多少存在很多份。
ps:倉庫可以知道管理員,管理員可以找到倉庫,應該把這個關係獨立出來。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章