全部課程
數(shù)據(jù)庫(kù)范式第一第二第三范式的區(qū)別
發(fā)布時(shí)間: 2023-03-14
為了創(chuàng)建較少的冗余和結(jié)構(gòu)良好的數(shù)據(jù)庫(kù),設(shè)計(jì)數(shù)據(jù)庫(kù)風(fēng)格必須遵循某些規(guī)則。在關(guān)系型數(shù)據(jù)庫(kù)中,這種規(guī)則被稱(chēng)為:范式。一個(gè)范式是對(duì)某種設(shè)計(jì)要求的總結(jié)。
在實(shí)際開(kāi)發(fā)中,最常見(jiàn)的設(shè)計(jì)范式有三種:三大范式
1. 第一種范式(確保每一列保持原子性):所有字段值都是不可分解的原子值
2. 第二種范式(確保表中的每一列都與主鍵有關(guān)):一個(gè)表只能保存一種數(shù)據(jù),不能將各種數(shù)據(jù)存儲(chǔ)在同一個(gè)數(shù)據(jù)庫(kù)表中
3. 第三種范式:確保每一列都與主鍵列直接相關(guān),而不是間接相關(guān)
1. 第一范式
第一個(gè)范式是最基本的范式。如果一個(gè)數(shù)據(jù)庫(kù)表中的所有字段值都是不可分解的原子值,那么這個(gè)數(shù)據(jù)庫(kù)表就滿(mǎn)足第一范式。
如果系統(tǒng)經(jīng)常訪(fǎng)問(wèn) "地址 "屬性中的 "城市 "部分,那么 "地址 "屬性必須重新劃分為多個(gè)部分,如省、城市和詳細(xì)地址 這使得操作地址的一部分非常方便。
2.第二個(gè)范式比第一個(gè)范式更進(jìn)一步。
也就是說(shuō),在一個(gè)數(shù)據(jù)庫(kù)表中,一個(gè)表只能存儲(chǔ)一種數(shù)據(jù),而不能在同一個(gè)數(shù)據(jù)庫(kù)表中存儲(chǔ)多種數(shù)據(jù)。
例如,設(shè)計(jì)一個(gè)訂單信息表,因?yàn)橛唵沃锌赡苡卸鄠€(gè)物品,所以應(yīng)該用訂單號(hào)和物品號(hào)作為數(shù)據(jù)庫(kù)表的聯(lián)合主鍵。
3. 第三范式
第三范式需要確保數(shù)據(jù)表中的每一列數(shù)據(jù)都與主鍵直接相關(guān),而不是間接相關(guān)。
例如,在設(shè)計(jì)一個(gè)訂單數(shù)據(jù)表時(shí),客戶(hù)編號(hào)可以作為一個(gè)外鍵,與訂單表建立相應(yīng)的關(guān)系。不可能在訂單表中添加客戶(hù)的其他信息的字段(如姓名、隸屬關(guān)系等)。
上一篇: SWG安全Web網(wǎng)關(guān)是什么
下一篇: docker垃圾清理方法