数据库第四次作业
学号:201328015029042
姓名:黄燕
题目:设计一个学籍管理小系统。系统包含以下信息:学号、学生姓
名、性别、出生日、学生所在系名、学生所在系号、课程名、课程号、
课程类型(必修、选修、任选)、学分、任课教师姓名、教师编号、教
师职称、教师所属系名、系号、学生所选课程号、学生所选上课教师
姓名、选课成绩。
要求 1:(1)用 E-R 图表示概念模型;
答:该学籍管理小系统的 E-R 图如下:
(2)设计出合理的关系模式:给出表名、列名、数据类型;指出每个关
系的键和外键(如果有的话)。
答:学生表(学号,姓名,性别,出生日期,系号)
课程表(课程号,课程名,学分,课程类型)
教师表(教师编号,教师姓名,职称,系号)
系(系号,系名)
授课表(教师编号,课程名称)
选课表(课程号,学号,教师编号,选课成绩)
即:student(Sno,Sname,Ssex,Sbirth,Dno)
course(Cno,Cname,Credit,Ctype)
teacher(Tno,Tname,Profess,Dno)
department(Dno,Dname)
teach(Tno,Cno)
selectcourse(Cno,Sno,Tno,Grade)
以上表的在数据库中的设计如下:
学生表(student):
课程表(course):
教师表(teacher):
系(department):
授课表(teach):
选课表(selectcourse):
以上关系中有下划线的字段即为关系的主键;其中学生表关系中
的“系号”字段为该表的外键,课程表关系中无外键,教师表关系中
的“系号”字段为该表的外键,系表中无外键,授课表关系中的“教
师编号”字段为该表的外键,选课表关系中的“教师编号”字段为该
表的外键。
要求 2: 完成在表上的操作 (用 SQL 的 SELECT 语句):
1.给出学生名,查询学生所选的所有课程名、成绩,累计学分。
答:假设给出的学生名为“李冰冰”,则查询该学生所选的所有课程名、
成绩,累计学分操作如下:
2.给出课程名,查询学生的平均成绩
答:假设给出的课程名是“计算机视觉”,则查询该课程学生的平均成
绩操作如下:
3.各门课按平均成绩排序
答:数据表中各门课程按照平均成绩从高到低排序的操作如下:
4.显示所有的课程名和讲课教师名
答:查询所有课程名及讲课教师名操作如下:
要求 3:(1)把要求 1 的关系模式用具体数据库软件实现,并拷屏。
(2)把要求 2 内容在具体数据库软件上实现,并将实验结果拷贝到作业
当中。
答:(1)具体在数据库软件上实现的截图详见要求 1 的答案解答,另
外,根据所设计的关系模型之间的关系视图如下:
(2)本次数据库关系是在数据库软件 SQL(2005)上实现的,要求 2
的实验结果,已拷贝截图在要求 2 的回答详解处。
实验总结:本实验是根据老师提供的“实验数据.xls”并在 SQL sever
2005 软件上实现的。所以实验的设计与实现大部分是依据所给数据进
行的,(例如实验数据学生的学号,教师编号,课程编号等都是一些简
单的 2 位数以内的整数,所以在设计数据库字段的数据类型就直接定
义为 int 型)整个数据库的设计如有不足之处,希望老师您能给出批评
及指导意见。