学生成绩管理数据库系统设计数据库实验大作业.docx
《学生成绩管理数据库系统设计数据库实验大作业.docx》由会员分享,可在线阅读,更多相关《学生成绩管理数据库系统设计数据库实验大作业.docx(18页珍藏版)》请在冰豆网上搜索。
学生成绩管理数据库系统设计数据库实验大作业
学生成绩管理数据库
系统设计
课程:
数据库安全实验
*********
学院:
计算机学院
专业:
信息安全
学号:
*************
一、需求分析
1.1编写目的
本产品实现了一个基于mySQL数据库下的学生信息查询管理系统,而本需求分析报告的编写目的是为了提供一个由用户(学生、教师)和开发者双方共同确定的开发系统的业务需求目标,并对本系统所要实现的软件功能做一个全面的规格描述。
同时,在用户业务需求的基础上,经过需求分析和数据整理,以向整个开发期提供关于软件系统的业务和数据的技术信息和整体描述,做为软件开发的技术基础,也作为系统设计、实现的目标和测试以及维护阶段的依据。
本软件需求分析报告的适用读者为:
软件用户(学生、教师)、软件需求分析人员、软件设计及开发者和相关的测试人员。
1.2信息需求
随着科学技术的不断提高,计算机科学飞速发展,其强大的功能已为人们深刻认识,它已经进入人类社会的各个领域并发挥着越来越重要的作用,在学籍管理方面,各种学生信息管理系统也在不断的涌现出来,然而目前在我国仍有部分学校在应用一些旧的、功能单一而且效率低下的系统,甚至还有一些偏远学校的学生信息管理还在依靠人工进行管理和操作,这些管理方式存在着许多缺点,如:
效率低,密保性差,另外时间一长,将产生大量的文件和数据,其中有些是冗余或者针对同一目的的数据不相吻合,这对于查找、更新和维护文件等管理工作带来了不少困难,同时也跟不上信息时代高速、快捷的要求,严重影响了消息的传播速度。
然而现今学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息也成倍增长,人工管理信息的缺点日渐突出,面对庞大的学生信息量,如何利用现代信息技术使其拥有快捷、高效的适应能力已成为当务之急。
正因为如此,学生信息管理系统成为了教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。
作为计算机应用的一部分,使用计算机对学生信息进行管理,具有着手工管理所无法比拟的优点。
例如:
检索迅速。
查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大的提高学生信息管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件,由此看来开发这样一套管理软件是很有必要的。
基于以上开发背景,我们小组设计了一个高效的学生成绩管理系统,能够储存历届学生的成绩、学生和老师的个人信息,并且能够实现管理员角色的管理(对于数据库中的数据进行增删改)。
因此系统只需要几个管理人员登录系统录入成绩即可,老师和学生均可以方便的查询信息,节省了大量的人力并且保证了高效率和低出错率。
二、系统概述
2.1系统功能框架
该系统的功能框架如下:
信息管理:
查询 、添加、删除、修改学生信息。
成绩管理:
查询 、添加、删除、修改学生成绩。
系统管理:
保存各类用户对象的帐号信息、登录验证,维护系统数据字典、添加管理员、删除管理员、修改管理员信息。
2.2运行环境
本系统服务器的运行环境如下:
操作系统:
Windows XP 以上
服务器:
IIS5.0以上
数据库:
SQL Server 2005
硬件配置:
CPU:
P41.8GHz 内存:
256MB以上
2.3用户特点
使用本系统的用户包括:
系统管理员(admin)、教师和学生。
系统管理员是这个系统的root用户,他应该要拥有所有权限以便完成他管理者的角色,所以应该能够有学生信息表,成绩信息表和教师信息表的操作权限,另一方面他应该能够管理普通用户的帐号,实现自主访问控制。
而教师应该可以对自己所授课程相关的信息有着一定的控制权限,例如登记成绩,增加、修改选课信息等,对于跟自己无关的信息应当对其隐藏。
在此系统中的学生应该只有查询权限,以防各种信息被恶意篡改。
所以在此系统中,系统管理员要拥有几乎所有的权限,需要完成对系统的管理和维护,而教师和学生是受限户,其权限受限于自身,不能修改查看与自己无关的数据信息。
三、功能描述
本系统的软件流程图如下:
3.1需求分解
按照不同角色用户对系统需求的不同,系统将需求分解成三个模块,学生模块,教师模块和管理员模块:
1、系统管理员模块
系统管理员需要能够在本系统上完成如下操作:
1、管理所有课程:
増、删、改、查所有课程的信息2、管理所有教师:
増、删、改、查所有教师的信息3、管理所有学生:
増、删、改、查所有课程以及课程成绩信息4、管理所有老师和学生的账号信息:
増、删、改、查所有帐号的信息。
2、教师模块
教师需要能够在本系统上完成的操作有:
1、管理自己所教授课程:
增、删、改、查所授课程的学生信息(包括成绩信息)2、查询自己的教师信息
3、学生模块
学生需要能够在本系统上完成的操作:
查询自己的学生信息(包括成绩和选课)。
3.2功能分解
通过前面描述的系统的功能框架。
我们将系统分解成三个子功能:
系统管理、信息管理和成绩管理:
1、系统管理
功能
保存各类用户对象的帐号信息、登录验证,维护系统数据字典、添加管理员、修改管理员信息。
业务流程
(1)负责对登录用户的用户名、密码进行验证,若为未注册用户或密码错误则提示错误信息并拒绝访问。
(2)若此用户为合法用户并通过了验证,则判断该帐号属于哪类用户,并进入对应的页面。
(3)若此用户是管理员用户,则可以添加新的管理员用户或修改已存在的管理员信息表。
输入
用户的用户名、密码或是对管理员信息的修改命令
界面
标准的登录界面
信息修改界面
算法
调用数据库的各类用户表,通过SELECT语句在用户表的查询结果来验证登录。
通过ALTER等语句对管理员表进行修改
输出
验证结果(通过还是未通过),并进入对应的界面。
更改后的管理员用户表。
备注
登录验证的密码不能是明码存储,应该md5加密之后存储在表中。
2、信息管理系统
功能
实现对学生、教师及选课信息的存储,并且可以查询 、添加、删除、修改学生信息。
业务流程
(1)判断用户类型,给不同类型用户分配不同的信息表操作权限
(2)若是管理员用户,则对学生信息表、教师信息表和选课表拥有所有操作权限,通过查询、修改等语句将对数据库操作的结果显示在界面上或写入数据库;若是教师用户,则只能对任课的选课表进行查询、修改操作并且可以查询自己的教职工信息,将结果显示在界面上;若是学生,仅能在界面上查询自己的学生信息。
(3)若对无权限表进行操作,显示错误信息并拒绝操作。
输入
查询框输入各种查询条件,编辑界面输入修改信息
界面
算法
调用数据库的各类用户表,查询操作就通过各种语句将结果显示在界面上,修改操作就将界面上的操作结果写入到数据库中
输出
查询结果、数据库表格内容变化
备注
实现对各类信息的存储和管理。
3、成绩管理系统
功能
实现学生各门课程成绩的存储,并且对这些信息进行查询 、添加、删除、修改操作。
业务流程
(1)判断用户类型,给不同类型用户分配不同的成绩表操作权限
(2)若是管理员用户,则对选课表拥有所有操作权限,通过查询、修改成绩等语句将对数据库操作的结果显示在界面上或写入数据库;若是教师用户,则只能对任课的选课表进行查询(将成绩单显示在界面上)、修改(将成绩录入数据库);若是学生,仅能在界面上查询自己各科的成绩。
(3)若对无权限表进行操作,显示错误信息并拒绝操作。
输入
查询框输入各种查询条件,编辑界面输入修改信息
界面
算法
调用数据库的选课表,查询操作就通过各种语句将成绩结果显示在界面上,修改操作就将界面上成绩信息写入到数据库中
输出
查询结果、数据库表格内容变化
备注
实现对学生成绩的存储和管理。
3.3信息流程图
验证可选设置否
是
四、数据库的逻辑结构设计
逻辑结构是独立于任何一种数据模型的信息结构。
逻辑结构的任务是把概念结构设计阶段设计好的基本E-R图转化为宜选用的DBMS所支持的数据模型相符合的逻辑结构,并对其进行优化。
E-R图向关系模型转化要解决的问题是如何将实体型和实体间的联系转化为关系模式,如何确定这些关系模式的属性和码。
设计学生成绩管理数据库,包括课程、学生、教师、成绩四个关系, 其关系模式中对每个实体定义的属性如下:
课程信息表(课程号,课程名,课程人数,任课教师)
学生信息表 (学号,姓名,性别,院系,年龄,籍贯)
教师信息表(教师号,姓名,所在院系)
学生选课表(学号,课程号,平时成绩,期末成绩,总成绩)
管理员表(用户名,登录密码)
学生登录表(用户名,登录密码)
教师登录表(用户名,登录密码)
TABLEadmin(管理员帐号表)
属性
类型
长度
是否为空
默认值
主键
username
VARCHAR
20
NOTNULL
NULL
√
password
VARCHAR
30
NOTNULL
\
TABLEtealogin(教师帐号表)
属性
类型
长度
是否为空
默认值
主键
外键
username
VARCHAR
20
NOTNULL
NULL
√
tea_info
password
VARCHAR
30
NOTNULL
\
TABLEstulogin(学生帐号表)
属性
类型
长度
是否为空
默认值
主键
外键
username
VARCHAR
20
NOTNULL
NULL
√
stu_info
password
VARCHAR
30
NOTNULL
\
TABLEstu_info(学生信息表)
属性
类型
长度
是否为空
默认值
主键
sno
VARCHAR
20
NOTNULL
NULL
√
sname
VARCHAR
30
可为空
\
age
NUMERIC
2
可为空
NULL
sex
VARCHAR
2
可为空
NULL
dept
VARCHAR
20
可为空
NULL
place
VARCHAR
20
可为空
NULL
TABLEtea_info(教师信息表)
属性
类型
长度
是否为空
默认值
主键
tno
VARCHAR
20
NOTNULL
NULL
√
tname
VARCHAR
30
可为空
\
dept
VARCHAR
20
可为空
NULL
TABLEcourse_info(课程信息表)
属性
类型
长度
是否为空
默认值
主键
cno
VARCHAR
20
NOTNULL
NULL
√
cname
VARCHAR
30
可为空
\
tname
VARCHAR
30
可为空
NULL
stu_num
NUMERIC
10
NOTNULL
NULL
TABLEstu_course(学生选课表)
属性
类型
长度
是否为空
默认值
主键
外键
sno
VARCHAR
20
NOTNULL
NULL
√
stu_info
cno
VARCHAR
20
NOTNULL
NULL
√
Course_info
usual_grade
int
\
可为空
NULL
final_grade
int
\
可为空
NULL
total_mark
int
\
可为空
NULL
五、数据库实施
5.1创建数据库
createdatabasestudent
5.1.1创建表
#用户名、密码
CREATETABLEIFNOTEXISTSadmin(
usernamevarchar(20)COMMENT='用户名',
passwordvarchar(30)COMMENT='登录密码',
PRIMARYKEY(username)
)DEFAULTCHARSET=utf8COMMENT='管理员表';
#用户名、密码
CREATETABLEIFNOTEXISTStealogin(
usernamevarchar(20)COMMENT='用户名',
passwordvarchar(30)COMMENT='登录密码',
PRIMARYKEY(username),
FOREIGNKEY(username)REFERENCEStea_info
)DEFAULTCHARSET=utf8COMMENT='教师登录表';
#用户名、密码
CREATETABLEIFNOTEXISTSstulogin(
usernamevarchar(20)COMMENT='用户名',
passwordvarchar(30)COMMENT='登录密码',
PRIMARYKEY(username),
FOREIGNKEY(username)REFERENCESstu_info
)DEFAULTCHARSET=utf8COMMENT='学生登录表';
#学号、姓名、年龄、性别、院系、籍贯
CREATETABLEIFNOTEXISTSstu_info(
snovarchar(20)COMMENT='学号',
snamevarchar(30)COMMENT='姓名',
agenumeric
(2)COMMENT='年龄',
sexvarchar
(2)COMMENT='性别',
deptvarchar(20)COMMENT='院系',
placevarchar(20)COMMENT='籍贯',
PRIMARYKEY(sno)
)DEFAULTCHARSET=utf8COMMENT='学生信息表';
#学工号、姓名、院系
CREATETABLEIFNOTEXISTStea_info(
tnovarchar(20)COMMENT='教师工号',
tnamevarchar(30)COMMENT='姓名',
deptvarchar(20)COMMENT='院系',
PRIMARYKEY(tno)
)DEFAULTCHARSET=utf8COMMENT='教师信息表';
#课程号、课程名、任课教师
CREATETABLEIFNOTEXISTScourse_info(
cnovarchar(20)COMMENT='课程号',
cnamevarchar(30)COMMENT='课程名',
tnamevarchar(30)COMMENT='任课教师',
student_numvarchar(10)COMMENT='课程人数',
PRIMARYKEY(cno)
)DEFAULTCHARSET=utf8COMMENT='课程信息表';
#学号、课程号、平时成绩、期末成绩、总成绩
CREATETABLEIFNOTEXISTSstu_course(
snovarchar(20)COMMENT='学号',
cnovarchar(20)COMMENT='课程号',
usual_gradeintCOMMENT='平时成绩',
final_gradeintCOMMENT='期末成绩',
gradeintCOMMENT='总成绩',
PRIMARYKEY(sno,cno),
FOREIGNKEY(sno)REFERENCESstu_info,
FOREIGNKEY(cno)REFERENCEScourse_info
)DEFAULTCHARSET=utf8COMMENT='选课信息表';
#检测数据插入
INSERTINTOadminVALUES('2013302550010',MD5('123'));
INSERTINTOadminVALUES('2013302550011',MD5('123'));
INSERTINTOadminVALUES('2013302550012',MD5('123'));
INSERTINTOtealoginVALUES('2013302540010',MD5('123'));
INSERTINTOtealoginVALUES('2013302540011',MD5('123'));
INSERTINTOtealoginVALUES('2013302540012',MD5('123'));
INSERTINTOstuloginVALUES('2013302530010',MD5('123'));
INSERTINTOstuloginVALUES('2013302530011',MD5('123'));
INSERTINTOstuloginVALUES('2013302530012',MD5('123'));
INSERTINTOtea_infoVALUES('2013302540010','赵一','计算机学院');
INSERTINTOtea_infoVALUES('2013302540011','赵二','经济与管理学院');
INSERTINTOtea_infoVALUES('2013302540012','赵三','物理学院');
INSERTINTOstu_infoVALUES('2013302530010','张一','20','男','计算机学院','湖北');
INSERTINTOstu_infoVALUES('2013302530011','张二','21','女','经济与管理学院','湖南');
INSERTINTOstu_infoVALUES('2013302530012','张三','22','男','物理学院','福建');
INSERTINTOcourse_infoVALUES('201501','数据库','赵一');
INSERTINTOcourse_infoVALUES('201502','C语言程序设计','赵二');
INSERTINTOcourse_infoVALUES('201503','计算机网络','赵一');
INSERTINTOstu_courseVALUES('2013302530012','201501','90','90','90');
INSERTINTOstu_courseVALUES('2013302530012','201502','100','90','94');
INSERTINTOstu_courseVALUES('2013302530012','201503','90','100','96');
六、系统实现
6.1界面设计
6.1.1系统登陆页面
可选择登陆角色:
学生,老师或管理员
6.1.2管理员登陆界面
进入管理员操作页面后,可以选择管理课程、管理教师或管理学生
1)管理学生:
2)管理教师
3)管理课程:
添加课程:
6.1.3学生登陆界面查看分数及课程
6.1.4教师登陆界面
可查看学生平时成绩、期末成绩和总成绩
还可以根据分数区间、课程号和总成绩进行条件查询:
教师改分与添加成绩融合,使操作更加简单:
七、参考资料
《软件工程》清华大学出版社
《数据库原理与技术(Oracle版)》清华大学出版社
html、jsp、php