計算某一屬性或屬性集(比如)的閉包
計算某函式依賴(比如a->b)是否邏輯蘊含在函式依賴集中
求解乙個關係r(u,f)的候選碼(r為關係模式,u為屬性集,f為函式依賴集)
判斷某屬性集是否為關係的超碼
判斷某屬性是否為無關屬性
**法是判斷分解是否為無損連線分解的充要條件,請使用**法判斷某分解是否無損連線
若分解後的模式只有兩個,那麼便可以使用快速法判斷分解是否無損連線
快速法:
用定義法或稍微簡單的演算法判斷分解是否保持依賴
稍微簡單的演算法:
判斷關係模式r< u , f >符合第幾正規化,注:3nf和bcnf的判斷被證明是np問題,但一般的題通過定義就可判斷
將關係模式r< u , f >分解為3nf並保持依賴
演算法:
將關係模式r< u , f >分解為3nf,並且保持依賴和無無損連線
演算法:首先分解為保持3nf並且保持依賴,如果對於任意候選碼,已經在分解的ri,f
i>
r_iri
,fi
>
中包含,那麼該分解就已經是無損連線。如果沒有,加上分解r∗fα
>
r^*r∗
fα>
(其中α為任意候選碼)。
判斷關係模式r< u , f >是否屬於bcnf正規化
演算法:依次檢查每乙個函式依賴,判斷是否屬於平凡依賴或者左部分為超碼。如果每乙個函式依賴都符合,則為bcnf正規化。
如果關係模式r< u , f >被分解成數個ri,f
i>
r_iri
,fi
>
,判斷r
ir_i
ri是否符合bcnf正規化
演算法:需要根據f
+f^+
f+進行判斷,因為r
ir_i
ri中可能沒有來自f中的函式依賴,即邏輯蘊含的依賴。
將關係模式r分解為bcnf並無損連線(注:bcnf分解無法保證保持依賴)
演算法:
舉例:
等價:若有函式依賴集f,g,若f+=
g+f^+=g^+
f+=g
+,那麼稱f與g等價。
覆蓋:若f與g等價,則成f是g的乙個覆蓋,g是f的乙個覆蓋
無關屬性:如果去除乙個函式依賴中的屬性,不會改變該函式依賴集的閉包,則稱該屬性是無關的。能夠被函式依賴集f邏輯蘊涵的函式依賴,不必出現在f中
正則覆蓋:左半部分唯一;與原函式依賴集等價;不包含無關屬性;正則覆蓋未必唯一
最小覆蓋:所有右端屬性只有乙個;與原函式依賴集等價;不包含無關屬性
無損連線:是r的乙個分解,r是r的乙個關係,定義mp(
r)=自
然連線求
和ri(
r)m_p(r)=自然連線求和r_i(r)
mp(r)
=自然連
接求和r
i(r
) ,若對於r的任乙個關係r,都有r =mp(
r)m_p(r)
mp(r)
,則稱是r的乙個無損連線分解。
保持依賴:
正規化:正規化是對關係的不同資料依賴程度的要求;通過模式分解將乙個低階正規化轉換為若干個高階正規化的過程稱為規範化。
1nf(first normal form):關係中的每乙個分量不可再分,即不能以集合、序列等作為屬性值。
2nf:首先滿足1nf,並且對於每乙個屬性,它要麼出現在候選碼之中,要麼沒有部分依賴與乙個候選碼。即2nf消除了非主屬性對碼的部分依賴。
3nf(第一種定義):在關係模式r中,對於f
+f^+
f+中所有函式依賴α->β,至少有以下之一成立:① α->β是平凡函式依賴 ② α為超碼 ③ β - α的每乙個屬性都包含在候選碼之中。
3nf(第二種定義):首先滿足2nf,並且在關係模式r< u , f >中,若不存在這樣的碼x,屬性組y及非主屬性z(z 不依賴於y),使得下式成立:x->y , y->z , y\->x
bcnf(第一種定義):在關係模式r中,對於f
+f^+
f+中所有函式依賴α->β,至少有以下之一成立:① α->β是平凡函式依賴 ② α為超碼
bcnf(第二種定義):首先滿足3nf,並且在關係模式r< u , f >中,不存在主屬性對碼的不良依賴(不良依賴指部分依賴和傳遞依賴)。
關聯式資料庫設計相關知識彙總(二)
第三正規化出現的原因 bcnf是一種很嚴格的正規化,為了容易獲得保持依賴的分解,我們考慮一種比較弱的正規化,就是第三正規化。第三正規化 具有函式依賴集f的關係模式r屬於第三正規化的條件是 對於f 中所有形如a b的函式依賴 其中a,b都是r的屬性 三個條件中至少有乙個成立 a b是乙個平凡的函式依賴...
關聯式資料庫設計正規化
簡介 設計關聯式資料庫時,遵從不同的規範要求,設計出合理的關係型資料庫,這些不同的規範要求被稱為不同的正規化,各種正規化呈遞次規範,越高的正規化資料庫冗餘越小。目前關聯式資料庫有六種正規化 第一正規化 1nf 第二正規化 2nf 第三正規化 3nf 巴德斯科正規化 bcnf 第四正規化 4nf 和第...
關聯式資料庫與非關聯式資料庫
關係型資料庫,是指採用了關係模型來組織資料的資料庫。關係模型是在1970年由ibm的研究員e.f.codd博士首先提出的,在之後的幾十年中,關係模型的概念得到了充分的發展並逐漸成為主流資料庫結構的主流模型。簡單來說,關係模型指的就是二維 模型,而乙個關係型資料庫就是由二維表及其之間的聯絡所組成的乙個...