文章目錄
- 1.1
- 2.1
- 2.2
- 2.3
- 2.4
1.1
列出下圖所示關系滿足的所有非平凡的函數依賴(忽略蘊含的函數依賴)。
A B C
? ? ? ? ? ? ? ? ? ? ? ? ------------ ????????????
a1 b1 c1
a1 b1 c2
a2 b1 c1
a2 b1 c3
非平凡的函數依賴有:A→B和C→B
2.1
假設有關系模式R(A,B,C,D,E),其函數依賴集F={A→BC,CD→E,B→D,E→A}
列出R的所有候選碼。
因A→BC,則A→B 和A→C。
因A→B 且 B→D,則A→D;
因A→CD且CD→E,則A→E;
所以A→ABCDE,A是候選碼。
因E →A,A→ABCDE,所以E → ABCDE,E是候選碼。
因CD→E,E→ABCDE,所以CD → ABCDE,CD是超碼。
因B→D,有BC→CD,所以BC→ABCDE,BC是超碼。
因B的閉包是BD,C的閉包是C,D的閉包是D, 所以B、C、D都不是超碼,BC與CD是候選碼。
候選碼是A, BC,CD和E。
2.2
假設有關系模式R(A,B,C,D,E),其函數依賴集F={A→BC,CD→E,B→D,E→A}
計算正則覆蓋Fc。
給定FDs集合F={A→BC,CD→E,B→D,E→A},F中每個FD的左邊是唯一的。同樣,任何FDs的左邊或右邊的屬性都不是無關的。因此正則覆蓋Fc等于F。
2.3
假設有關系模式R(A,B,C,D,E),其函數依賴集F={A→BC,CD→E,B→D,E→A}
BC是R的候選碼嗎?為什么?
BC是候選碼。
假設BC的閉包為X,計算X的步驟如下:
(1)X=BC;
(2)因B→D,B是X的子集,所以X=BCD;
(3)因CD→E,CD是X的子集,所以X=BCDE;
(4)因E→A,E是X的子集,所以X=ABCDE;
所以,BC是R的超碼。
同樣,計算B的閉包為BD,計算C的閉包為C,所以B與C都不是R的超碼。
因BC的所有真子集都不是R的超碼,所以BC是R的候選碼。
2.4
假設有關系模式R(A,B,C,D,E),其函數依賴集F={A→BC,CD→E,B→D,E→A}
CD是R的候選碼嗎?為什么?
CD是候選碼。
假設CD的閉包為X,計算X的步驟如下:
(1)X=CD;
(2)因CD→E,CD是X的子集,所以X=CDE;
(3)因E→A,E是X的子集,所以X=ACDE;
(4)因A→BC,A是X的子集,所以X=ABCDE;
所以,CD是R的超碼。
同樣,計算C的閉包為C,計算D的閉包為D,所以C與D都不是R的超碼。
因CD的所有真子集都不是R的超碼,所以CD是R的候選碼。
ps
我用 ai 寫的作業好像大部分是錯的,有點無奈,準備在github 上維護一個湘大計網院資料,等我學會怎么使用 github