v1.0 可编辑可修改 数据库习题作业重点(第2-3-4章)
设有关系R和S:
R A B C
3 6 7 2 5 7 7 2 3 4 4 3
S A B C
3 4 5 7 2 3
计算R∪S,R-S,R∩S,R×S,π3,2(S),σB<’5’(R),R 2<2 S, R S。 解:
R∪S
A B C 3 6 7 2 5 7 7 2 3 4 4 3 3 4 5
π3,2(S) C B 3 4 7 2 3 4 7 2 3 4 7 2 3 4 7 2
R?S
2<2 R-S
A B C 3 6 7 2 5 7 4 4 3
R∩S
A B C 7 2 3
R×S
3 3 2 2 7 7 4 4
6 7 6 7 5 7 5 7 2 3 2 3 4 3 4 3
5 3 5 3 5 3 5 3
5 4 3 2
σB<’5’(R)
A B C 7 2 3 4 4 3
7
2 3
3 4
5
R?S A B C
1
v1.0 可编辑可修改
7 2 3
设有关系R和S:
R A B
a b c b d e
S B C
b c e a b d
计算R ? S,R ? S,σA=C(R×S),S ? R。
B b e a 假设关系U和V分别有m个元组和n个元组,给出下列表达式中可能的最小和最大的元组数量: ⑴ U∩V ⑶ U?V ⑵ U∪V ⑷ σF(U)×V (F为某个条件) ⑸ πL(U)-V (其中L为某属性集) 2 v1.0 可编辑可修改 解: 操作 ⑴ U∩V ⑵ U∪V ⑶ U?V ⑷σF(U)×V ⑸πL(U)-V 最小元组数 0 max(m,n) 0 0 0 最大元组数 min(m,n) m+n m×n m×n m 设有三个关系: T(T#,TNMAE,TITLE) C(C#,CNAME,T#) S(S#,SNAME,AGE,SEX) SC(S#,C#,SCORE) 试用关系代数表达式表示下列查询语句: ① 检索年龄小于17岁的女学生的学号和姓名。 ② 检索男学生所学课程的课程号和课程名。 ③ 检索男学生所学课程的任课教师的工号和姓名。 ④ 检索至少选修两门课的学生学号。 ⑤ 检索至少有学号为S2和S4学生选修的课程的课程号。 ⑥ 检索WANG同学不学的课程的课程号。 ⑦ 检索全部学生都选修的课程的课程号与课程名。 ⑧ 检索选修课程包含LIU老师所授全部课程的学生学号。 解:⑴ πS#,SNAME(σAGE<’17’ ∧SEX=’F’(S)) ⑵ Πc#,CNAME(σSEX='M'(S?SC?C)) ⑶ ΠT#,TNAME(σSEX='M'(S?SC?C?T)) ⑷ π1(σ1=4 ∧ 2≠5(SC×SC)) ⑸ π2(σ1=’S2’ ∧4=’S4’∧ 2=5(SC×SC)) 3 v1.0 可编辑可修改 ⑹ πC#(C)-πC#(σSNAME='WANG'(S?SC)) ⑺ πC#,CNAME(C?(πS#,C#(SC)÷πS#(S))) ⑻ πS#,C#(SC)÷πC#(σTNAME='LIU'(C?T)) 在教学数据库的关系S、SC、C、T中,用户有一查询语句:检索女同学选修课程的课程名和任课教师名。 ① 试写出该查询的关系代数表达式。 ② 画出查询表达式的语法树。 ③ 使用启发式优化算法,对语法树进行优化,并画出优化后的语法树。 解: 4 v1.0 可编辑可修改 5