MySQL系列數(shù)據(jù)庫(kù)設(shè)計(jì)三范式教程示例
一、數(shù)據(jù)庫(kù)設(shè)計(jì)三范式相關(guān)知識(shí)說(shuō)明
1、什么是設(shè)計(jì)范式?
設(shè)計(jì)表的依據(jù),按照這三個(gè)范式設(shè)計(jì)出來(lái)的表,不會(huì)出現(xiàn)數(shù)據(jù)的冗余。
2、為什么要學(xué)習(xí)數(shù)據(jù)庫(kù)的三個(gè)范式?
數(shù)據(jù)庫(kù)的設(shè)計(jì)范式是數(shù)據(jù)庫(kù)設(shè)計(jì)所需要滿足的規(guī)范,滿足這些規(guī)范的數(shù)據(jù)庫(kù)是簡(jiǎn)潔的、結(jié)構(gòu)明晰的,同時(shí),不會(huì)發(fā)生插入(insert)、刪除(delete)和更新(update)操作異常。反之則是亂七八糟,不僅給數(shù)據(jù)庫(kù)的編程人員制造麻煩,而且面目可憎,可能存儲(chǔ)了大量不需要的冗余信息。
我們數(shù)據(jù)分析師雖然不需要自己去設(shè)計(jì)數(shù)據(jù)庫(kù),但是了解數(shù)據(jù)庫(kù)的三個(gè)范式,對(duì)于我們后面進(jìn)行表的理解能夠有一定的幫助。
3、三范式都有哪些?
1)第一范式:任何一張表都應(yīng)該有主鍵,并且每一個(gè)字段原子性不可再分。
2)第二范式:建立在第一范式基礎(chǔ)上的,另外要求所有非主鍵字段完全依賴(lài)主鍵,不能 產(chǎn)生部分依賴(lài)。
解決辦法:多對(duì)多,三張表,關(guān)系表兩個(gè)外鍵。
3)第三范式:建立在第二范式的基礎(chǔ)之上,所有非主鍵字段直接依賴(lài)主鍵,不能產(chǎn)生傳遞依賴(lài)。
解決辦法:一對(duì)多,兩張表,多的表加外鍵。
注意:牢記上述藍(lán)色部分的兩句話。
提醒:在實(shí)際的開(kāi)發(fā)中,以滿足客戶(hù)的需求為主,有的時(shí)候會(huì)拿冗余換執(zhí)行速度。
二、數(shù)據(jù)庫(kù)表的經(jīng)典設(shè)計(jì)方案
一對(duì)一怎么設(shè)計(jì)?
第一種方案:主鍵共享
第二種方案:外鍵唯一
注意:外鍵唯一這種情況,有點(diǎn)像上面講述的多對(duì)多的情形,當(dāng)外鍵字段加了一個(gè)
unique限制條件后,就變成一對(duì)一了。
以上就是MySQL系列數(shù)據(jù)庫(kù)設(shè)計(jì)三范式教程示例的詳細(xì)內(nèi)容,更多關(guān)于MySQL數(shù)據(jù)庫(kù)設(shè)計(jì)三范式的資料請(qǐng)關(guān)注本站其它相關(guān)文章!
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。