《数据库原理与应用》(孟凡荣 闫秋艳)课后习题答案 联系客服

发布时间 : 星期二 文章《数据库原理与应用》(孟凡荣 闫秋艳)课后习题答案更新完毕开始阅读819f91acc77da26925c5b069

第二章

2.1 试述关系模型的3个组成部分

答:关系模型由关系数据结构、关系操作和关系完整性约束三部分组成。 2.2 一个关系模式能否没有关键字?为什么?

答:不可以没有关键字,因为关键字是元组的唯一标志,如果没有关键字则无法唯一标识一个元组。

2.3 试述关系模型的完整性规则。在参照完整性中,为什么外部关键字属性的值也可以为空?什么情况下才可以为空? 答:(1)实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值。

(2)参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主码值。即属性F本身不是主属性,则可以取空值,否则不能取空值。

当外部关键字F对应的主键Ks值为空值时,说明F暂时没有赋值,此时F值必须取空值。

2.4一个n行、m列的二维表(其中没有两行或两列全同),将行或列交换后,能导出多少个不同的表? 答:1个 2.5 答:

(1) 最小个数为:取m,n中的大者;最大个数为:m+n (2) 最小个数为:0;最大个数为:取m,n中的小者 (3) 最小个数为:0;最大个数为:m*n (4) 最小个数为:0;最大个数为:n 2.6 答:

R?S= {(3,6,7), (2,5,7), (7,2,3), (4,4,3), (3,4,5)} R-S= {(3,6,7), (2,5,7), (4,4,3) } R?S= {(7,2,3)}

R×S= {(3,6,7,3,4,5), (3,6,7,7,2,3), (2,5,7,3,4,5), (2,5,7,7,2,3), (7,2,3,7,2,3), (7,2,3,3,4,5), (4,4,3,3,4,5), (4,4,3,7,2,3) } ?3,2(s)= {(5,4),(3,2)}

?B<‘5’(R)= {(7,2,3),( 4,4,3)} 2.7

答:该表达式的意思是:从关系R中选择元组,该元组满足:第1分量值或第2分量值至少有一个不等于其他某元组,即选择与其他元组不完全相同的元组。由于关系模型的性质要求,关系中不能够有重复的元组,因此上述条件一定满足,所以,这个表达式结果就是R。 2.8

(1)从R和S的笛卡尔积中选择满足下列条件的元组: 第2分量与第4分量相等,或第3分量和第4分量相等,并取第1分量和第5分量构成新的关系。

(2)元组表达式

{t|(?u)(?v)(R(u)?S(v)?u[2]?v[1]?u[3]?v[1]?t[1]?u[1]?t[2]?v[2]}

9

(3)域表达式

{xv|(?y)(?z)(R(xyz)?S(uv)?(y?u?z?u))}

2.9 (1)汉语表达式:选择R关系中元组第2分量值不等于S关系中某元组第1分量值的元组。 (2)关系代数表达式:(3)域表达式:

?1,2(?2?3(R?S))

{xy|(?u)(?v)(R(xy)?S(uv)?(u?y))}

2.10

(1)汉语表达式:选择R中元组第1分量值与第2分量值互换后仍存在于R中的元组。 (2)关系代数表达式:(3)域表达式: 2.11 (1) (2) (3)

?1,2(?1?4?2?3(R?R))

{t|(?u)(R(t)?R(u)?t[1]?u[2]?t[2]?u[1])}

{t|(?u)(R(u)?t[1]?u[1])} {t|(R(t)?t[2]?'17')}

{t|(?u)(?v)(R(u)?S(v)?t[1]?u[1]?t[2]?u[2]?t[3]?u[3]?t[4]?v[1]?t[5]?v[2]?t[6]?v[3]} (4)

{t|(?u)(?v)(R(u)?S(v)?u[3]?v[1]?t[1]?u[1]?t[2]?v[3]}

2.12

设有关系:S(SNO,SNAME,AGE,SEX,CDEPT); SC(SNO,CNO,GRADE);

C(CNO,CNAME,CDEPT,TNAME); 用关系代数表示 (1) 刘老师所教授课程的课程号、课程名 ∏CNO,CNAME(σTNAME=‘刘’(C))

(2) 检索年龄大于23的男学生的学号和姓名 ∏SNO,SNAME(σAGE>23∩SEX=‘男’ (S) )

(3) 检索学号为‘090111’学生所学课程的课程名与任课教师名 ∏CNAME,TNAME(C ∞σSNO=‘090111’SC )

(4) 检索至少选修刘老师所教授课程中一门课的女学生姓名 ∏SNAME(σTNAME=‘刘’(C) ∞ SC∞σSEX=‘女’(S)) (5) 检索‘王一宁’同学不学课程的课程号

∏CNO(C) - ∏CNO(σSNAME=‘王一宁’(S)∞ SC) (6) 检索至少选了两门课的学生学号 ∏SNO(σ[1]=[4] ∩ [2]<>[5]( SC × SC))

(7) 检索全部学生都选修的课程的课程号和课程名

10

∏CNO,CNAME(C ∞(∏SNO,CNO(SC)÷∏SNO(S)))

(8) 检索选修课程包括刘老师所教授课程的学生姓名 ∏SNAME(SC∞σTNAME=‘刘’(C)) 2.13

(1)刘老师所教授课程的课程号、课程名

{t|(?u)(C(u)?t[1]=u[1]? t[2]=u[2]? C[3]=‘刘’)} (2)检索年龄大于23的男学生的学号和姓名

{t|(?u)(S(u)?t[1]=u[1]? t[2]=u[2]? u[3]> 23 ? u[4]= ‘男’)} (3)检索学号为‘090111’学生所学课程的课程名与任课教师名

{t|(?u)(?v)(C(v)?SC(u)?v[1]=u[2]?t[1]=v[2] ?t[2]=v[3]?v[1]= ‘090111’)} (4)检索至少选修刘老师所教授课程中一门课的女学生姓名

{t|(?u)(?v)(?w)(S(u)?SC(v)?C(w)? u[4]= ‘女’?v[1]=u[1] ? v[2]=w[1] ?w[3]=‘刘’?t[1]=u[2])}

(5)检索‘王一宁’同学不学课程的课程号

{t|(?u)(?v)C(u)?SC(v)?(u[1]?v[2]?(?w)(s(w)?w[1]?v[1]?w[2]?'王一宁'))?t[1]?u[1])} (6)检索至少选了两门课的学生学号

(7)检索全部学生都选修的课程的课程号和课程名

{t|(?u)(?v)(?w)(S(u)?SC(v)?C(w)?u[1]?v[1]?v[2]?w[1]?t[1]?v[1]?t[2]?v[2]}

(8)检索选修课程包括刘老师所教授课程的学生姓名

{t|(?u)(?v)(SC(u)?C(v)?u[2]?v[1]?v[3]?'刘老师'?t[1]?u[1]}

2.15

(1)πCNO,TNAME (σSDEPT=‘计算机’ (S) ∞SC∞σCDEPT=‘自动化’ (C) ) (2) πCNO,TNAME (σSDEPT=‘计算机’ ∧ σCDEPT=‘自动化’ ∧ S.SNO=SC.SNO∧SC.CNO=C.CNO (S× SC × C)) (3)

ΠCNO,TNAME σSDEPT=‘计算机’∧ σCDEPT=‘自动化’ ∧S.SNO=SC.SNO∧SC.CNO=C.CNO × × SC C S

11

ΠCNO,TNAME σSC.CNO=C.CNO × σS.SNO=SC.SNO σCDEPT=‘自动化’ × C SDEPT=‘计算机’ SC S ΠCNO,TNAME σSC.CNO=C.CNO ΠC.CNO,TNAME,SC.CNO × σS.SNO=SC.SNO σCDEPT=‘自动化’ × C σSDEPT=‘计算机’ SC S

12

σ