若p為r上的乙個屬性集,如果u完全依賴於p,則稱p為m上的候選碼。
解釋一下上面那句話的意思
例如:關係r(a,b,c)滿足函式依賴m(a -> b,a -> c,b -> ac)
如果p的閉包為u的話,那麼p就為u上的候選鍵(其中u為r中所有的元素即abc)
在上面例題中的r(a,b,c)中,a的閉包為abc,a就為r上的候選鍵,b的閉包為也為abc所以b也是r上的候選鍵,c的閉包為c,故c不是r上的候選鍵。
只在右邊出現的屬性,不屬於候選碼;
只在左邊出現的屬性,一定存在於某候選碼當中;
左右都不出現的屬性一定存在於任何候選碼當中;
其他屬性逐個與2,3的屬性組合,求屬性閉包,若閉包等於u,則為候選碼。
eg:
關係模式r(a,b,c)
存在函式依賴f=
求r的候選碼。
只在左邊出現 : a
只在右邊出現 : 無
左右都不出現 : 無
左右都出現的 : b, c
首先看ab(a為存在於候選碼中的碼,所以用a與其他碼組合),ab本身自包ab,而ab->c,所以ab的閉包是abc=u。
再看ac,ac本身自包ac,而c->b,所以ac的閉包是abc=u。
故而r的候選碼是ab,ac。
資料庫原理之候選碼的求解
r a1,a2,an 和函式依賴集f,屬性分4類 l類 僅出現在f的函式依賴左部的屬性 r類 僅出現在f的函式依賴右部的屬性 n類 在f的函式依賴兩邊均未出現的屬性 lr類 在f的函式依賴兩邊均出現的屬性 對於給定的關係模式r及其函式依賴集f,1.如果x x r 是l類屬性,則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的閉包的步驟如下 第一步 設...