數據庫范式
關鍵詞: 數據庫 ?? 規范化 ?? ??????????????????????????????????????(一周前看的數據庫范式,今天回顧,不知效果怎樣。)
最基本的數據庫范式有三個,第一范式(1NF),第二范式(2NF)和第三范式(3NF),分別定義如下,
1NF:如果關系模式R中的每個屬性都是單值的,則稱R∈1NF。
2NF:如果關系模式R∈1NF,且所有的非主屬性完全函數依賴于(每一個候選)碼,則稱R∈2NF。
3NF:如果關系模式R∈2NF,且不存在非主屬性傳遞函數依賴于碼的情況,則稱R∈3NF。
其中一些輔助概念定義如下,
函數依賴:
R(U)是屬性集U上的關系模式。X,Y都是U的子集。如果對于R(U)任何一個可能的關系r,不可能存在r的兩個元組,它們在X上的值相等,而在Y上的值不相等,則稱X函數確定Y,Y函數依賴X。
這是一個完全形式化的定義,它的意思是關系模式在某個屬性組上的值決定在另一個屬性組上的值。
完全函數依賴:
如果X函數確定Y,但是對X的任何真子集X'都沒有X'函數確定Y,則稱Y完全函數依賴X。
完全函數依賴就是要求X在函數確定Y時,不能包含多余的屬性。
傳遞函數依賴:
如果X函數確定Y,Y不能函數確定X,Y函數確定Z,則稱Z對X傳遞函數依賴。
候選碼,主碼,主屬性,非主屬性:
對關系模式R(U),K是U的子集,如果K完全函數確定U,則稱K為R(U)的一個候選碼。在候選碼中選定一個做為主碼。包含在任何一個候選碼中的屬性稱為主屬性,不包含在任何一個候選碼中的屬性稱為非主屬性。
從候選碼的定義可以看出,候選碼是決定所有屬性的,并且決定時不包含多余屬性。不過一個關系模式總是有候選碼存在。
|----------------------------------------------------------------------------------------|
版權聲明 版權所有 @zhyiwww
引用請注明來源 http://www.aygfsteel.com/zhyiwww
|----------------------------------------------------------------------------------------|