如何確定候選鍵
判斷3nf需要注意,例如:有f=
如果y屬於x,則y平凡依賴於x,則z直接依賴於x,滿足3nf;
如果y不屬於x,則y非平凡依賴於x,則z傳遞依賴於x,不滿足3nf.
(1).r(x,y,z) f=(xy→z)
r的候選碼為xy
非主屬性:z
不存在非主屬性對候選鍵部分函式依賴
不存在非主屬性傳遞依賴於候選鍵
函式依賴的左邊xy為候選鍵
因此此正規化達到bcnf
(2).r(x,y,z) f=(y→z,xz→y)
r的候選碼為xy和xz.
非主屬性:無 因為非主屬性的不存在所以至少達到3nf
第乙個函式依賴y→z的左邊y不是候選鍵
因此此正規化達到3nf
(3).r(x,y,z) f=(y→z,y→x,x→yz)
r的候選碼為x和y.
非主屬性:z
不存在非主屬性對候選鍵部分函式依賴
由於x→yz 所以存在y→x,x→z 但是該正規化卻是bcnf,因為判斷3nf有兩個條件,y→x,x→z滿足第乙個條件,但不滿足第二個條件:x不能推出y.
然後三個函式依賴的左邊都是候選鍵
因此此正規化達到bcnf
(4).r(x,y,z) f=(x→y,x→z)
r的候選碼為x.
非主屬性:y、z
兩個函式依賴的左邊都是候選鍵
因此此正規化達到bcnf
(5).r(s,t,j) f=
r的候選碼為sj和st
非主屬性:無 因為非主屬性的不存在所以至少達到3nf
由t→j左邊t不是候選碼
因此此正規化達到3nf
(6).r(a,b,c,d) f=
r的候選碼為b
非主屬性:a,c,d
候選碼為單屬性,因此不存在非主屬性對候選鍵部分函式依賴
由b→c,c→d且c不能推出b可知此正規化不滿足3nf
因此此正規化達到2nf
資料庫 正規化判斷
1.1 第一正規化 1nf 無重複的列 所謂第一正規化 1nf 是指資料庫表的每一列都是不可分割的基本資料項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能有重複的屬性。如果出現重複的屬性,就可能需要定義乙個新的實體,新的實體由重複的屬性構成,新實體與原實體之間為一對多關係。在第一正規...
資料庫之正規化
第一正規化 資料庫表中的字段都是單一屬性的,不可再分。這個單一屬性由基本型別構成,包括整型 實數 字元型 邏輯型 日期型等 第二正規化 資料庫表中不存在非關鍵字段對任意候選關鍵字段的部分函式依賴 部分函式依賴指的是存在組合關鍵字中的某些字段決定非關鍵字段的情況 也即所有非關鍵字段都完全依賴於任意一組...
資料庫之正規化 !
第一正規化 1nf 在任何乙個關聯式資料庫中,第一正規化 1nf 是對關係模式的基本要求,不滿足第一正規化 1nf 的資料庫就不是關聯式資料庫。所謂第一正規化 1nf 是指資料庫表的每一列都是不可分割的基本資料項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能有重複的屬性。如果出現重複...