mysql以及三大范式

范式:對(duì)表結(jié)構(gòu)的要求!

第一范式(1NF,normal format):字段不能再分。這是字段的原子性。例如:字段“學(xué)期時(shí)間”:2014-9-1,2015-1-15。 這個(gè)字段“學(xué)期時(shí)間”可以再分為“學(xué)期開始時(shí)間”,2014-9-1;和“學(xué)期結(jié)束時(shí)間”,2015-1-15。

第二范式(2NF):范式是遞增的,要滿足第二范式,必須滿足第一范式!2NF要求字段對(duì)主鍵沒有部分依賴!

先說部分,有部分說明主鍵是復(fù)合主鍵。來個(gè)徹底的解決辦法就是,讓主鍵不是復(fù)合主鍵,即讓主鍵是一個(gè)字段!

再說依賴,依賴是通過一個(gè)字段能確定另一字段,我們就說被確定的字段對(duì)確定它的字段有依賴。比如:知道了“名字”字段,便能確定“性別”字段。我們就說“性別”字段對(duì)“名字”字段有依賴。

最后連起來解釋部分依賴,記錄中某些字段的值只是被復(fù)合主鍵中的某個(gè)值確定了,我們就說字段對(duì)主鍵有部分依賴。

做法:只要給表一個(gè)“id”字段,并設(shè)置自動(dòng)增長,便可。其實(shí)就是取消掉復(fù)合主鍵。通過另一個(gè)單一字段的主鍵來代替。一句話,沒有復(fù)合主鍵,就沒有部分依賴。

寫法為:id int unsigned primary key auto_inrement

第三范式(3NF):滿足第二范式,并取消傳遞依賴。要滿足第三范式,不能在一張表上操作了,需要把原表拆分成幾個(gè)表。當(dāng)然如果不用拆分了,說明已經(jīng)滿足了。

A->B->C C依賴于B,B依賴于A。這就是傳遞依賴。

做法:每個(gè)實(shí)體建立一個(gè)表,為每個(gè)表建立一個(gè)主鍵id。

總結(jié): 應(yīng)該說,一條記錄里面任何兩個(gè)數(shù)據(jù)之間都不能有依賴,除了和主鍵。主鍵和任何一個(gè)數(shù)據(jù)之間都存在依賴。

最后編輯于
?著作權(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)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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