资源描述
学生成绩管理数据库
系统设计
课程:数据库安全试验
姓名: 吴双可
学院: 计算机学院
专业: 信息安全
学号:
一、需求分析
1.1 编写目标
本产品实现了一个基于mySQL数据库下学生信息查询管理系统,而本需求分析汇报编写目标是为了提供一个由用户(学生、老师)和开发者双方共同确定开发系统业务需求目标,并对本系统所要实现软件功效做一个全方面规格描述。
同时,在用户业务需求基础上,经过需求分析和数据整理,以向整个开发期提供相关软件系统业务和数据技术信息和整体描述,做为软件开发技术基础,也作为系统设计、实现目标和测试和维护阶段依据。
本软件需求分析汇报适用读者为:软件用户(学生、老师)、软件需求分析人员、软件设计及开发者和相关测试人员。
1.2 信息需求
伴随科学技术不停提升,计算机科学飞速发展,其强大功效已为大家深刻认识,它已经进入人类社会各个领域并发挥着越来越关键作用,在学籍管理方面,多种学生信息管理系统也在不停涌现出来,然而现在在中国仍有部分学校在应用部分旧、功效单一而且效率低下系统,甚至还有部分偏远学校学生信息管理还在依靠人工进行管理和操作,这些管理方法存在着很多缺点,如:效率低,密保性差,另外时间一长,将产生大量文件和数据,其中有些是冗余或针对同一目标数据不相吻合,这对于查找、更新和维护文件等管理工作带来了不少困难,同时也跟不上信息时代高速、快捷要求,严重影响了消息传输速度。然而现今学校规模不停扩大,学生数量急剧增加,相关学生多种信息也成倍增加,人工管理信息缺点日渐突出,面对庞大学生信息量,怎样利用现代信息技术使其拥有快捷、高效适应能力已成为当务之急。
正因为如此,学生信息管理系统成为了教育单位不可缺乏部分,它内容对于学校决议者和管理者来说全部至关关键,所以学生信息管理系统应该能够为用户提供充足信息和快捷查询手段。作为计算机应用一部分,使用计算机对学生信息进行管理,含有着手工管理所无法比拟优点。比如:检索快速。查找方便、可靠性高、存放量大、保密性好、寿命长、成本低等。这些优点能够极大提升学生信息管理效率,也是企业科学化、正规化管理,和世界接轨关键条件,由此看来开发这么一套管理软件是很有必需。
基于以上开发背景,我们小组设计了一个高效学生成绩管理系统,能够储存历届学生成绩、学生和老师个人信息,而且能够实现管理员角色管理(对于数据库中数据进行增删改)。所以系统只需要多个管理人员登录系统录入成绩即可,老师和学生均能够方便查询信息,节省了大量人力而且确保了高效率和低犯错率。
二、系统概述
2.1 系统功效框架
该系统功效框架以下:
信息管理:查询 、添加、删除、修改学生信息。
成绩管理:查询 、添加、删除、修改学生成绩。
系统管理:保留各类用户对象帐号信息、登录验证,维护系统数据字典、添加管理员、删除管理员、修改管理员信息。
2.2 运行环境
本系统服务器运行环境以下:
操作系统:Windows XP 以上
服务器:IIS5.0以上
数据库:SQL Server
硬件配置: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图向关系模型转化要处理问题是怎样将实体型和实体间联络转化为关系模式,怎样确定这些关系模式属性和码。
设计学生成绩管理数据库,包含课程、学生、老师、成绩四个关系, 其关系模式中对每个实体定义属性以下:
课程信息表(课程号,课程名,课程人数,任课老师)
学生信息表 (学号,姓名,性别,院系,年纪,籍贯)
老师信息表(老师号,姓名,所在院系)
学生选课表(学号,课程号,平时成绩,期末成绩,总成绩)
管理员表(用户名,登录密码)
学生登录表(用户名,登录密码)
老师登录表(用户名,登录密码)
TABLE admin(管理员帐号表)
属性
类型
长度
是否为空
默认值
主键
username
VARCHAR
20
NOT NULL
NULL
√
password
VARCHAR
30
NOT NULL
\
TABLE tealogin (老师帐号表)
属性
类型
长度
是否为空
默认值
主键
外键
username
VARCHAR
20
NOT NULL
NULL
√
tea_info
password
VARCHAR
30
NOT NULL
\
TABLE stulogin (学生帐号表)
属性
类型
长度
是否为空
默认值
主键
外键
username
VARCHAR
20
NOT NULL
NULL
√
stu_info
password
VARCHAR
30
NOT NULL
\
TABLE stu_info (学生信息表)
属性
类型
长度
是否为空
默认值
主键
sno
VARCHAR
20
NOT NULL
NULL
√
sname
VARCHAR
30
可为空
\
age
NUMERIC
2
可为空
NULL
sex
VARCHAR
2
可为空
NULL
dept
VARCHAR
20
可为空
NULL
place
VARCHAR
20
可为空
NULL
TABLE tea_info (老师信息表)
属性
类型
长度
是否为空
默认值
主键
tno
VARCHAR
20
NOT NULL
NULL
√
tname
VARCHAR
30
可为空
\
dept
VARCHAR
20
可为空
NULL
TABLE course_info (课程信息表)
属性
类型
长度
是否为空
默认值
主键
cno
VARCHAR
20
NOT NULL
NULL
√
cname
VARCHAR
30
可为空
\
tname
VARCHAR
30
可为空
NULL
stu_num
NUMERIC
10
NOT NULL
NULL
TABLE stu_course (学生选课表)
属性
类型
长度
是否为空
默认值
主键
外键
sno
VARCHAR
20
NOT NULL
NULL
√
stu_info
cno
VARCHAR
20
NOT NULL
NULL
√
Course_info
usual_grade
int
\
可为空
NULL
final_grade
int
\
可为空
NULL
total_mark
int
\
可为空
NULL
五、数据库实施
5.1 创建数据库
create database student
5.1.1 创建表
#用户名、密码
CREATE TABLE IF NOT EXISTS admin (
username varchar(20) COMMENT='用户名',
password varchar(30) COMMENT='登录密码',
PRIMARY KEY(username)
) DEFAULT CHARSET=utf8 COMMENT='管理员表';
#用户名、密码
CREATE TABLE IF NOT EXISTS tealogin (
username varchar(20) COMMENT='用户名',
password varchar(30) COMMENT='登录密码',
PRIMARY KEY(username),
FOREIGN KEY(username) REFERENCES tea_info
) DEFAULT CHARSET=utf8 COMMENT='老师登录表';
#用户名、密码
CREATE TABLE IF NOT EXISTS stulogin (
username varchar(20) COMMENT='用户名',
password varchar(30) COMMENT='登录密码',
PRIMARY KEY(username),
FOREIGN KEY(username) REFERENCES stu_info
) DEFAULT CHARSET=utf8 COMMENT='学生登录表';
#学号、姓名、年纪、性别、院系、籍贯
CREATE TABLE IF NOT EXISTS stu_info (
sno varchar(20) COMMENT='学号',
sname varchar(30) COMMENT='姓名',
age numeric(2) COMMENT='年纪',
sex varchar(2) COMMENT='性别',
dept varchar(20) COMMENT='院系',
place varchar(20) COMMENT='籍贯',
PRIMARY KEY(sno)
) DEFAULT CHARSET=utf8 COMMENT='学生信息表';
#学工号、姓名、院系
CREATE TABLE IF NOT EXISTS tea_info (
tno varchar(20) COMMENT='老师工号',
tname varchar(30) COMMENT='姓名',
dept varchar(20) COMMENT='院系',
PRIMARY KEY(tno)
) DEFAULT CHARSET=utf8 COMMENT='老师信息表';
#课程号、课程名、任课老师
CREATE TABLE IF NOT EXISTS course_info (
cno varchar(20) COMMENT='课程号',
cname varchar(30) COMMENT='课程名',
tname varchar(30) COMMENT='任课老师',
student_num varchar(10) COMMENT='课程人数',
PRIMARY KEY(cno)
) DEFAULT CHARSET=utf8 COMMENT='课程信息表';
#学号、课程号、平时成绩、期末成绩、总成绩
CREATE TABLE IF NOT EXISTS stu_course (
sno varchar(20) COMMENT='学号',
cno varchar(20) COMMENT='课程号',
usual_grade int COMMENT='平时成绩',
final_grade int COMMENT='期末成绩',
grade int COMMENT='总成绩',
PRIMARY KEY(sno,cno),
FOREIGN KEY(sno) REFERENCES stu_info,
FOREIGN KEY(cno) REFERENCES course_info
) DEFAULT CHARSET=utf8 COMMENT='选课信息表';
#检测数据插入
INSERT INTO admin VALUES ('',MD5('123'));
INSERT INTO admin VALUES ('',MD5('123'));
INSERT INTO admin VALUES ('',MD5('123'));
INSERT INTO tealogin VALUES ('',MD5('123'));
INSERT INTO tealogin VALUES ('',MD5('123'));
INSERT INTO tealogin VALUES ('',MD5('123'));
INSERT INTO stulogin VALUES ('',MD5('123'));
INSERT INTO stulogin VALUES ('',MD5('123'));
INSERT INTO stulogin VALUES ('',MD5('123'));
INSERT INTO tea_info VALUES ('','赵一','计算机学院');
INSERT INTO tea_info VALUES ('','赵二','经济和管理学院');
INSERT INTO tea_info VALUES ('','赵三','物理学院');
INSERT INTO stu_info VALUES ('','张一','20','男','计算机学院','湖北');
INSERT INTO stu_info VALUES ('','张二','21','女','经济和管理学院','湖南');
INSERT INTO stu_info VALUES ('','张三','22','男','物理学院','福建');
INSERT INTO course_info VALUES ('01','数据库','赵一');
INSERT INTO course_info VALUES ('02','C语言程序设计','赵二');
INSERT INTO course_info VALUES ('03','计算机网络','赵一');
INSERT INTO stu_course VALUES ('','01','90','90','90');
INSERT INTO stu_course VALUES ('','02','100','90','94');
INSERT INTO stu_course VALUES ('','03','90','100','96');
六、系统实现
6.1 界面设计
6.1.1 系统登陆页面
可选择登陆角色:学生,老师或管理员
6.1.2 管理员登陆界面
进入管理员操作页面后,能够选择管理课程、管理老师或管理学生
1) 管理学生:
2)管理老师
3)管理课程:
添加课程:
6.1.3 学生登陆界面查看分数及课程
6.1.4 老师登陆界面
可查看学生平时成绩、期末成绩和总成绩
还能够依据分数区间、课程号和总成绩进行条件查询:
老师改分和添加成绩融合,使操作愈加简单:
七、参考资料
《软件工程》 清华大学出版社
《数据库原理和技术(Oracle版)》 清华大学出版社
html、jsp、php
展开阅读全文