范式
范式就是數(shù)據(jù)庫的構(gòu)建規(guī)則,目前關(guān)系數(shù)據(jù)庫有六種范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)、第五范式(5NF)和第六范式(6NF)。滿足最低要求的范式是第一范式(1NF)。在第一范式的基礎(chǔ)上進(jìn)一步滿足更多要求的稱為第二范式(2NF),其余范式以次類推。一般說來,數(shù)據(jù)庫只需滿足第三范式(3NF)就行了。
1NF(第一范式)
特征:無重復(fù)列
官方解釋:在關(guān)系模式R中的每一個(gè)具體關(guān)系r中,如果每個(gè)屬性值 都是不可再分的最小數(shù)據(jù)單位,則稱R是第一范式的關(guān)系
目的:消除實(shí)體中列中的重復(fù)值或?qū)嶓w的重復(fù)屬性
例:如職工號,姓名,電話號碼組成一個(gè)表(一個(gè)人可能有一個(gè)辦公室電話 和一個(gè)家里電話號碼) 規(guī)范成為1NF有三種方法:
一是重復(fù)存儲職工號和姓名。這樣,關(guān)鍵字只能是電話號碼。
二是職工號為關(guān)鍵字,電話號碼分為單位電話和住宅電話兩個(gè)屬性
三是職工號為關(guān)鍵字,但強(qiáng)制每條記錄只能有一個(gè)電話號碼。
以上三個(gè)方法,第一種方法最不可取,按實(shí)際情況選取后兩種情況。
1NF(第一范式)
特征:無重復(fù)列
官方解釋:在關(guān)系模式R中的每一個(gè)具體關(guān)系r中,如果每個(gè)屬性值 都是不可再分的最小數(shù)據(jù)單位,則稱R是第一范式的關(guān)系
目的:消除實(shí)體中列中的重復(fù)值或?qū)嶓w的重復(fù)屬性
例:如職工號,姓名,電話號碼組成一個(gè)表(一個(gè)人可能有一個(gè)辦公室電話 和一個(gè)家里電話號碼) 規(guī)范成為1NF有三種方法:
一是重復(fù)存儲職工號和姓名。這樣,關(guān)鍵字只能是電話號碼。
二是職工號為關(guān)鍵字,電話號碼分為單位電話和住宅電話兩個(gè)屬性
三是職工號為關(guān)鍵字,但強(qiáng)制每條記錄只能有一個(gè)電話號碼。
以上三個(gè)方法,第一種方法最不可取,按實(shí)際情況選取后兩種情況。
3NF(第三范式)
特征:傳遞依賴
官方解釋:如果關(guān)系模式R(U,F(xiàn))中的所有非主屬性對任何候選關(guān)鍵字都不存在傳遞依賴,則稱關(guān)系R是屬于第三范式的。
目的:消除傳遞依賴文章來源:http://www.zghlxwxcb.cn/news/detail-436031.html
例:如S1(SNO,SNAME,DNO,DNAME,LOCATION) 各屬性分別代表學(xué)號,
姓名,所在系,系名稱,系地址。
關(guān)鍵字SNO決定各個(gè)屬性。由于是單個(gè)關(guān)鍵字,沒有部分依賴的問題,肯定是2NF。但這關(guān)系肯定有大量的冗余,有關(guān)學(xué)生所在的幾個(gè)屬性DNO,DNAME,LOCATION將重復(fù)存儲,插入,刪除和修改時(shí)也將產(chǎn)生類似以上例的情況。
原因
關(guān)系中存在傳遞依賴造成的。即SNO -> DNO。 而DNO -> SNO卻不存在,DNO -> LOCATION, 因此關(guān)鍵字 SNO 對 LOCATION 函數(shù)決定是通過傳遞依賴 SNO -> LOCATION 實(shí)現(xiàn)的。也就是說,SNO不直接決定非主屬性LOCATION。
解決目地
每個(gè)關(guān)系模式中不能留有傳遞依賴。
解決方法
分為兩個(gè)關(guān)系 S(SNO,SNAME,DNO),D(DNO,DNAME,LOCATION)
注意
關(guān)系S中不能沒有外關(guān)鍵字DNO。否則兩個(gè)關(guān)系之間失去聯(lián)系。文章來源地址http://www.zghlxwxcb.cn/news/detail-436031.html
到了這里,關(guān)于數(shù)據(jù)庫設(shè)計(jì)-范式的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!