資料庫閉包怎麼求
『壹』 資料庫閉包怎麼計算
已知關系模式R<U,F>,其中
U={A,B,C,D,E};
F={AB→C,B→D,C→E,EC→B,AC→B}。
求(AB)F+ 。
解 設X(0)=AB;
(1)計算X(1): 逐一的掃描F集合中各個函數依賴,
找左部為A,B或AB的函數依賴。得到兩個:
AB→C,B→D。
於是X(1)=AB∪CD=ABCD。
(2)因為X(0)≠ X(1) ,所以再找出左部為ABCD子集的那些函數依賴,又得到AB→C,B→D, C→E,AC→B,
於是X(2)=X(1)∪BCDE=ABCDE。
(3)因為X(2)=U,演算法終止
所以(AB)F+ =ABCDE。
求屬性集X(X U)關於U上的函數依
賴集F 的閉包XF+
輸入:X,F
輸出:XF+
步驟:
(1)令X(0)=X,i=0
(2)求B,這里B = { A |( V)( W)(V→WF
∧V X(i)∧A W)};
(3)X(i+1)=B∪X(i)
(4)判斷X(i+1)= X (i)嗎?
(5)若相等或X(i)=U , 則X(i)就是XF+ ,
演算法終止。
(6)若否,則 i=i+l,返回第(2)步。
對於演算法6.l, 令ai =|X(i)|,{ai }形成一個步長大
於1的嚴格遞增的序列,序列的上界是 | U |,因
此該演算法最多 |U| - |X| 次循環就會終止。
『貳』 有關關系資料庫理論的簡答題
(1)求屬性集的閉包,其實就是求各屬性的閉包,然後整合去重復。
閉包就是由一個屬性直接或間接推導出的所有屬性的集合
A可以直接導出C A+={A,C}
D可以直接導出A C D+={A,C,D}
所以(AD)+={A,C,D}
B可以直接導出A,C B+={A,B,C}
(2)關鍵碼的求解理論和演算法對於給定的關系R(A1A2…An)和函數依賴集F ,可將其屬性分為4類:L類:僅出現在F函數依賴左部的屬性
R類:僅出現在F函數依賴右部的屬性
N類:在F函數依賴的左右兩部均未出現的屬性
LR類:函數依賴的左右兩部均出現的屬性定理:
對於給定的關系模式R及其函數依賴集F,若X是R的L類屬性,則X必為R的 任一關鍵碼的成員。
所以可以看出BD是R的唯一關鍵碼
(3)求最小函數依賴集
1.根據分解性先分解所有依賴的右邊為單屬性
F={A->C,C->A,B->A,B->C,D->A,D->C}
2.對所有依賴的左邊為多屬性的情況,消除左側冗餘屬性
3.去除多餘的函數依賴{A->C,C->A,B->A,D->A}
不知道對不對,對的話就繼續。。
『叄』 資料庫屬性集合的閉包怎麼求
計算屬性集閉包X+的演算法如下:
輸入:X,F
輸出:
X+
迭代演算法的步驟:
①
選取X+的初始值為X
,即X+={X};
②
計算X+,
X+={XZ}
,其中Z要滿足如下條件:
YX+,且F中存在一函數依賴Y→Z。實際上就是以X+中的屬性子集作為函數依賴的決定因素,在F中搜索函數依賴集,找到函數依賴的被決定屬性Z放到X+中。
③
判斷:如果X+沒有變化?或X+等於U?則X+就是所求的結果,演算法終止。否則轉②。
因為U是有窮的,所以上述迭代過程經過有限步驟之後就會終止。
『肆』 資料庫:關系模式R(A,B,C,D,E)...函數依賴F={A-D,E-D,D-B,BC-D,CD-A} 求C的閉包坐等高手。。
①A -> BC, B -> D所以A -> D所以A -> DC -> E
所以呢A -> ABCDE
②E -> A, A -> ABCDE, 所以E -> ABCDE
③CD -> E, 所以呢CD -> ABCDE
④B -> D, BC -> CD,所以呢BC -> ABCDE
能推出abcde而又不包含多餘成分的就是候選鍵 所以上面仨是候選鍵 A+的話是求閉包吧
『伍』 資料庫 函數依賴中的閉包問題
1:.將F中的所有依賴右邊化為單一元素 AB->C C->A BC->D ACD->B BE->C CE->F CE->A CF->B CF->D D->E D->F 2:去掉F中所有冗餘依賴關系.做法為從F中去掉某關系,如去掉(X->Y),然後在F中求X+,如果Y在X+中,則表明x->是多餘的.需要去掉. 去掉AB->C
『陸』 資料庫選擇,圖片第70題
首先對於給定的R(U)和函數依賴集F,可以將它的屬性劃分為4類:
L類,僅出現在F的函數依賴左部的屬性。
R類,僅出現在F的函數依賴右部的屬性。
N類,在F的函數依賴左部和右部均未出現的屬性。
LR類,在F的函數依賴左部和右部兩部均出現的屬性。
根據以下定理和推論來求解候選碼。
定理1:對於給定的關系模式R及其函數依賴集F,若X(X∈R)是L類屬性,則X必為R的任一候選碼的成員。
推論1:對於給定的關系模式R及其函數依賴集F,若X(X∈R)是L類屬性,且X+包含了R的全部屬性,則X必為R的唯一候選碼。
定理2:對於給定的關系模式R及其函數依賴集F,若X(X∈R)是R類屬性,則X不在任何候選碼中。
定理3:設有關系模式R及其函數依賴集F,如果X是R的N類屬性,則X必包含在R的任一候選碼中。
步驟:
(1)將R的所有屬性分為L、R、N、LR四類,令X代表L、N兩類,Y代表LR類。
(2)求 X+(X的閉包)若X+包含了R的全部屬性,則X即為R的惟一候選碼,轉(5);否則轉(3)在Y中逐一取每個屬性A,求(XA)+。若它包含了R的全部屬性,則轉(5);否則調換一屬性反復進行這一過程,直到試完所有Y中的屬性。
(4)在Y中依次取兩個、三個屬性…求它們的屬性閉包直到其閉包包含R的全部屬性。
(5)輸出結果。
1、給出解題的過程:
a.L:B ; R:D,E ; LR:A,C ;沒有N類屬性
b.D和E不包含在任何候選碼中,只剩下A,B和C,而B屬於L類,故必定包含在任意候選碼中。將A,B和C組合:AB,BC和ABC
c.求閉包
AB的閉包:ABCDE
BC的閉包:ABCDE
不用再計算{ABC}的閉包了,因為存在兩個元素的候選鍵的閉包包含全部屬性
d.輸出候選碼為AB,BC
2、求F的最小覆蓋為:F1={AB->C,C->A,C->D,B->E}則無損且保持函數依賴的分解為:
R1(A,B,C) R2(C,A,D) R3(B,E)
或者分解R1(A,B,C) R2(C,D) R3(B,E)也是正確的。
『柒』 關於資料庫閉包的例題
參考我寫的
『捌』 一道資料庫求閉包的題目
y+={w,x,z,y}閉包就是這個呀