《数据库应用基础》大作业
课程名称数据库应用基础
开课学院计算机科学与技术学院指导教师姓名佘名高
学生姓名
学生专业班级
2013-2014 学年第二学期
一、假定一个数据库包括下述信息:
学生的信息:学号、姓名、单位、选修的课程名
课程的信息:课程号、课程名、学时、任课教师号
教师的信息:教师号、姓名、职称、所在单位
单位的信息:单位名、电话
1.上述实体中存在如下联系:
(1)一个学生可以选修多门课程,一门课程可以为多个学生选修
(2)一个教师可以讲授多门课程,一门课程可以有多个教师讲授
(3)一个单位可以有多个教师和学生,而一个教师或学生仅属于一个单位2.根据上述情况和假设,试作如下设计:
(1)构造满足需要的E-R图
(2)将E-R图转换为等价的关系模型并指出每个关系的关键字
学生(学号、姓名、单位、选修的课程名)
课程(课程号、课程名、学时、任课教师号)
教师(教师号、姓名、职称、单位名)
单位(单位名、电话)
选修(学号、课程号)
讲授(课程号、教师号)
所属1(学号、单位名)
所属2(教师号、单位名)
注:下划线为关键字
3.画出该数据库模式导航图。
二、假定一个学生成绩管理数据库ScoreDB包括下述信息:
学生表Student结构
课程表Course结构
课程表Course数据
学生选课表SC数据
用SQL语言完成如下操作:
1.查询全体学生的学号、姓名和所修专业。
select Sno,Sname,Sdept from Student;
2.检索年龄在19岁以上学生的学号、姓名和性别。
select Sno,Sname,Ssex from Student where Sage>19 ;
3.查询计算机软件专业男同学的学号和姓名。
select Sno,Sname from Student where Sdept is “计算机软件” ;
4.查询选修了C301课程的学生的学号和成绩,查询结果按成绩降序排序。
select Student.Sno,SC.Grade from Student,SC,Course where Student.Sno=SC.Sno and ame=”C301” order by SC.Grade desc;
5.查询每个学生及其选修课程的情况。
select Student.*,SC.* from Student ,SC,Course where Student.Sno=SC.Sno;
6.查询所有学生(姓名)选修的课程名和成绩。
select Student.Sname,ame, SC.Grade from Student ,SC,Course where
Student.Sno=SC.Sno and o=o;
7.查询所有比“李明”大的学生的姓名和年龄。
select Sname, Sage from Student where and Sage>any (select Sage from Student where Sname=”李明”);
8.求选课在3门以上并且成绩及格的学生,并统计平均成绩,按总成绩降序排列。
select Sno,avg(Grade) from SC where Grade>=60 group by Sno having count(*)>3 order by Sum(Grade) desc;
9.查询选修了"计算机网络技术"课的学生姓名。
select Student.Sname from Student,Course where Student.Sno=SC.Sno and o=o and ame=”计算机网络技术”;
10.查询选修了"计算机网络技术"的学生中成绩最高的学号。
select Student.Sno from Student where Student.Sno=SC.Sno and o=o and and SC.Grade>=all(select SC.Grade from SC where ame=”计算机网络技术”);
三、简述数据库设计中的需求分析。