資料庫閉包和候選碼求解方法

2021-09-22 16:56:52 字數 1294 閱讀 3083

閉包概念

以下是寫的比較科學規範的閉包求解方法,設x和y均為關係r的屬性集的子集,f是r上的函式依賴集,若對r的任一屬性集b,一旦x→b,必有b⊆y,且對r的任一滿足以上條件的屬性集y1 ,必有y⊆y1,此時稱y為屬性集x在函式依賴集f下的閉包,記作x+。

計算關係r的屬性集x的閉包的步驟如下:

第一步:設最終將成為閉包的屬性集是y,把y初始化為x;

第二步:檢查f中的每乙個函式依賴a→b,如果屬性集a中所有屬性均在y中,而b中有的屬性不在y中,則將其加入到y中;

第三步:重複第二步,直到沒有屬性可以新增到屬性集y中為止。 最後得到的y就是x+

例(1):   設有關係模式r(u,f),其中u=,f=,計算(ae)+

解:  (1) 令x=,x(0)=ae

(2)在f中尋找尚未使用過的左邊是ae的子集的函式依賴,結果是: a→d, e→c;所以 x(1)=x(0)dc=acde, 顯然 x(1)≠x(0).

(3) 在f中尋找尚未使用過的左邊是acde的子集的函式依賴, 結果是: cd→i;所以 x(2)=x(1)i=acdei。雖然x(2)≠x(1),但f中尋找尚未使用過函式依賴的左邊已經沒有x(2)的子集,所以不必再計算下去,即(ae)+=acdei。

說白話一點:閉包就是由乙個屬性直接或間接推導出的所有屬性的集合。

例如:f=;由a可直接得到b和d,間接得到c,則a的閉包就是

候選碼的求解理論和演算法

對於給定的關係r(a1,a2,…an)和函式依賴集f,可將其屬性分為4類:

l類  僅出現在函式依賴左部的屬性。

r 類  僅出現在函式依賴右部的屬性。

n 類  在函式依賴左右兩邊均未出現的屬性。

lr類  在函式依賴左右兩邊均出現的屬性。

定理:對於給定的關係模式r及其函式依賴集f,若x(x∈r)是l類屬性,則x必為r的任一候選碼的成員。

推論:對於給定的關係模式r及其函式依賴集f,若x(x∈r)是l類屬性,且x+包含了r的全部屬性;則x必為r的唯一候選碼。

例(2):設有關係模式r(a,b,c,d),其函式依賴集f=,求r的所有候選碼。

解:考察f發現,a,c兩屬性是l類屬性,所以ac必是r的候選碼成員,又因為(ac)+=abcd,所以ac是r的唯一候選碼。

定理:對於給定的關係模式r及其函式依賴集f,若x(x∈r)是r類屬性,則x不在任何候選碼中。

定理:對於給定的關係模式r及其函式依賴集f,若x(x∈r)是n類屬性,則x必包含在r的任一候選碼中。

推論:對於給定的關係模式r及其函式依賴集f,若x(x∈r)是l類和n類組成的屬性集,且x+包含了r的全部屬性;則x是r的唯一候選碼。

資料庫閉包和候選碼求解方法

閉包概念 以下是寫的比較科學規範的閉包求解方法,設x和y均為關係r的屬性集的子集,f是r上的函式依賴集,若對r的任一屬性集b,一旦x b,必有b y,且對r的任一滿足以上條件的屬性集y1 必有y y1,此時稱y為屬性集x在函式依賴集f下的閉包,記作x 計算關係r的屬性集x的閉包的步驟如下 第一步 設...

資料庫閉包和候選碼求解方法

以下是寫的比較科學規範的閉包求解方法,設x和y均為關係r的屬性集的子集,f是r上的函式依賴集,若對r的任一屬性集b,一旦x b,必有b y,且對r的任一滿足以上條件的屬性集y1 必有y y1,此時稱y為屬性集x在函式依賴集f下的閉包,記作x 計算關係r的屬性集x的閉包的步驟如下 第一步 設最終將成為...

資料庫閉包和候選碼求解方法

閉包概念 以下是寫的比較科學規範的閉包求解方法,設x和y均為關係r的屬性集的子集,f是r上的函式依賴集,若對r的任一屬性集b,一旦x b,必有b y,且對r的任一滿足以上條件的屬性集y1 必有y y1,此時稱y為屬性集x在函式依賴集f下的閉包,記作x 計算關係r的屬性集x的閉包的步驟如下 第一步 設...