第二章
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)元组表达式
(3)域表达式 2.9 (1)汉语表达式:选择R关系中元组第2分量值不等于S关系中某元组第1分量值的元组。 (2)关系代数表达式: (3)域表达式: 2.10
(1)汉语表达式:选择R中元组第1分量值与第2分量值互换后仍存在于R中的元组。 (2)关系代数表达式: (3)域表达式: 2.11 (1) (2) (3) (4) 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) 检索全部学生都选修的课程的课程号和课程名 ∏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] ‘090111’)}
(4)检索至少选修刘老师所教授课程中一门课的女学生姓名
)} t[2]=v[3]v[1]= ‘男’{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)检索‘王一宁’同学不学课程的课程号 (6)检索至少选了两门课的学生学号
(7)检索全部学生都选修的课程的课程号和课程名
(8)检索选修课程包括刘老师所教授课程的学生姓名 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
ΠCNO,TNAME σSC.CNO=C.CNO × σS.SNO=SC.SNO × SDEPT=‘计算机’ SC S CDEPT=‘自动化’ C σ σ