设有关系S、SC和C,试用关系代数表达式完成下列操作。 S(snum,sname,age,sex) 例:(1,“李强”,23,‘男’) SC (snum,cnum,score) 例:(1,“C1”,83) C(cnum,cname,teacher) 例:(“C1”,“数据库原理”,“王华”) 列出关系代数表达式,并且优化: (1) 检索“何伟”同学不学课程的课程号。 (2) 检索有一门课程成绩在90分以上的男同学的姓名。 (3) 列出没有选修“人工智能”的学生名单。 (4) 找出选修了袁老师教的所有课程的学生名单。 (5) 查找每门课程成绩在70分以上并且平均成绩在75分以上的学生名单。
时间: 2024-02-26 09:52:04 浏览: 179
(1) πcnum(SC) - πcnum(σsname='何伟'(S) ⋈ SC)
优化:πcnum(SC) - πcnum(σsname='何伟'(S)) ⋉ SC
(2) πsname(σsex='男' ^ ∃score>90(SC ⋈ S)))
优化:πsname(σsex='男' ^ SC ⋈ σscore>90(S))
(3) πsname(S) - πsname(σcnum='人工智能'(C) ⋉ SC ⋈ S)
优化:πsname(S) - πsname(SC ⋈ S ⋉ σcnum='人工智能'(C))
(4) πsname(S) ÷ πsnum(σteacher='袁'(C) ⋈ SC ⋈ S)
优化:πsname(S) ÷ πsnum(SC ⋈ σteacher='袁'(C) ⋈ S)
(5) πsname(σscore>70(SC) ⋈ S) ÷ πsnum(πsnum(SC) ÷ πcnum(SC))
优化:πsname(SC ⋈ S ⋈ σscore>70(πscore(SC))) ÷ πsnum(SC ⋈ πcnum(SC))
相关问题
设有关系S、SC和C,试用关系代数表达式完成下列操作。 S (snum,sname,age,sex) 例:(1,“李强”,23,“男”) SC (snum,cnum,score) 例:(1,“C1”,83) C(cnum,cname,teacher) 例:(“CI”,“数据库原理”,“王华”) 列出关系代数表达式,并且优化:(1)检索“何伟”同学不学课程的课程号。(2) 检索有一门课程成绩在90分以上的男同学的姓名。 (3)列出没有选修“人工智能”的学生名单。 (4)找出选修了袁老师教的所有课程的学生名单。 (5)查找每门课程成绩在70分以上并且平均成绩在75分以上的学生名单。
(1) π cnum(SC) - π cnum(SC ⋈ snum=S ⋈ sname='何伟')
(2) π sname(S) ⋈ (π snum(SC) ⋈ σ score>90 and sex='男'(SC))
(3) π sname(S) - π sname(SC ⋈ cnum=C ⋈ cname='人工智能')
(4) π sname(S) ⋈ (π snum(SC) ÷ π snum(SC ⋈ cnum=C ⋈ teacher='袁老师'))
(5) π sname(SC ⋈ S) ⋈ ⌊avg(score)⌋>75 and score>70 (σ cnum=C(SC))
设有关系S、SC和C,试用关系代数表达式完成下列操作并优化。 S (snum,sname,age,sex) 例:(1,“李强”,23,“男”) SC (snum,cnum,score) 例:(1,“C1”,83) C(cnum,cname,teacher) 例:(“CI”,“数据库原理”,“王华”) 列出关系代数表达式,并且优化:(1)检索“何伟”同学不学课程的课程号。(2) 检索有一门课程成绩在90分以上的男同学的姓名。 (3)列出没有选修“人工智能”的学生名单。 (4)找出选修了袁老师教的所有课程的学生名单。 (5)查找每门课程成绩在70分以上并且平均成绩在75分以上的学生名单。
(1) π cnum (C) - π cnum (SC ⋈ σ sname='何伟' (S) )
(2) π sname ( σ score>90 ∧ sex='男' (S ⋈ SC) )
(3) π sname (S) - π sname ( σ cname='人工智能' (S ⋈ SC ⋈ C) )
(4) π sname ( σ teacher='袁老师' (S ⋈ SC ⋈ π cnum ( σ teacher='袁老师' (C) ) ) )
(5) π sname ( σ score>70 ∧ avg_score>75 (S ⋈ SC ⋈ ρ avg_score/avg(score) (π snum, avg(score) (SC) ) ) )
优化:
(1) 可以使用集合差运算来避免使用连接操作。
(2) 可以先使用选择操作筛选出成绩大于90分的学生,再与S关系进行连接,最后再投影出学生姓名。
(3) 可以使用集合差运算来避免使用连接操作。
(4) 可以使用子查询来避免使用连接操作。
(5) 可以使用投影操作来避免计算平均成绩时将snum也计算在内。
阅读全文