《關系數(shù)據(jù)理論 課后答案》由會員分享,可在線閱讀,更多相關《關系數(shù)據(jù)理論 課后答案(4頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、第五章 關系數(shù)據(jù)理論
習題解答和解析
1.理解并給出下列術語的定義:函數(shù)依賴、部分函數(shù)依賴、完全函數(shù)依賴、傳遞依賴、候選碼、主碼、外碼、全碼(All-key)、1NF、2NF、3NF、BCNF、多值依賴、4NF。
解析:解答本題不能僅僅把《概論》上的定義寫下來。關鍵是真正理解和運用這些概念。
答:函數(shù)依賴:設R(U)是一個關系模式,U是R的屬性集合,X和Y是U的子集。對于 R(U)的任意一個可能的關系r,如果r中不存在兩個元組,它們在X上的屬性值相同,而在Y上的屬性值不同,則稱"X函數(shù)確定Y"或"Y函數(shù)依賴于X", 記作X→Y。
解析:
(1)函數(shù)依賴是最基本的一種數(shù)據(jù)依賴,也是最
2、重要的一種數(shù)據(jù)依賴。
(2)函數(shù)依賴是屬性之間的一種聯(lián)系, 體現(xiàn)在屬性值是否相等。由上面的定義可以知道,如果X→Y,則r中任意兩個元組,若它們在X上的屬性值相同,那么在Y 上的屬性值一定也相同。
(3)要從屬性間實際存在的語義來確定他們之間的函數(shù)依賴,即函數(shù)依賴反映了(描述了)現(xiàn)實世界的一種語義。
(4)函數(shù)依賴不是指關系模式R在某個時刻的關系(值)滿足的約束條件,而是指R任何時刻的一切關系均要滿足的約束條件。
答:完全函數(shù)依賴、部分函數(shù)依賴:在R(U)中,如果X→Y,并且對于X的任何一個真子集X,都有X Y,則稱Y對X完全函數(shù)依賴,記作:
若X→Y, 但Y不完全函數(shù)依賴于X,
3、則稱Y對X部分函數(shù)依賴,記作:
傳遞依賴:在R(U)中,如果X→Y,(YX),Y X,Y→Z,則稱Z對X傳遞函數(shù)依賴。
候選碼、主碼:設K為R 中的屬性或?qū)傩越M合,若K→U (完全依賴)則K為R的候選碼(Candidate key)。若候選碼多于一個,則選運其中的一個為主碼(Pdmary key)。
解析:
1)這里我們用函數(shù)依賴來嚴格定義碼的概念。在第二章中我們只是描述性地定義碼(可以復習2.2.1):若關系中的某一屬性組的值能惟一地標識一個元組, 則稱該屬性組為候選碼(Candidate key)。
2)因為碼有了嚴格定義,在學習了《概論》5.3 數(shù)據(jù)依賴的公理系
4、統(tǒng)后就可
以從R的函數(shù)依賴集F出發(fā),用算法來求候選碼。
答:外碼:關系模式R中屬性或?qū)傩越MX并非R的碼,但X是另一個關系模式的碼,則稱X是R的外部碼(Foreign key),也稱外碼。
全碼:整個屬性組是碼,稱為全碼(All--key)。
答:1NF: 如果一個關系模式R的所有屬性都是不可分的基本數(shù)據(jù)項,則RlNF。
解析:第一范式是對關系模式的最起碼的要求。不滿足第一范式的數(shù)據(jù)庫模式不能稱為關系數(shù)據(jù)庫。
答:2NF:若關系模式RlNF,并且每一個非主屬性都完全函數(shù)依賴于R的碼,則R2NF。
3NF:關系模式R中若不存在這樣的碼X,屬性組Y及非主屬性Z(ZY
5、)使得X→Y,(Y X)Y→Z,成立, 則稱R3NF。BCNF:關系模式R1NF。若X→Y且YX時X必含有碼,則RBCNF。
解析:
讀者要真正理解這些范式的內(nèi)涵。各種范式之間的聯(lián)系:5NF4NFBCNF3NF2NF1NF(《概論》上圖 5.2)。能夠理解為什么有這種包含關系。
答多值依賴 : 設 R(U) 是屬性集 U 上的一個關系模式。 X,Y,Z 是 U 的子集 ,并且 Z =U -X-Y 。關系模式 R(U) 中多值依賴 X →→ Y 成立 , 當且僅當對 R (U) 的任一關系 r, 給定的一對 ( 元 ,z) 值 , 有一組 Y 的值 ,
6、 這組值僅僅決定于 z 值 而與 z 值無關。4NF: 關系模式 R 〈 U,F 〉ε 1NF, 如果對于 R 的每個非平凡多值依賴 X →→ Y(Y CE X),X 都含有碼 , 則稱 R 4NFo
解析
對于多值依賴的定義有多種。《概論》上定義 5.9 后面又給出了一種等價的定義。習題中的第 4 題是另一種等價的定義。可以對比不同的定義來理解多值依賴 , 選擇自己容易理解的一種定義來掌握多值依賴概念。
2. 建立一個關于系、學生、班級、學會等諸信息的關系數(shù)據(jù)庫。 描述學生的屬性有 : 學號、姓名、出生年月、系名、班號、宿舍區(qū)。 描述班級的屬性有 : 班號、專業(yè)名、系名、
7、人數(shù)、入校年份。
描述系的屬性有 : 系名、系號、系辦公室地點、人數(shù)。
描述學會的屬性有 : 學會名、成立年份、地點、人數(shù)。
有關語義如下 : 一個系有若干專業(yè) , 每個專業(yè)每年只招一個班 , 每個班有若 干學生。一個系的學生住在同一宿舍區(qū)。每個學生可參加若干學會 , 每個學會 有若干學生。學生參加某學會有一個人會年份。請給出關系模式 , 寫出每個關系模式的極小函數(shù)依賴集 , 指出是否存在傳遞 函數(shù)依賴 , 對于函數(shù)依賴左部是多屬性的情況討論函數(shù)依賴是完全函數(shù)依賴 , 還是部分函數(shù)依賴.指出各關系的候選碼、外部碼 , 有沒有全碼存在 ?
答:關系模式 : 學生 S(S#,SN, 鈕 ,
8、DN,C #,SA)
班級 C(C#,CS,DN,CNUM,CDATE)
系 D(D#,DN,DA,DNUM)
學會 P(PN,DA 四 1,PA,PNUM)
學生 -學會 SP(S#,PN,DATE2)
其中 ,S# 一學號 ,SN 一姓名 ,SB 一出生年月 ,SA 一宿舍區(qū),C # 一班號 ,CS 一專業(yè)名 ,CNUM 一班級人數(shù) ,CDATE- 入校年份,D # 一系號 ,DN 一系名 ,DA 一系辦公室地點 ,DNUM 一系人數(shù),PN 一學會名 ,DAIE1 一成立年月 ,PA 一地點 ,PNUM 一學會人數(shù) ,DATE2 一人會年份
每個關系模式的極小函數(shù)依賴集 :
9、S :S# → SN,S # →鈕 ,S # → C#,C # → DN,DN → SA
C :C # → CS,C # → CNIJM,C # → CDATE,CS → DN,(Cs ,CDATE) → C#
/ 鈴因為每個專業(yè)每年只招一個班於 /
D:D # → DN,DN → D#,D # → DA,D # → DNIJM
/ 鈴按照實際情況 , 系名和系號是一一對應的鈴/P:PN → DATE1,PN → PA,PN → NUM
SP:(S#,PN) → DATE2
S 中存在傳遞函數(shù)依賴 :S # → DN,S # → SA,C # → SA
/ 鈴因為 S # →
10、C#,C # → DN,DN → SA 禱 /
C 中存在傳遞函數(shù)依賴 :C# → DN
/ 鈴因為 C # → CS,CS → DN 鈴 /
(S#,PN) → DAIE2 和 (CS,CDATE) → C# 均為 SP 中的函數(shù)依賴 , 是完全函數(shù)依賴。
關系
S
C
候選碼
S #
C #,(CS,CDAIE)
外部碼 C #,DN DN
S #,PN
D # 和 DN PN (S#,PN)
D P SP
解析
讀者應該根據(jù)題目中給出的有關語義寫出關系模式中的數(shù)據(jù)依賴 , 有些依 賴可以按照實際情況寫出 , 也許題目中并沒有明顯指出。例如 ,
11、按照實際情況 ,系名和系號是一一對應的 , 因此有 D # → DN,DN → D# 。
3. 試由 Amostrong 公理系統(tǒng)推導出下面三條推理規(guī)則 :
(1) 合并規(guī)則 : 若 X → Z,X → Y, 則有 X → YZ
(2) 偽傳遞規(guī)則 : 由 X → Y,W → Z 有 XW → Z
(3) 分解規(guī)則 :X → Y,ZC Y, 有 X → Z
證明
(1) 已知 X → Z, 由增廣律知 XY → YZ, 又因為 X → Y, 可得 XX → XY → YZ, 最后根據(jù)傳遞律得X → YZ 。
(2) 已知 X → Y, 據(jù)增廣律得 XW → WY, 因為 WY
12、→ Z, 所以 XW → WY → Z, 通過傳遞律可知 XW → Z 。
(3) 已知 ZC Y, 根據(jù)自反律知 Y → Z, 又因為 X → Y, 所以由傳遞律可得 X→ Z 。
4. 關于多值依賴的另一種定義是 :
給定一個關系模式 R(X,Y,Z), 其中 X,Y,Z 可以是屬性或?qū)傩越M合。
設 z ε x,y ε Y,z ε z,m 在 R 中的像集為 :
ELz=i r.Yl r.X=ZAr.Z =zAr ε R i
定義 R(X,Y,Z) 當且僅當 bz= 丸 , 對于每一組 ( 元 ,h z) 都成立 , 則 Y 對 X 多值依賴 , 記作 X →→ Y 。這里
13、 , 允許 Z 為空集 , 在 Z 為空集時 , 稱為平凡的多值依賴。請證明這里的定義和《概論》 5.2.7 節(jié)中定義 5.9 是等價的。
證明:設 ELz= 凡 , 對于每一組 ( 元 ,z,z) 都成立 , 現(xiàn)證其能推出定義 5.9 的條件 : 設 sJ 是關系 r 中的兩個元組 ,s[X]=t[X], 由新定義的條件可知對于每 一個 z 值 , 都對應相同的一組 y 值。這樣一來 , 對相同的 Z 值 , 交換 y 值后所得 的元組仍然屬于關系 r, 即定義 5.9 的條件成立 ;
如果定義 5.9 的條件成立 , 則對相同的 Z 值 , 交換 y 值后所得的元組仍然屬
于關系
14、r, 由于任意性及其對稱性 , 可知每個 z 值對應相同的一組 y 值 , 所以 YZZ =YM, 對于每一組 ( 元 ,z,z) 都成立。
綜上可知 , 新定義和定義 5.9 的條件是等價的 , 所以新定義和定義 5.9 是等價的。
5. 試舉出 3 個多值依賴的實例。 答
(1) 關系模式 MSC(M,S,C) 中 ,M 表示專業(yè) ,S 表示學生 ,C 表示該專業(yè)的必
修課。假設每個專業(yè)有多個學生 , 有一組必修課。設同專業(yè)內(nèi)所有學生選修的 必修課相同 , 實例關系如下。按照語義對于 M 的每一個值磯 ,S 有一個完整的 集合與之對應而不問 C 取何值 , 所以 M →→ S
15、。由于 C 與 S 的完全對稱性 , 必然 有 M →→ C 成立。
M
S
C
M1
S1
C1
MI
S1
C2
M1
S2
Cl
M1
S2
C2
......
......
......
(2) 關系模式 ISA(I,S,A) 中 ,I 表示學生興趣小組 ,S 表示學生 ,A 表示某興 趣小組的活動項目 O 假設每個興趣小組有多個學生 , 有若干活動項目 O 每個學 生必須參加所在興趣小組的所有活動項目 , 每個活動項目要求該興趣小組的所 有學生參加。
按照語義有 I →→ S,I →→ A 成立。
(3) 關系模式 RD
16、P 俑 ,D,P) 中 ,R 表示醫(yī)院的病房 ,D 表示責任醫(yī)務人員 ,P 表示病人。假設每個病房住有多個病人 , 有多個責任醫(yī)務人員負責醫(yī)治和護理 該病房的所有病人。按照語義有 R →→ D,R →→ P 成立。
12. 下面的結論哪些是正確的 , 哪些是錯誤的 ? 對于錯誤的結論請給出理
由或給出一個反例說明之。
答
(1) 任何一個二目關系都是屬于 3NF 的。 J
(2) 任何一個二呂關系都是屬于 BCNF 的 O J
(3) 任何一個二目關系都是屬于 4NF 的。 J
R(X,Y} 如果 X →→ Y 即 X 、 Y 之間存在平凡的多值依賴 ,R 屬于 4NFo (4)
17、 當且僅當函數(shù)依賴 A--B 在 R 上成立 , 關系 R(A,B ,C) 等于其投影 RI
(A,B) 和 R2(A,C) 的連接。
當 A → B 在 R 上成立 , 關系 R(A,B ,C) 等于其投影 R1(A,B) 和 R2(A,C)
的連接。反之則不然。
正確的應該是 :
當且僅當多值依賴 A →→ B 在 R 上成立 , 關系 R(A,B ,C) 等于其投影 R1
(A,B) 和 R2(A,C) 的連接。 ( 參見《概論》上定理 5.6)
(5) 若 R.A → R.B ,R.B → R.C , 則 R.A → R.C J
(6) 若 R.A → R.B ,R.A → R.C, 則 R.A → R. 餌 ,C)J
(7) 若 R.B → R.A,R.C → R.A, 則 R.(B,C) → R.A J
(8) 若 R.(B,C) → R.A, 則 R.B → R.A,R.C → R.A
反例 : 關系模式 SC(S#,C #,G),(S#,C #) → G, 但是 S # 恰 G,C # 氣 Go