關聯式資料庫設計相關知識彙總(二)

2021-10-06 00:26:00 字數 1778 閱讀 2281

第三正規化出現的原因

bcnf是一種很嚴格的正規化,為了容易獲得保持依賴的分解,我們考慮一種比較弱的正規化,就是第三正規化

第三正規化

具有函式依賴集f的關係模式r屬於第三正規化的條件是: 對於f+中所有形如a→b的函式依賴(其中a,b都是r的屬性),三個條件中至少有乙個成立:

①a→b是乙個平凡的函式依賴

②a是r的乙個超碼

③b-a中的每個屬性c都包含於r的候選碼中(每個c可以包含於不同的候選碼中)

邏輯蘊涵

給定關係模式r®,如果r®的每乙個滿足f的例項也滿足f,則r上的函式依賴f被r上的函式依賴集f邏輯蘊涵

f+的再定義

f+是函式依賴集f的閉包,是被f邏輯蘊涵的所有函式依賴的集合。

armstrong公理

用處: 尋找邏輯蘊涵的函式依賴

自反律:若a是乙個屬性集且b是a的子集,則a→b成立。

增補律:若a→b成立且c為乙個屬性集,則ca→cb成立。

傳遞律:若a→b和b→c成立,則a→c成立。

這三條公理是完備的,對於給定的函式依賴集f,利用它們可以產生全部f+。

三個附加規則

簡化的公理,可以由armstrong公理證明。

合併律:若a→b和a→c成立,則a→bc成立

分解律:若a→bc成立,則a→b和a→c成立

偽傳遞律:若a→b和cb→d成立,則ac→d成立

計算f+的偽**

f+ = f

repeat

for eachf+中的函式依賴f 在f上應用自反律和增補律,將結果加入到f+中

for eachf+中一對函式依賴f1和f2iff1和f2可以使用傳遞律結合起來 將結果加入到f+中

untilf+不再變化

屬性集的閉包

令a是r的乙個屬性集,我們將函式依賴集f下被a函式確定的所有屬性的集合稱為f下a的閉包。(函式確定: 函式依賴a→b 讀作 a函式確定b)

計算a+的偽**

result = a;

repeat

for eachf中的函式依賴b→cdo

begin

ifb是result的子集

thenresult = result 並 c;

untilresult 不變

屬性集閉包的用途

①判斷a是否為超碼: 檢查a+是否包含r中所有屬性

②檢查函式依賴a→b是否成立: 檢查 b是否是a+的子集

③計算f+: 對r中任意屬性集c,對任意c+的子集d,輸出乙個函式依賴c→d

筆記 關聯式資料庫設計題目型別彙總

計算某一屬性或屬性集 比如 的閉包 計算某函式依賴 比如a b 是否邏輯蘊含在函式依賴集中 求解乙個關係r u,f 的候選碼 r為關係模式,u為屬性集,f為函式依賴集 判斷某屬性集是否為關係的超碼 判斷某屬性是否為無關屬性 法是判斷分解是否為無損連線分解的充要條件,請使用 法判斷某分解是否無損連線 ...

資料庫筆記(關聯式資料庫相關)

關聯式資料庫由被稱為關係 relation 的 組成。關係中的每乙個列被稱為屬性 attribution 每一行被稱為一條記錄 record 每乙個儲存了實際資料的關係被稱為關係例項 relation instance 在關係的屬性中,每一條記錄的某個屬性被約束在某個特定的資料型別上,這個型別被稱為...

關聯式資料庫設計正規化

簡介 設計關聯式資料庫時,遵從不同的規範要求,設計出合理的關係型資料庫,這些不同的規範要求被稱為不同的正規化,各種正規化呈遞次規範,越高的正規化資料庫冗餘越小。目前關聯式資料庫有六種正規化 第一正規化 1nf 第二正規化 2nf 第三正規化 3nf 巴德斯科正規化 bcnf 第四正規化 4nf 和第...