帶你學MySQL系列 | 黃同學帶你瞭解“數據庫設計三範式”

一、數據庫設計三範式相關知識說明

1、什麼是設計範式?

設計表的依據,按照這三個範式設計出來的表,不會出現數據的冗餘。

2、爲什麼要學習數據庫的三個範式?

數據庫的設計範式是數據庫設計所需要滿足的規範,滿足這些規範的數據庫是簡潔的結構明晰的,同時,不會發生插入(insert)、刪除(delete)和更新(update)操作異常。反之則是亂七八糟,不僅給數據庫的編程人員製造麻煩,而且面目可憎,可能存儲了大量不需要的冗餘信息。

我們數據分析師雖然不需要自己去設計數據庫,但是瞭解數據庫的三個範式,對於我們後面進行表的理解能夠有一定的幫助。

2、三範式都有哪些?

1)第一範式:任何一張表都應該有主鍵,並且每一個字段原子性不可再分。

在這裏插入圖片描述

2)第二範式:建立在第一範式基礎上的,另外要求所有非主鍵字段完全依賴主鍵,不能 產生部分依賴。

在這裏插入圖片描述
解決辦法:多對多,三張表,關係表兩個外鍵。
在這裏插入圖片描述

3)第三範式:建立在第二範式的基礎之上,所有非主鍵字段直接依賴主鍵,不能產生傳遞依賴。

在這裏插入圖片描述
解決辦法:一對多,兩張表,多的表加外鍵。
在這裏插入圖片描述
注意:牢記上述藍色部分的兩句話。

提醒:在實際的開發中,以滿足客戶的需求爲主,有的時候會拿冗餘換執行速度。

二、數據庫表的經典設計方案

1、一對一怎麼設計?

第一種方案:主鍵共享
在這裏插入圖片描述
第二種方案:外鍵唯一
在這裏插入圖片描述
注意:外鍵唯一這種情況,有點像上面講述的多對多的情形,當外鍵字段加了一個
unique限制條件後,就變成一對一了。

  

   

關注微信公衆號『數據分析與統計學之美』,後臺回覆"林丹" 獲取本文完整代碼和其他素材。

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