数据库原理问题

第4部分 数据库原理及应用
1、在学生选课系统中存在以下关系,学生、课程和成绩,其中每个学生可以选择多门课程,每门课程可被多名学生选修,请按照关系规范化理论及数据库设计方法,设计出选课系统中的关系模式,每个实体属性可以任意,每个实体自少给出5个属性。(20分)
(1)给出选课系统的概念设计(E-R图表示)。
(2)给出选课系统的逻辑设计(可自行选择自己熟悉的数据库产品,如SQL Server2005)。
(3)请写出列出某个指定学生所有选修课程及其成绩的SQL语句。

看看我以前作过的:
student(sno,sname,sex,age)
course(cno,cname,credit,teachno)
stu_cors(id,stuno,corsno,score)
teacher(tno,tname)
--一检索学习jsp这门课程的学生,列出学生的名字
select student.sname
from student
where sno in(select stuno from stu_cors where corsno =(select cno from course where cname='jsp'))
go

select student.sno
from student inner join stu_cors on student.sno=stu_cors.stuno
inner join course on corsno=course.cno
where course.cname='jsp'

select sname
from student
where sno in(select stu_cors.stuno
from stu_cors inner join course on stu_cors.corsno=course.cno where course.cname='jsp')

--二检索java课程有多少学生学习.
select COUNT(stuno) as 'JAVA学习人数'
from stu_cors
where corsno =(select cno from course where cname='java')

--三检索各科课程各有多少学生学习,
select course.cname,COUNT(stu_cors.stuno) as '学习人数'
from stu_cors inner join course on stu_cors.corsno=course.cno
group by course.cname

--四检索学习了jsp和servlet两门课程的学生有多少
select COUNT(sno) as 'jsp和servlet课程的学生人数'
from student
where sno in(select stu_cors.stuno
from stu_cors inner join course on stu_cors.corsno=course.cno
where course.cname='jsp') and
sno in(select stu_cors.stuno
from stu_cors inner join course on stu_cors.corsno=course.cno
where course.cname='jsp')

--五检索学习了超过两门课程的学生有多少
select corsno,COUNT(stuno) as '学习超过两门课程的学生人数'
from stu_cors
group by corsno having COUNT(stuno)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-06
这有图吗
相似回答