MySQL系列數據庫設計三范式教程示例

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

1、什麼是設計范式?

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

2、為什麼要學習數據庫的三個范式?

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

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

3、三范式都有哪些?

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

在這裡插入圖片描述

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

在這裡插入圖片描述

解決辦法:多對多,三張表,關系表兩個外鍵。

在這裡插入圖片描述

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

在這裡插入圖片描述

解決辦法:一對多,兩張表,多的表加外鍵。

在這裡插入圖片描述

註意:牢記上述藍色部分的兩句話。

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

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

一對一怎麼設計?

第一種方案:主鍵共享

在這裡插入圖片描述

第二種方案:外鍵唯一

在這裡插入圖片描述

註意:外鍵唯一這種情況,有點像上面講述的多對多的情形,當外鍵字段加瞭一個
unique限制條件後,就變成一對一瞭。

以上就是MySQL系列數據庫設計三范式教程示例的詳細內容,更多關於MySQL數據庫設計三范式的資料請關註WalkonNet其它相關文章!

推薦閱讀: