答案:①并 ②差 ③笛卡尔积 ④投影 ⑤选择 9.关系代数运算中,专门的关系运算有 ① 、 ② 和 ③ 。 答案:①选择 ②投影 ③连接
10.关系数据库中基于数学上两类运算是 ① 和 ② 。
答案:①关系代数 ②关系演算
11.传统的集合“并、交、差”运算施加于两个关系时,这两个关系的 ① 必须相等, ② 必须取自同一个域。 答案:①属性个数 ②相对应的属性值
12.关系代数中,从两个关系中找出相同元组的运算称为 运算。 答案:交
13.已知系(系编号,系名称,系主任,电话,地点)和学生(学号,姓名,性别,入学日期,专业,系编号)两个关系,系关系的主码是 ① ,系关系的外码是 ② ,学生关系的主码是 ③ ,外码是 ④ 。 答案:①系编号 ②无 ③学号 ④系编号
14.关系代数是用对关系的运算来表达查询的,而关系演算是用 ① 查询的,它又分为 ② 演算和 ③ 演算两种。
答案:①谓词表达 ②元组关系 ③域关系 三、简述与应用题
1.叙述等值连接与自然连接的区别和联系。
答:等值连接表示为R ?? S,自然连接表示为R ?? S;自然连接是除去重复属性的 R.A=S.B
等值连接。两者之间的区别和联系如下:
· 自然连接一定是等值连接,但等值连接不一定是自然连接。
·等值连接要求相等的分量,不一定是公共属性;而自然连接要求相等的分量必须是公共属性。
·等值连接不把重复的属性除去;而自然连接要把重复的属性除去。
2.举例说明关系参照完整性的含义。
答:假如有如图所示的两个关系表,在成绩表中,学号是码,课程号是外码;在课程表中课程号是码,根据关系参照完整性的定义,R2是成绩表,R1是课程表,也就是成绩表中课程号的值或者为空或者在课程表中的课程号中能够找到。
满足这个条件是必须的,如果不满足,假设成绩表中课程号的值k20在课程表中课程号的值中找不到,则该课程号显然是不正确的,这样会造成数据的不一致性。
成绩表 学号 姓名 课程号 成绩 101 212 221 ?? 刘林 王红 李平 ?? K5 K8 K9 ?? 80 78 90 ?? 课程表 课程号 课程名 K5 K8 K9 高等数学 程序设计 操作系统 ?? ??
3.设有如图所示的关系R和S,计算: (1)R1=R-S
R S (2)R2=R∪S
(3)R3=R∩S A B C A B C (4)R4=R×S
b a f a b c
d a d b a f
c b d
解:本题各小题的结果如图所示。
R-S R∪S
A B C A B C
a b c a b c
b a f c b d c b d
d a f
R∩S R×S
A B C A B C A B C
b a f a b c b a f
a b c d a f
b a f b a f
b a f d a f c b d b a f c b d d a f 4.设有如图所示的关系R,S和T,计算: (1)R1=R∪S
R S T (2)R2=R-S
(3)R3=R ?? T
A B A B B C (4)R4=R ?? T
a d d a b b A<C
b e b a c c (5)R5=∏A(R)
c c b c b d (6)R6=σA=C(R×T)
解:本题各小题的结果如下图所示。 R1 R2 R3 R4 R5 R6 A B A B C A B B C A A B B C A B a d a d C c c a d b c a a d b c b e b e a d c c b a d c c c c c c a d b d c a d b d d a b a d e b e c c b e b d c c b d b e c c b e b d c c b d 5.设有如图所示的关系R,S,计算: (1)R1=R ?? S
A B C C D E (2)R2=R ?? S
3 6 7 3 4 5 [2]<[2]
7 2 3 4 5 7 (3)R3=σB=d(R×S)
7 2 3
4 4 3 解:本题各小题的结果如下图所示。 R1 A B C C D E R2
A B C D E 7 2 3 3 4 5 3 6 7 2 3 4 5 7 2 3 A B C C D E 7 2 3 4 5 R3 7 2 3 3 4 5 4 4 3 4 5 4 4 3 3 4 5
6.设有如图所示的两上关系E1和E2,其中E2是从E1中经过关系运算所形成的结果,试给出该运算表达式。
E1 E2
A B C B C 1 2 3 5 6
4 5 6 8 9
7 8 9
生成E2所经过的关系运算是:∏2,3(σB>2(E1))或∏2,3(σC>3(E1))解:从E1。
7.设有如下所示的三个关系S、C和SC。用关系代数表达式表示下列要求,并求出结果。
S 学号 姓名 年龄 性别 籍贯 20001 20002 20003 20004 20005
课程号 C001 C002 C003 C004
学号 20001 SC 课程号 C001 成绩 90 课程名 高等数学 数据结构 操作系统 编译原理 C 教师 李 娟 刘小东 吴 浩 王 伟 办公室 416 415 415 415 王小严 20 李 白 21 陈志坚 23 王 兵 20 张 红 22 女 男 男 男 女 北京 上海 长沙 上海 武汉 R S
20001 20001 20001 20002 20003 20003 20003 20004 20004 20005 20005 C002 C003 C004 C001 C001 C002 C004 C001 C004 C001 C003 90 85 87 90 75 70 56 90 85 95 80
(1).检索籍贯为上海的学生姓名、学号和选修的课程号。 (2).检索选修操作系统的学生姓名、课程号和成绩。 (3).检索选修了全部课程的学生姓名、年龄。 解:
(1).R1=∏2,1,6(σ籍贯=’上海’(s?? sc))
或:R1=∏姓名,S.学号,课程号(σ籍贯=’上海’(s?? sc)) 或:R1=∏姓名,S.学号,课程号(σ籍贯=’上海’(s)?? sc) (2). R2= ∏2,6,7(s?? sc?? σ课程名=’操作系统’(C)) 或:R2=∏姓名,SC.课程号,成绩(s?? sc??σ课程名=’操作系统’(C)) (3). R3=∏2,3(s?? ∏1,2(sc)÷∏1(C))) 或:R3=∏姓名,年龄(s?? (∏学号,课程号(sc)÷∏课程号(C))) 检索结果如下:
R1 姓名 学号 课程号 李 白 王 兵 王 兵 20002 20004 20004 R2 课程号 C003 C003 R3 年龄 20 C001 C001 C004 姓名 王小严 张 红 成绩 85 80 姓名 王小严 8.设有如下所示的关系S(S#,SNAME,AGE,SEX)、C(C#,CNAME,TEACHER)和SC(S#,C#,GRADE),试用关系代数表达式表示下列查询语句:
(1)检索“程军”老师所授课程的课程号(C#)和课程名(CNAME)。 (2)检索年龄大于21的男学生学号(S#)和姓名(SNAME)。
(3)检索至少选修“程军”老师所授全部课程的学生姓名(SNAME)。 (4)检索”李强”同学不学课程的课程号(C#)。 (5)检索至少选修两门课程的学生学号(S#)。
(6)检索全部学生都选修的课程的课程号(C#)和课程名(CNAME)。
(7)检索选修课程包含“程军”老师所授课程之一的学生学号(S#)。 (8)检索选修课程号为k1和k5的学生学号(S#)。 (9)检索选修全部课程的学生姓名(SNAME)。
(10)检索选修课程包含学号为2的学生所修课程的学生学号(S#)。 (11)检索选修课程名为“C语言”的学生学号(S#)和姓名(SNAME)。 解:本题各个查询语句对应的关系代数表达式表示如下:
(1). ∏C#,CNAME(σTEACHER=‘程军’(C)) (2). ∏S#,SNAME(σAGE>21∧SEX=”男”(C)) (3). ∏SNAME{s?? [∏S#,C#(sc)÷∏C#(σTEACHER=‘程军’(C))]} (4). ∏C#(C)- ∏C#(σSNAME=‘李强’(S) ?? SC) (5). ∏S#(σ[1]=[4]∧[2]≠[5] (SC × SC))
(6). ∏C#,CNAME(C?? (∏S#,C#(sc)÷∏S#(S))) (7). ∏S#(SC?? ∏C#(σTEACHER=‘程军’(C)))
(8). ∏S#,C#(sc)÷∏C#(σC#=’k1’∨ C#=’k5’(C)) (9). ∏SNAME{s?? [∏S#,C#(sc)÷∏C#(C)]} (10). ∏S#,C#(sc)÷∏C#(σS#=’2’(SC))
(11). ∏S#,SNAME{s?? [∏S#(SC?? σCNAME=‘C语言’(C))]}
9.以图3.18的数据库为例,用关系代数完成以下检索。
关系模式:仓库(仓库号,城市,面积) 职工(仓库号,职工号,工资)
订购单(职工号,供应商号,订购单号,订购日期) 供应商(供应商号,供应商名称,地址) (1).检索在仓库2工作的职工的工资。 解:
关系代数表示:
∏职工号,工资(σ仓库号=“WH2“(职工))
(2).检索在上海工作的职工的工资。 解:
关系代数表示:
∏职工号,工资(σ城市=“上海”(仓库)? 职工)
(3).检索北京的供应商名称。 解:
关系代数表示:
∏供应商名称(σ地址=“北京“(供应商))
(4).检索目前与职工E6有业务联系的供应商名称。 解:
关系代数表示:
∏供应商名称(σ职工号=“E6“(订购单)??( 供应商)
(5).检索所有职工的工资大于1220的仓库所在的城市。 解:
关系代数表示: ∏城市(仓库??( ( ∏仓库号(职工)-∏仓库号(σ工资≤“1220“(职工))))
(6).检索和北京的所有供应商都有业务联系的职工的工资。 解:
关系代数表示: