SQL数据库大作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库基础
------大作业
题目:学生信息管理系统
教学系:数学与统计学院
专业班级: 071121
学生姓名: 8888
一、系统设计
在进行系统的详细设计之前,首先应该设计好系统的模式并确定好系统的功能目标和具体页面,下面就是学生信息管理的系统设计。
从系统的设计目标上来看,学生信息管理系统的主要功能如下:
(1)登录验证功能。
(2)学生信息查看功能。
(3)信息编辑删除和添加功能。
(4)成绩查看和搜索功能。
(5)课程浏览搜索功能。
(6)密码修改功能。
从系统的实现上来看,共有十七个页面,每个页面的功能实现和说明如下所示。
页面说明
下面介绍在系统设计之前数据库的需求分析和设计。
二、数据库设计
1.需求分析
学生信息管理系统是各大高校所不可缺少的一部分,随着计算机水平的快速提高,学生信息管理系统也在不断地发展和完善。
管理信息系统主要包括了学生的信息管理以及课程和成绩管理,基本上实现了管理系统所必须的功能,下面介绍学生信息管理系统数据库的设计。
2.概念设计
数字词典
数据词典如下表所示:
数据词典
图
根据以上的需求分析,E-R图如图下图所示:
E-R图如下
关系模式
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 ,,,
from student
where class='经管2091'
(3)查询学生姓名以‘陈’开头的学生学号和班级
select,
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,,,
,,
from student,score
where=and='100001'
(2)查询学号为‘200001’学生的学号、姓名和选修的课程号及选修时间select,,
,
from student,elective
where=
and='200001'
(3)查询学生查询了课程的姓名、班级、课程号、课程名、课程学分及查询时间
select,,
,,
,
from student,course,sel
where=and=
子查询语句的实现:
(1)查询学号为‘100001’学生所修的课程号和成绩select,from score
where stuid in
(select stuid from student where stuid='100001')
(2)查询选修了课程名为‘大学英语’的学生学号和姓名select stuid,stuname
from student where stuid in
(select stuid from score
where courseid in
(select courseid from course
where coursename='大学英语'))
(3)列出高于平均分的学生学号、姓名及班级
select stuid,stuname,class
from student where stuid in
(select stuid from score
where score>
(select AVG(score)from score
))
(4)查询比‘经管2091’班中某一学生年龄小的其他班的学生学号和姓名select stuid,stuname
from student where birthday>any
(select birthday from student
where class='经管2091')
and class<>'经管2091'
复合条件查询语句的实现:
select,,,
,,
from student,course,score
where=
and=
and score>'90'
7.视图和索引的应用
(1)视图的创建
以学生表为基础,创建一个名称为“v_经管班”学生的视图,其包含学生的学号、姓名和性别这几列,筛选记录条件为“class=‘经管2091’”create view v_经管班
as select,,
from student
where class='经管2091'
(2)视图的查看
select*from v_经管班
(3)索引的创建
为了方便查找学生信息,为‘student’创建一个基于‘stuid、stuname、class’组合列的索引stu_index
create index stu_index
on student(stuid,stuname,class)
(4)查询索引信息
exec sp_helpindex student
8.数据库备份和还原
由于学生信息管理系统只需要一个小型数据库管理,那么我们只需要每个星期一进行一次完整备份,每天进行一个差异备份,每二个小时进行一次日志备份即可。
数据库还原根据我们遇到的紧急情况进行相应的还原,这里就不再阐述。
三、系统实施
1.在Dreamweaver 8中建立一个动态站点,其目录在F盘下的学生信息管理系统。
2.动态站点建立好后,我们就需要为动态网页连接后台的SQL SERVER 2008数据库。
其步骤如下:
(1)在ODBC数据源里的系统DSN里建立一个数据源,选择SQL Server数据源,其截图如下:
(2)给新的数据源命名,并选择想要连接的数据库服务器,其截图如下图:
(3)(3)选择你想要连接的数据库名称,即系统后台需要的数据库,其截图如下:
(4)后台数据库选择好后,点击下一步开始测试数据源,其测试的相关截图如下:
(5)建立好后的SQL Server数据源如下图:
(6)单击确定后,即建立好了数据源,然后回到Dreamweaver 8,在Dreamweaver 8点击数据库+,单击数据源名称,将连接名称也命名为qq,其相关截图如下:
(7)单击确定,即Dreamweaver 8与后台数据库建立好了连接。
3.系统功能演示如下:
(1)进入系统登录页面如下:
(2)登录失败的页面如下:新用户注册的页面如下:
注册失败的页面如下:
注册成功的页面如下:
(3)登录成功的页面如下:(4)查看学生信息页面如下:增加学生信息页面如下:
选择编辑学生信息页面如下:编辑学生信息页面如下:
(5)查询学生课程信息页面如下:(6)查询学生成绩页面如下:
(7)密码修改页面如下:
密码修改成功页面如下:
到此为止,我就该学生信息管理系统的功能全部都演示完了,虽然该系统还是存在不少缺点,但至少基本上实现了管理系统所必须的功能,我一定会在以后的学习中更加努力学习数据库知识,希望将来能够为工作派上用场。