MYSQL-數(shù)據(jù)庫(kù)設(shè)計(jì)筆記【3】

這次說(shuō)下數(shù)據(jù)庫(kù)設(shè)計(jì)的三大范式和BC范式:

第一范式:就是原子性,字段不可再分割;【分割到不能分割位置。比如聯(lián)系人】

第一范式最形象對(duì)比

第二范式:就是完全依賴,沒(méi)有部分依賴【非主依賴主鍵的一部分】

【前提要滿足第一范式】

第二范式參照

選課表中可以把(學(xué)生,課程)看作聯(lián)合主鍵。

通過(guò)(學(xué)生,課程)可以選出 教師,教師職稱,教室,上課時(shí)間,所以可以把(學(xué)生,課程)看作聯(lián)合主鍵。

但是,教材并不完全依賴于(學(xué)生,課程),只拿出課程就可以確定教材,因?yàn)橐粋€(gè)課程,一定指定了某個(gè)教材。這就叫不完全依賴,或者部分依賴。這就是不滿足第二范式

所以又獨(dú)立出了課程表。第二范式可以說(shuō)是消除部分依賴。

第三范式:就是沒(méi)有傳遞依賴。【非主之間存在的依賴關(guān)系】

前提要滿足第二范式

第三范式參照

在第二范式的修改中,一個(gè)教師能確定一個(gè)教師職稱?!?b>這里教師和教師職稱都是非主】這樣,教師依賴于(學(xué)生,課程),而教師職稱又依賴于教師,這叫傳遞依賴。第三范式就是要消除傳遞依賴。

第三范式修改后,這樣,新教師的職稱在沒(méi)被選課的時(shí)候也有地方存了,沒(méi)人選這個(gè)教師的課的時(shí)候教師的職稱也不至于被刪除,修改教師職稱時(shí)只修改教師表就可以了。

BC范式:就是解決主屬性的?!?主依賴部分非主

BC范式參照

這個(gè)表的設(shè)計(jì)滿足三范式,有主鍵,不存在主鍵的部分依賴,不存在非主鍵的傳遞依賴。但是這里存在另一個(gè)依賴關(guān)系,“專業(yè)”依賴于“導(dǎo)師”,也就是說(shuō)每個(gè)導(dǎo)師只做一個(gè)專業(yè)方面的導(dǎo)師,只要知道了是哪個(gè)導(dǎo)師,我們自然就知道是哪個(gè)專業(yè)的了。

所以說(shuō)學(xué)生導(dǎo)師表的部分主鍵依賴于非主鍵部分。就把這個(gè)表拆分了。分出了導(dǎo)師表。

總結(jié):

第一、二、三范式都是解決非主鍵之間的依賴。

BC范式是解決主鍵依賴的關(guān)系。

三大范式只是一般設(shè)計(jì)數(shù)據(jù)庫(kù)的基本理念,可以建立冗余較小、結(jié)構(gòu)合理的數(shù)據(jù)庫(kù)。如果有特殊情況,當(dāng)然要特殊對(duì)待,數(shù)據(jù)庫(kù)設(shè)計(jì)最重要的是看需求跟性能,需求>性能>表結(jié)構(gòu)。所以不能一味的去追求范式建立數(shù)據(jù)庫(kù)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容