SQL数据库大作业.docx
《SQL数据库大作业.docx》由会员分享,可在线阅读,更多相关《SQL数据库大作业.docx(21页珍藏版)》请在冰豆网上搜索。
![SQL数据库大作业.docx](https://file1.bdocx.com/fileroot1/2023-2/9/ec105889-878c-4747-ab24-54768cc3b942/ec105889-878c-4747-ab24-54768cc3b9421.gif)
SQL数据库大作业
数据库基础
------大作业
题目:
学生信息管理系统
教学系:
数学与统计学院
专业班级:
071121
学生姓名:
8888
一、系统设计
在进行系统具体设计之前,首先应该设计好系统模式并确定好系统功效目标和具体页面,下面就是学生信息管理系统设计。
从系统设计目标上来看,学生信息管理系统关键功效以下:
(1)登录验证功效。
(2)学生信息查看功效。
(3)信息编辑删除和添加功效。
(4)成绩查看和搜索功效。
(5)课程浏览搜索功效。
(6)密码修改功效。
从系统实现上来看,共有十七个页面,每个页面功效实现和说明以下所表示。
页面说明
页面名称
说明
Login.asp
登录页面,用来验证用户
Fail.asp
登录失败页面
Zhuce.asp
新用户注册页面
Newlog.asp
新用户注册成功页面
Failzhuce.asp
新用户注册失败页面
Zhuye.asp
系统首页面,说明关键实现功效
Student.asp
学生相关信息页面,查看学生信息
Addstudent.asp
学生添加页面,实现学生添加
Addstudentsuccess.asp
添加学生成功页面
Editstudent.asp
学生编辑选择页面,选择需要修改学生号
Editstudent1.asp
学生编辑页面,实现学生信息修改
Editstudentsuccess.asp
学生信息修改成功页面
Quanxian.asp
没有权限时显示页面
Course.asp
实现课程信息浏览和搜索功效页面
Score.asp
实现学生成绩浏览和查询功效页面
Modify.asp
用户修改密码功效页面
Modifysuccess.asp
用户修改密码成功页面
下面介绍在系统设计之前数据库需求分析和设计。
二、数据库设计
1.需求分析
学生信息管理系统是各大高校所不可缺乏一部分,伴随计算机水平快速提升,学生信息管理系统也在不停地发展和完善。
管理信息系统关键包含了学生信息管理以及课程和成绩管理,基础上实现了管理系统所必需功效,下面介绍学生信息管理系统数据库设计。
2.概念设计
2.1数字词典
数据词典以下表所表示:
数据词典
字段名
数据名
数据描述
Userid
用户编号
文本,10
Username
用户名
文本,10
Userpwd
用户密码
文本,10
Authlevel
用户等级
文本,10
Stuid
学生编号
文本,10
Stuname
学生姓名
文本,10
Sex
性别
文本,4
Minzu
民族
文本,10
Birthday
出生年月
文本,10
Intime
入课时间
文本,10
Class
班级
文本,10
Comefrom
生源地
文本,20
Beizhu
备注
文本,50
Courseid
课程号
文本,10
Couresename
课程名称
文本,10
Couresetime
课程课时
文本,10
Xuefen
课程学分
文本,10
Coursetype
课程类型
文本,10
Teacher
讲课老师
文本,10
Id
ID
文本,10
Score
成绩
文本,9
2.2E-R图
依据以上需求分析,E-R图如图下图所表示:
E-R图以下
2.3关系模式
E-R图转换成关系模式以下:
学生(学号、姓名、性别、民族、出生年月、入课时间、班级、生源地、备注)
课程(课程号、课程名称、课时、学分、课程类型、讲课老师)
成绩(ID、学号、课程号、考试成绩)
选修(学号、课程号、选修时间)
查询(学号、课程号、查询时间)
3.逻辑设计
依据前面E-R图转换关系模式一共有以下多个表:
Student(学生表)
Course(课程表)
Score(成绩表)
Elective(选修表)
Select(查询表)
4.数据库关系图
依据以上多个表关系建立以下所表示关系图:
5.数据添加、修改、删除语句实现
数据添加语句举例以下:
(1)向成绩表里添加学号为‘1’学生选修了四门课成绩。
insertscore
values('5','01','00001','95'),
('6','01','10001','90'),
('7','01','10002','96'),
('8','01','1','85')
(2)向课程表里添加一条毛慨信息
insertcourse
values('3','毛慨','60','5','2','周易')
数据修改语句举例以下:
(1)修改学号为‘04’学生籍贯为湖北监利
updatestudent
setcomefrom='湖北监利'
wherestuid='04'
(2)修改课程号为‘3’课时为64个课时
updatecourse
setcoursetime='64'
wherecourseid='3'
数据删除语句举例以下:
(1)删除学号为‘05’学生信息
deletestudent
wherestuid='05'
(2)删除课程名称为‘毛慨’信息
deletecourse
wherecoursename='毛慨'
6.查询语句简单查询、连接查询、子查询、复合条件查询语句实现
简单查询语句举例:
(1)查询课程表中前三条信息
selecttop3*fromcourse
(2)查询班级为‘经管2091’班学生学号、姓名、性别和班级名称
selectstudent.stuid,student.stuname,student.sex,student.class
fromstudent
whereclass='经管2091'
(3)查询学生姓名以‘陈’开头学生学号和班级
selectstudent.stuid,student.class
fromstudent
wherestunamelike'陈%'
(4)查询课程表全部信息,查询结果先按课程号降序排列,再按学分升序排列
select*fromcourse
orderbycourseiddesc,coursexuefenasc
(5)查询学生人数总数,查询结果以学生总数为别名
selectCOUNT(*)as学生总数
fromstudent
(6)查询全部学生成绩总平均分,查询结果以平均分为别名
selectAVG(score)as平均分
fromscore
连接查询语句实现:
(1)查询学号为‘100001’学生学号、姓名、性别、班级和选修课程号和成绩
selectstudent.stuid,student.stuname,student.sex,
student.class,score.courseid,score.score
fromstudent,score
wherestudent.stuid=score.stuidandstudent.stuid='100001'
(2)查询学号为‘01’学生学号、姓名和选修课程号及选修时间
selectstudent.stuid,student.stuname,
elective.courseid,elective.electivetime
fromstudent,elective
wherestudent.stuid=elective.stuid
andstudent.stuid='01'
(3)查询学生查询了课程姓名、班级、课程号、课程名、课程学分及查询时间
selectstudent.stuname,student.class,
course.courseid,course.coursename,
course.coursexuefen,sel.seltime
fromstudent,course,sel
wherestudent.stuid=sel.stuidandsel.courseid=course.courseid
子查询语句实现:
(1)查询学号为‘100001’学生所修课程号和成绩
selectscore.courseid,score.scorefromscore
wherestuidin
(selectstuidfromstudentwherestuid='100001')
(2)查询选修了课程名为‘大学英语’学生学号和姓名
selectstuid,stuname
fromstudentwherestuidin
(selectstuidfromscore
wherecourseidin
(selectcourseidfromcourse
wherecoursename='大学英语'))
(3)列出高于平均分学生学号、姓名及班级
selectstuid,stuname,class
fromstudentwherestuidin
(selectstuidfromscore
wherescore>
(selectAVG(score)fromscore
))
(4)查询比‘经管2091’班中某一学生年纪小其她班学生学号和姓名
selectstuid,stuname
fromstudentwherebirthday>any
(selectbirthdayfromstudent
whereclass='经管2091')
andclass<>'经管2091'
复合条件查询语句实现:
selectstudent.stuid,student.stuname,student.class,
course.courseid,course.coursename,score.score
fromstudent,course,score
wherestudent.stuid=score.stuid
andscore.courseid=course.courseid
andscore>'90'
7.视图和索引应用
(1)视图创建
以学生表为基础,创建一个名称为“v_经管班”学生视图,其包含学生学号、姓名和性别这几列,筛选统计条件为“class=‘经管2091’”
createviewv_经管班
asselectstudent.stuid,student.stuname,student.sex
fromstudent
whereclass='经管2091'
(2)视图查看
select*fromv_经管班
(3)索引创建
为了方便查找学生信息,为‘student’创建一个基于‘stuid、stuname、class’组合列索引stu_index
createindexstu_index
onstudent(stuid,stuname,class)
(4)查询索引信息
execsp_helpindexstudent
8.数据库备份和还原
因为学生信息管理系统只需要一个小型数据库管理,那么我们只需要每个星期一进行一次完整备份,天天进行一个差异备份,每二个小时进行一次日志备份即可。
数据库还原依据我们碰到紧急情况进行对应还原,这里就不再叙述。
三、系统实施
1.在Dreamweaver8中建立一个动态站点,其目录在F盘下学生信息管理系统。
2.动态站点建立好后,我们就需要为动态网页连接后台SQLSERVER数据库。
其步骤以下:
(1)在ODBC数据源里系统DSN里建立一个数据源,选择SQLServer数据源,其截图以下:
(2)给新数据源命名,并选择想要连接数据库服务器,其截图以下图:
(3)
(3)选择你想要连接数据库名称,即系统后台需要数据库,其截图以下:
(4)后台数据库选择好后,点击下一步开始测试数据源,其测试相关截图以下:
(5)建立好后SQLServer数据源以下图:
(6)单击确定后,即建立好了数据源,然后回到Dreamweaver8,在Dreamweaver8点击数据库+,单击数据源名称,将连接名称也命名为qq,其相关截图以下:
(7)单击确定,即Dreamweaver8与后台数据库建立好了连接。
3.系统功效演示以下:
(1)进入系统登录页面以下:
(2)登录失败页面以下:
新用户注册页面以下:
注册失败页面以下:
注册成功页面以下:
(3)登录成功页面以下:
(4)查看学生信息页面以下:
增加学生信息页面以下:
选择编辑学生信息页面以下:
编辑学生信息页面以下:
(5)查询学生课程信息页面以下:
(6)查询学生成绩页面以下:
(7)密码修改页面以下:
密码修改成功页面以下:
到此为止,我就该学生信息管理系统功效全部都演示完了,即使该系统还是存在不少缺点,但最少基础上实现了管理系统所必需功效,我一定会在以后学习中愈加努力学习数据库知识,期望未来能够为工作派上用场。