MySQL系列數(shù)據(jù)庫設計三范式教程示例
一、數(shù)據(jù)庫設計三范式相關知識說明
1、什么是設計范式?
設計表的依據(jù),按照這三個范式設計出來的表,不會出現(xiàn)數(shù)據(jù)的冗余。
2、為什么要學習數(shù)據(jù)庫的三個范式?
數(shù)據(jù)庫的設計范式是數(shù)據(jù)庫設計所需要滿足的規(guī)范,滿足這些規(guī)范的數(shù)據(jù)庫是簡潔的、結構明晰的,同時,不會發(fā)生插入(insert)、刪除(delete)和更新(update)操作異常。反之則是亂七八糟,不僅給數(shù)據(jù)庫的編程人員制造麻煩,而且面目可憎,可能存儲了大量不需要的冗余信息。
我們數(shù)據(jù)分析師雖然不需要自己去設計數(shù)據(jù)庫,但是了解數(shù)據(jù)庫的三個范式,對于我們后面進行表的理解能夠有一定的幫助。
3、三范式都有哪些?
1)第一范式:任何一張表都應該有主鍵,并且每一個字段原子性不可再分。
2)第二范式:建立在第一范式基礎上的,另外要求所有非主鍵字段完全依賴主鍵,不能 產(chǎn)生部分依賴。
解決辦法:多對多,三張表,關系表兩個外鍵。
3)第三范式:建立在第二范式的基礎之上,所有非主鍵字段直接依賴主鍵,不能產(chǎn)生傳遞依賴。
解決辦法:一對多,兩張表,多的表加外鍵。
注意:牢記上述藍色部分的兩句話。
提醒:在實際的開發(fā)中,以滿足客戶的需求為主,有的時候會拿冗余換執(zhí)行速度。
二、數(shù)據(jù)庫表的經(jīng)典設計方案
一對一怎么設計?
第一種方案:主鍵共享
第二種方案:外鍵唯一
注意:外鍵唯一這種情況,有點像上面講述的多對多的情形,當外鍵字段加了一個
unique限制條件后,就變成一對一了。
以上就是MySQL系列數(shù)據(jù)庫設計三范式教程示例的詳細內(nèi)容,更多關于MySQL數(shù)據(jù)庫設計三范式的資料請關注腳本之家其它相關文章!
相關文章
Django創(chuàng)建項目+連通mysql的操作方法
這篇文章主要介紹了Django創(chuàng)建項目+連通mysql的操作方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03percona-toolkit之pt-kill 殺掉mysql查詢或連接的方法
本文主要描述了percona-toolkit中pt-kill的 使用實例 ,及 一些重要參數(shù)的介紹,需要的朋友可以參考下2016-04-04MySQL存儲引擎 InnoDB與MyISAM的區(qū)別
InnoDB和MyISAM是許多人在使用MySQL時最常用的兩個表類型,這兩個表類型各有優(yōu)劣,視具體應用而定。2014-03-03