一、數據庫設計三範式相關知識說明
1、什麼是設計範式?
設計表的依據
,按照這三個範式設計出來的表,不會出現數據的冗餘。
2、爲什麼要學習數據庫的三個範式?
數據庫的設計範式
是數據庫設計所需要滿足的規範,滿足這些規範的數據庫是簡潔的
、結構明晰的
,同時,不會發生插入(insert)、刪除(delete)和更新(update)操作異常。反之則是亂七八糟,不僅給數據庫的編程人員製造麻煩,而且面目可憎,可能存儲了大量不需要的冗餘信息。
我們數據分析師雖然不需要自己去設計數據庫,但是瞭解數據庫的三個範式,對於我們後面進行表的理解能夠有一定的幫助。
2、三範式都有哪些?
1)第一範式:任何一張表都應該有主鍵,並且每一個字段原子性不可再分。
2)第二範式:建立在第一範式基礎上的,另外要求所有非主鍵字段完全依賴主鍵,不能 產生部分依賴。
解決辦法:多對多,三張表,關係表兩個外鍵。
3)第三範式:建立在第二範式的基礎之上,所有非主鍵字段直接依賴主鍵,不能產生傳遞依賴。
解決辦法:一對多,兩張表,多的表加外鍵。
注意:牢記上述藍色部分的兩句話。
提醒:在實際的開發中,以滿足客戶的需求爲主,有的時候會拿冗餘換執行速度。
二、數據庫表的經典設計方案
1、一對一怎麼設計?
第一種方案:主鍵共享
第二種方案:外鍵唯一
注意:外鍵唯一這種情況,有點像上面講述的多對多的情形,當外鍵字段加了一個
unique限制條件後,就變成一對一了。
關注微信公衆號『數據分析與統計學之美』,後臺回覆"林丹" 獲取本文完整代碼和其他素材。