求帮忙做一道数据库题。对高手来说很简单的,帮帮忙,谢谢。

设有如下3个关系:

S(Sid(学号), Sname(姓名),Age(年龄),Sex(性别)) 注:学号是主键。
SC(Sid(学号),Cid(课程号),Score(成绩)) 注:成绩以及课程号是主键。
C(CId(课程号),Cname(课程名),Teacher(教师)) 注:课程号是主键。

试用关系代数表达式表达下列查询,并且写出前4个的SQL查询语句;
(1)检索LIU老师所授课程的课程号和课程名。
(2)检索年龄大于23岁的男学生的学号和姓名。
(3)检索学号为S3学生所学课程的课程名与任课教师。
(4)检索至少选修LIU老师所授课程中一门课的女学生姓名。
(5)检索WANG同学不学的课程的课程号。
(6)检索至少选修两门课的学生学号。
(7)检索全部学生都选修的课程的课程号与课程名。
(8)检索选修课程包含LIU老师所授全部课程的学生学号。

1.πCId,Cname(σ Teacher='LIU'(C))
select cid,cname from C where Teacher = 'LIU'
2.πSid,Sname(σ Age>23∧Sex='男'(S))
select Sid,Sname from S where age>23 and sex='男'
3.πCname,Teachre(σ Sid = 'S3' (C×SC))
select c.Cid, Cname,Teachre from SC s, C c
where Sid = 'S3' and s.cid = c.cid
4.πSname(σ Sex = '女' ∧Teacher='LIU' (S×C×SC))
select Sname from S s
where exists(select 1 from SC sc,C c where c.Teacher='LIU' and sc.Cid = c.Cid and s.Sid=sc.Sid) and s.sex ='女'
5.πCId(SC)-πCId(σ Sname='WANG'(S×SC))
6.π1(σ1=4∧2≠5(SC×SC))
7.πCId,Cname(C×(πSid,Cid(SC)÷πSid(S)))
8.πSid,Cid(SC)÷ πCid(σ Teacher = 'LIU'(SC×C))
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-06-02

是要用关系代数表达式吗? 全部直接sql语句写完不行吗?

追问

不可以,所有都要用关系代数表达式,请谅解谢谢。 @_@

追答

刚学的sql ,这些题都能做。不难,但是用表达式就不会了。 变态的教学要求。

追问

还是很感谢你,我等等看有没有其他人能帮我吧

第2个回答  2012-06-02
1. select cid,cname
from C
where Teacher = 'LIU'
2. select Sid,Sname
from S
where age>23
3. select c.Cid, Cname,Teachre
from SC s, C c
where Sid = 'S3' and s.cid = c.cid
4. select Sname
from S s, SC sc, C c
where c.Teacher='LIU' and s.sex ='女' and sc.Cid = c.Cid
5. select distinct(cid)
from SC sc, S s
where s.Sname = 'WANG' and sc.Sid = s.Sid
6. select s.Sid, count(cid)
from SC sc, S s
where s.Sid = sc.Sid
group by sid
having count(cid)>=2
7.

8. select s.sid
from SC sc, S s, C c
where s.Teacher = 'LIU' and sc.sid = s.sid and c.cid= sc.cid追问

所有都要用关系代数表达式,前四个需带有SQL语句,请谅解谢谢。 @_@

追答

那不是也很简单么。。。selet 就是 π ,join 就是一个▷◁ and 就是∧, or 就是∨
where 的地方就是σ

追问

是同学叫我帮他提问的,我不懂这些,您能具体把这些写出来吗? 分全部给你,非常感谢。

第3个回答  2012-06-02
网络真好啊..学生都不用做功课了..直接在网上等答案啊...
第4个回答  2012-06-02
围观
相似回答