更小的模式
乙個關係的滿足所有這種現實世界約束的例項令r
(r) 是乙個關係模式。
r 的子集k是
r(r)
的超碼的條件是:在關係r(
r)的任意合法例項中,對於
r 的例項中的所有元組對t1
和t2 總滿足,若t1
≠t2 ,則t1
[k]≠
t2[k
] 。令r
(r) 是乙個關係模式,α,
β∈r 。給定r(
r)的乙個例項,我們說這個例項滿足函式依賴α→
β 的條件是:對於
r 的例項中的所有元組對t1
和t2 總滿足,若t1
[α]=
t2[α
] ,則t1
[β]=
t2[β
] - 如果在r(
r)的每個合法例項中都滿足函式依賴α→
β ,則函式依賴在模式r(
r)上成立
- 如果函式依賴k→
r ,則
k 是r(
r)的乙個超碼
- 有些函式依賴稱為平凡的,因為它們在所有關係中都滿足。一般地,如果,β∈
α ,則形如α→
β 的函式依賴是平凡的令r
(r) 為一關係模式,多值依賴α→→
β 在r上成立的條件是,在r(
r)任意合法例項中,對於
r 中任意一對滿足t1
[α]=
t2[α
]的元組對t1
和t2 ,
r 中都存在元組t3
和t4 ,使得
- t_1[
α ]=t_2[
α ]=t_3[
α ]=t_4[
α ]
- t_1[
β ] = t_3[
β ]
- t_3[r –
α –
β ] = t_2[r–
α –
β ]
- t_2[
β ] = t_4[
β ]
- t_4[r –
α –
β ] = t_1[r–
α –
β ]
由多值依賴的定義,可以得到
- 若α→β
,則α→→
β - 若α→→β
,則α→→
r−β−
α 令f
為r上的乙個函式依賴集,r1
,r2,
…,rn
是r的乙個分解,f在
ri上的限定是f+
中所有只包含ri
中屬性的函式依賴的集合fi
令f′=f1∪
f2∪.
.fn ,如果f′
+=f+
,則分解為保持依賴的令f
為乙個函式依賴集,
f的閉包時被
f邏輯蘊涵的所有函式依賴的集合,記作f+
將函式依賴集
f 下被
α函式確定的所有屬性的集合稱為
f 下
α的閉包,記作α+
計算方法
- 初始α+
=α- 對於每乙個函式依賴β→
γ ,如果β∈
α+,將
γ 加入α+
考慮函式依賴集
f 及
f中函式依賴α→
β - 如果a∈
α 並且
f 邏輯蘊涵(f
−)∪,則
a 在
α中是無關的
- 令γ=α
−a,計算
f 下γ+
,如果γ
+ 包含
β 的所有屬性,則
a 在
α中是無關的
- 如果a∈
β 並且(f
−)∪ 邏輯蘊涵
f ,則a在
β 中是是無關的
- 計算(f
−)∪ 下α+
,如果α+
包含a ,則a在
β 中是無關的
f 的正則覆蓋fc
是乙個依賴集,使得
f 邏輯蘊涵fc
的所有依賴,並且fc
邏輯蘊涵
f 的所有依賴,此外,fc
具有如下性質 - f
c 中任何函式依賴都不含無關屬性 - f
c 中函式依賴的左半部都是唯一的,即fc
不存在兩個依賴α1
→β1 和α2
→β2 ,滿足α1
=α2
計算方法如果函式依賴集f滿足下列條件,則稱f為最小函式依賴集或最小覆蓋
- f中的任何乙個函式依賴的右部僅含有乙個屬性;
- f中不存在這樣乙個函式依賴x→
a ,使得
f 與f−
等價;
- f中不存在這樣乙個函式依賴x→
a ,
x 有真子集z使得
f−∪ 與
f 等價。
求解最小函式依賴集分三步確定乙個偏序關係
r是不是好的形式
如果不是,把它分解為關係集
,每乙個ri
都是好的形式,並且分解是無損的
理論基礎:函式依賴,多值依賴
如果r的所有屬性的域都是原子的
- 原因
- 非原子會使儲存複雜,資料冗餘對f
+ 中所有形如α→
β 的函式依賴,下面至少有一項成立 - α
→β是平凡的函式依賴(即β∈
α ) - α
是模式r 的乙個超碼設r
不屬於bcnf的乙個模式,則存在至少乙個非平凡的函式依賴α→
β ,其中
α 不是
r 的超碼,則可以用α∪
β和r−
(β−α
) 取代
r
無損分解,可能不是保持依賴的
如果關係r屬於
nf,且
每乙個非
主碼完全
函式依賴
於碼,則
關係r$屬於第二正規化對f
+ 中所有形如α→
β 的函式依賴,下面至少有一項成立 - α
→β是平凡的函式依賴(即β∈
α ) -α
是模式r 的乙個超碼 - β
−α中的每個屬性
a 都包含於
r的任意乙個候選碼中
第三正規化是bcnf的最小放寬
無損分解,保持依賴,可能用空值表示資料聯絡
d 是函式依賴和多值依賴集,對所有d+
中所有形如α→→
β 的多值依賴,至少以下乙個成立 - α
→→β是乙個平凡的多值依賴 - α
是r的乙個超碼5n
無損分解為3nf模式集
關聯式資料庫設計正規化
簡介 設計關聯式資料庫時,遵從不同的規範要求,設計出合理的關係型資料庫,這些不同的規範要求被稱為不同的正規化,各種正規化呈遞次規範,越高的正規化資料庫冗餘越小。目前關聯式資料庫有六種正規化 第一正規化 1nf 第二正規化 2nf 第三正規化 3nf 巴德斯科正規化 bcnf 第四正規化 4nf 和第...
關聯式資料庫的設計正規化
所謂第一正規化 1nf 是指資料庫表的每一列都是不可分割的基本資料項,同一列不能有多個含義,即實體的某個屬性不能有多個含義或者不能有重複的屬性。1nf是關聯式資料庫的基本原則,不滿足1nf的要求,就不能稱其為關聯式資料庫。第一正規化表達了如下3個意思。1 乙個表中不能同時存在兩個含義重複的屬性。2 ...
關聯式資料庫與非關聯式資料庫
關係型資料庫,是指採用了關係模型來組織資料的資料庫。關係模型是在1970年由ibm的研究員e.f.codd博士首先提出的,在之後的幾十年中,關係模型的概念得到了充分的發展並逐漸成為主流資料庫結構的主流模型。簡單來說,關係模型指的就是二維 模型,而乙個關係型資料庫就是由二維表及其之間的聯絡所組成的乙個...