MySQL系列數據庫設計三范式教程示例
一、數據庫設計三范式相關知識說明
1、什麼是設計范式?
設計表的依據,按照這三個范式設計出來的表,不會出現數據的冗餘。
2、為什麼要學習數據庫的三個范式?
數據庫的設計范式是數據庫設計所需要滿足的規范,滿足這些規范的數據庫是簡潔的、結構明晰的,同時,不會發生插入(insert)、刪除(delete)和更新(update)操作異常。反之則是亂七八糟,不僅給數據庫的編程人員制造麻煩,而且面目可憎,可能存儲瞭大量不需要的冗餘信息。
我們數據分析師雖然不需要自己去設計數據庫,但是瞭解數據庫的三個范式,對於我們後面進行表的理解能夠有一定的幫助。
3、三范式都有哪些?
1)第一范式:任何一張表都應該有主鍵,並且每一個字段原子性不可再分。
2)第二范式:建立在第一范式基礎上的,另外要求所有非主鍵字段完全依賴主鍵,不能 產生部分依賴。
解決辦法:多對多,三張表,關系表兩個外鍵。
3)第三范式:建立在第二范式的基礎之上,所有非主鍵字段直接依賴主鍵,不能產生傳遞依賴。
解決辦法:一對多,兩張表,多的表加外鍵。
註意:牢記上述藍色部分的兩句話。
提醒:在實際的開發中,以滿足客戶的需求為主,有的時候會拿冗餘換執行速度。
二、數據庫表的經典設計方案
一對一怎麼設計?
第一種方案:主鍵共享
第二種方案:外鍵唯一
註意:外鍵唯一這種情況,有點像上面講述的多對多的情形,當外鍵字段加瞭一個
unique限制條件後,就變成一對一瞭。
以上就是MySQL系列數據庫設計三范式教程示例的詳細內容,更多關於MySQL數據庫設計三范式的資料請關註WalkonNet其它相關文章!
推薦閱讀:
- MySQL中增刪改查操作與常見陷阱詳解
- mysql ON DUPLICATE KEY UPDATE重復插入時更新方式
- sql查詢語句教程之插入、更新和刪除數據實例
- 關於mysql 8.x 中insert ignore的性能問題
- MySQL數據管理操作示例講解