SQL2008数据库大作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库基础
------大作业
题目:学生信息管理系统
教学系:数学与统计学院
专业班级: 071121
学生姓名: 8888
一、系统设计
在进行系统的详细设计之前,首先应该设计好系统的模式并确定好系统的功能目标和具体页面,下面就是学生信息管理的系统设计。
从系统的设计目标上来看,学生信息管理系统的主要功能如下:(1)登录验证功能。
(2)学生信息查看功能。
(3)信息编辑删除和添加功能。
(4)成绩查看和搜索功能。
(5)课程浏览搜索功能。
(6)密码修改功能。
从系统的实现上来看,共有十七个页面,每个页面的功能实现和说明如下所示。
页面说明
下面介绍在系统设计之前数据库的需求分析和设计。
二、数据库设计
1.需求分析
学生信息管理系统是各大高校所不可缺少的一部分,随着计算机水平的快速提高,学生信息管理系统也在不断地发展和完善。管理信息系统主要包括了学生的信息管理以及课程和成绩管理,基本上实现了管理系统所必须的功能,下面介绍学生信息管理系统数据库的设计。
2.概念设计
2.1数字词典
数据词典如下表所示:
数据词典
2.2E-R图
根据以上的需求分析,E-R图如图下图所示:
E-R图如下
2.3关系模式
E-R图转换成关系模式如下:
学生(学号、姓名、性别、民族、出生年月、入学时间、班级、生源地、备注)
课程(课程号、课程名称、学时、学分、课程类型、授课老师)
成绩(ID、学号、课程号、考试成绩)
选修(学号、课程号、选修时间)
查询(学号、课程号、查询时间)
3.逻辑设计
根据前面的E-R图转换的关系模式一共有以下几个表:
Student(学生表)
Course(课程表)
Score(成绩表)
Elective(选修表)
Select(查询表)
4.数据库关系图
根据以上几个表的关系建立如下所示的关系图:
5.数据的添加、修改、删除语句的实现
数据的添加语句举例如下:
(1)向成绩表里添加学号为‘20001’学生选修了四门课的成绩。
insert score
values ('5','200001','00001','95'), ('6','200001','10001','90'),
('7','200001','10002','96'),
('8','200001','20001','85') (2)向课程表里添加一条毛慨的信息
insert course
values('20003','毛慨','60','5','2','周易')
数据的修改语句举例如下:
(1)修改学号为‘200004’学生的籍贯为湖北监利update student
set comefrom='湖北监利'
where stuid='200004'
(2)修改课程号为‘20003’的学时为64个学时update course
set coursetime='64'
where courseid='20003'
数据的删除语句举例如下:
(1)删除学号为‘200005’学生的信息
delete student
where stuid='200005'
(2)删除课程名称为‘毛慨’的信息
delete course
where coursename='毛慨'
6.查询语句简单查询、连接查询、子查询、复合条件查询语句的实现简单查询语句的举例:
(1)查询课程表中前三条的信息
select top 3* from course
(2)查询班级为‘经管2091’班的学生学号、姓名、性别和班级名称select
student.stuid,student.stuname,student.sex,student.class
from student
where class='经管2091'
(3)查询学生姓名以‘陈’开头的学生学号和班级
select student.stuid,student.class
from student
where stuname like'陈%'
(4)查询课程表的所有信息,查询结果先按课程号降序排列,再按学分升序排列
select*from course
order by courseid desc,coursexuefen asc
(5)查询学生人数总数,查询结果以学生总数为别名
select COUNT(*)as学生总数
from student
(6)查询所有学生成绩的总平均分,查询结果以平均分为别名
select AVG(score)as平均分
from score
连接查询语句的实现:
(1)查询学号为‘100001’的学生的学号、姓名、性别、班级和选修的课程号和成绩
select student.stuid,student.stuname,student.sex,
student.class,score.courseid,score.score
from student,score
where student.stuid=score.stuid and student.stuid='100001'
(2)查询学号为‘200001’学生的学号、姓名和选修的课程号及选修时间
select student.stuid,student.stuname,
elective.courseid,elective.electivetime
from student,elective
where student.stuid=elective.stuid
and student.stuid='200001'