求閉包的方法:
理解定義:閉包就是由乙個屬性直接或間接推導出的所有屬性的集合
例項:
有關係模式r(a,b,c,d,e,f),f是r上的函式依賴集合,f=,則的閉包是?
由b→c得出此時閉包為abc,所以c在集合中,由c→de得出此時閉包為abcde,此時依賴關係已全部用齊~ab的閉包就為abcde。
求關係模式的候選碼:
例項:
給定關係模式r(a, b, c, d, e),如果存在依賴:a→b,bc→d,de→a,則該關係模式的碼為?
1.分別寫出依賴關係兩邊的所有元素
l:ce
r:none
lr:abd
l為依賴關係中只在左邊出現的元素,這些元素必為碼的一部分或者就是碼。
r為依賴關係中只在右邊出現的元素,這些元素不可能是碼。
lr為依賴關係中在兩邊都出現的元素,這些元素可能是碼,我們需要求閉包進一步判斷。
2.使用閉包求候選碼
因為l有ce兩個元素,lr有abd三個元素,我們要求最小的依賴關係集,簡單來說求出候選碼的元素個數要最少,首先對ce求候選碼,如果ce直接是候選碼的話那麼該集合關係候選碼就為ce,如果ce不是候選碼,則繼續求ce+,也就是ace,bce,cde,用上述的方法進行求閉包,如果閉包的元素為u(全集:abcde),則該集合是乙個碼。
ce:c啥子也不能推出,e啥子也不能推出~,所以自身閉包就是ce,而非u,因此ce不是碼
ace:a→b,則此時閉包為abce,bc在abce中,bc→d,此時閉包仍然為abcde,即閉包為u,滿足碼的條件,ace為碼,就不用繼續看完所有依賴了~
bce:同理嘛,bc→d,此時閉包為bcde,de→a,此時閉包為abcde,即u,bce為碼~
cde:de→a,此時閉包為acde,a→b,此時閉包為abcde,即u,所以cde也為碼~
那麼最後可以得出ace,bce,cde為候選碼,也就是碼。
關係模式和正規化判斷 候選碼主碼(筆記)
相關概念 非主屬性 不包含在任何乙個候選碼中的屬性。第一正規化 1nf 無重複的列。第一正規化是關係模式的基本要求。第二正規化 2nf 在滿足第一正規化的前提下,非主屬性非部分依賴於主關鍵字。要求實體的屬性完全依賴於主關鍵字。所謂完全依賴是指不能存在僅依賴主關鍵字一部分的屬性。第三正規化 3nf 在...
資料庫 碼 屬性 候選碼 主碼的關係
碼 唯一標識實體的屬性集稱為碼。例如學號是學生實體的碼 屬性實體所具有的某一特性稱為屬性 候選碼設k為r中的屬性或屬性組合,若k u,則k為r的候選碼 主碼若候選碼多於乙個,則選定其中乙個為主碼 1.碼和候選碼,屬性的區別 碼是唯一確定一條記錄的屬性或屬性集合,因此碼其實也就是候選碼的簡稱。但是碼一...
根據函式閉包,求候選碼
首先來看候選碼的定義 若關係中的某一屬性組的值能唯一地標識乙個元組,則稱該屬性組為候選碼。若w是候選鍵,則必須滿足兩個條件 w的閉包是u w沒有冗餘。設關係模式r中u abc.等n個屬性,u中的屬性在fd中有四種範圍 求候選碼的簡單方法方法 1 如果有屬性不在函式依賴集 現,那麼它必須包含在候選碼中...