閉包概念
以下是寫的比較科學規範的閉包求解方法,設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的閉包的步驟如下 第一步 設...