第三範式

第三範式

第三範式(Third Normal Form,3rd NF)就是指表中的所有數據元素不但要能惟一地被主關鍵字所標識,而且它們之間還必須相互獨立,不存在其他的函數關係。也就是說,對於一個滿足2nd NF 的數據結構來說,表中有可能存在某些數據元素依賴於其他非關鍵字數據元素的現象,必須消除。

簡介


第三範式
第三範式
關係模式R 中若不存在這樣的碼X、屬性組Y及非主屬性Z(Z (強制依賴)Y),使得X→Y,Y→Z,成立,Y→X不成立,則稱R ∈ 3NF。
若R∈3NF,則R的每一個非主屬性既不部分函數依賴於候選碼也不傳遞函數依賴於候選碼。
如果R∈3NF,則R也是2NF。
採用投影分解法將一個2NF的關係分解為多個3NF的關係,可以在一定程度上解決原2NF關係中存在的插入異常、刪除異常、數據冗餘度大、修改複雜等問題。
將一個2NF關係分解為多個3NF的關係后,並不能完全消除關係模式中的各種異常情況和數據冗餘。

詳細信息


例:如S1(SNO,SNAME,DNO,DNAME,LOCATION)各屬性分別代表學號,姓名,所在系,系名稱,系地址。
關鍵字SNO決定各個屬性。由於是單個關鍵字,沒有部分依賴的問題,肯定是2NF。但這關係肯定有大量的冗餘,有關學生所在的幾個屬性DNO,DNAME,LOCATION將重複存儲,插入,刪除和修改時也將產生類似以上例的情況。
原因:關係中存在傳遞依賴造成的。即SNO -> DNO。而DNO -> SNO卻不存在,DNO -> LOCATION, 因此關鍵字 SNO 對 LOCATION 函數決定是通過傳遞依賴 DNO -> LOCATION 實現的。也就是說,SNO不直接決定非主屬性LOCATION。
解決目地:每個關係模式中不能留有傳遞依賴。
解決方法:分為兩個關係 S(SNO,SNAME,DNO),D(DNO,DNAME,LOCATION)
注意:關係S中不能沒有外關鍵字DNO。否則兩個關係之間失去聯繫。
將第一範式,第二範式化為第三範式的步驟:
(1)求出R的最小函數依賴集Fmin
(2)找出不在Fmin中出現的屬性,並將這些屬性從R中去掉,構成一個關係模式
(3)若Fmin中有一個函數依賴涉及R的全部屬性,則R不能分解
(4)否則,若Fmin中有X->A,則分解應包含{XA};若有X->A1,X->A2....X->An均屬於Fmin,則分解應包含{XA1A2...An}