学生成绩管理数据库系统设计(数据库实验大作业)(总19页)
--本页仅作为文档封面,使用时请直接删除即可-- --内页可以根据需求调整合适字体及大小--
学生成绩管理数据库
系统设计
课程:数据库安全实验 姓名: 吴双可 学院: 计算机学院 专业: 信息安全 学号: 20
2
一、需求分析
编写目的
本产品实现了一个基于mySQL数据库下的学生信息查询管理系统,而本需求分析报告的编写目的是为了提供一个由用户(学生、教师)和开发者双方共同确定的开发系统的业务需求目标,并对本系统所要实现的软件功能做一个全面的规格描述。
同时,在用户业务需求的基础上,经过需求分析和数据整理,以向整个开发期提供关于软件系统的业务和数据的技术信息和整体描述,做为软件开发的技术基础,也作为系统设计、实现的目标和测试以及维护阶段的依据。
本软件需求分析报告的适用读者为:软件用户(学生、教师)、软件需求分析人员、软件设计及开发者和相关的测试人员。
信息需求
随着科学技术的不断提高,计算机科学飞速发展,其强大的功能已为人们深刻认识,它已经进入人类社会的各个领域并发挥着越来越重要的作用,在学籍管理方面,各种学生信息管理系统也在不断的涌现出来,然而目前在我国仍有部分学校在应用一些旧的、功能单一而且效率低下的系统,甚至还有一些偏远学校的学生信息管理还在依靠人工进行管理和操作,这些管理方式存在着许多缺点,如:效率低,密保性差,另外时间一长,将产生大量的文件和数据,其中有些是冗余或者针对同一目的的数据不相吻合,这对于查找、更新和维护文件等管理工作带来了不少困难,同时也跟不上信息时代高速、快捷的要求,严重影响了消息的传播速度。然而现今学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息也成倍增长,人工管理信息的缺点日渐突出,面对庞大的学生信息量,如何利用现代信息技术使其拥有快捷、高效的适应能力已成为当务之急。
正因为如此,学生信息管理系统成为了教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。作为计算机应用的一部分,使用
3
计算机对学生信息进行管理,具有着手工管理所无法比拟的优点。例如:检索迅速。查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大的提高学生信息管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件,由此看来开发这样一套管理软件是很有必要的。 基于以上开发背景,我们小组设计了一个高效的学生成绩管理系统,能够储存历届学生的成绩、学生和老师的个人信息,并且能够实现管理员角色的管理(对于数据库中的数据进行增删改)。因此系统只需要几个管理人员登录系统录入成绩即可,老师和学生均可以方便的查询信息,节省了大量的人力并且保证了高效率和低出错率。
二、系统概述
系统功能框架
该系统的功能框架如下:
信息管理:查询 、添加、删除、修改学生信息。 成绩管理:查询 、添加、删除、修改学生成绩。
系统管理:保存各类用户对象的帐号信息、登录验证,维护系统数据字典、添加管理员、删除管理员、修改管理员信息。
运行环境
本系统服务器的运行环境如下: 操作系统:Windows XP 以上 服务器:以上
数据库:SQL Server 2005 硬件配置:CPU: 内存:256MB以上
用户特点
4
使用本系统的用户包括:系统管理员(admin)、教师和学生。
系统管理员是这个系统的root用户,他应该要拥有所有权限以便完成他管理者的角色,所以应该能够有学生信息表,成绩信息表和教师信息表的操作权限,另一方面他应该能够管理普通用户的帐号,实现自主访问控制。
而教师应该可以对自己所授课程相关的信息有着一定的控制权限,例如登记成绩,增加、修改选课信息等,对于跟自己无关的信息应当对其隐藏。
在此系统中的学生应该只有查询权限,以防各种信息被恶意篡改。 所以在此系统中,系统管理员要拥有几乎所有的权限,需要完成对系统的管理和维护,而教师和学生是受限户,其权限受限于自身,不能修改查看与自己无关的数据信息。
三、功能描述
本系统的软件流程图如下: 登录 判断角色 教师 学生 选打查退修修查 课 分 看课 改改询 成个个成 绩人人绩 分信信课 布 息 息 表学 分 5
系主任 选课 增删改课程信息 修改 学生账号状态 修改教师账号状态 设置老师 选课开关 发布公告 首页浏览 修改个人信息
需求分解
按照不同角色用户对系统需求的不同,系统将需求分解成三个模块,学生模块,教师模块和管理员模块: 1、系统管理员模块
系统管理员需要能够在本系统上完成如下操作:1、管理所有课程:増、删、改、查所有课程的信息 2、管理所有教师:増、删、改、查所有教师的信息 3、管理所有学生:増、删、改、查所有课程以及课程成绩信息 4、管理所有老师和学生的账号信息:増、删、改、查所有帐号的信息。 2、教师模块
教师需要能够在本系统上完成的操作有:1、管理自己所教授课程:增、删、改、查所授课程的学生信息(包括成绩信息) 2、查询自己的教师信息 3、学生模块
学生需要能够在本系统上完成的操作:查询自己的学生信息(包括成绩和选课)。
功能分解
通过前面描述的系统的功能框架。我们将系统分解成三个子功能:系统管理、信息管理和成绩管理: 1、系统管理 功能 保存各类用户对象的帐号信息、登录验证,维护系统数据字典、添加管理员、修改管理员信息。 业务流程 (1)负责对登录用户的用户名、密码进行验证,若为未注册用户或密码错误则提示错误信息并拒绝访问。 (2)若此用户为合法用户并通过了验证,则判断该帐号属于哪类用户,并进入对应的页面。 (3)若此用户是管理员用户,则可以添加新的管理员用户或修改已存在的管理员信息表。 6
输入 界面 用户的用户名、密码或是对管理员信息的修改命令 标准的登录界面 信息修改界面 算法 调用数据库的各类用户表,通过SELECT语句在用户表的查询结果来验证登录。通过ALTER等语句对管理员表进行修改 输出 验证结果(通过还是未通过),并进入对应的界面。 更改后的管理员用户表。 备注 登录验证的密码不能是明码存储,应该md5加密之后存储在表中。
2、信息管理系统
功能 实现对学生、教师及选课信息的存储,并且可以查询 、添加、删除、修改学生信息。 业务流程 (1)判断用户类型,给不同类型用户分配不同的信息表操作权限 (2)若是管理员用户,则对学生信息表、教师信息表和选课表拥有所有操作权限,通过查询、修改等语句将对数据库操作的结果显示在界面上或写入数据库;若是教师用户,则只能对任课的选课表进行查询、修改操作并且可以查询自己的教职工信息,将结果显示在界面上;若是学生,仅能在界面上查询自己的学生信息。 (3)若对无权限表进行操作,显示错误信息并拒绝操作。 输入 界面 算法 查询框输入各种查询条件,编辑界面输入修改信息 调用数据库的各类用户表,查询操作就通过各种语句将结果显示在界面上,修改操作就将界面上的操作结果写入到数据库中 输出 查询结果、数据库表格内容变化 7
备注
实现对各类信息的存储和管理。 3、成绩管理系统
功能 实现学生各门课程成绩的存储,并且对这些信息进行查询 、添加、删除、修改操作。 业务流程 (1)判断用户类型,给不同类型用户分配不同的成绩表操作权限 (2)若是管理员用户,则对选课表拥有所有操作权限,通过查询、修改成绩等语句将对数据库操作的结果显示在界面上或写入数据库;若是教师用户,则只能对任课的选课表进行查询(将成绩单显示在界面上)、修改(将成绩录入数据库);若是学生,仅能在界面上查询自己各科的成绩。 (3)若对无权限表进行操作,显示错误信息并拒绝操作。 输入 界面 算法 查询框输入各种查询条件,编辑界面输入修改信息 调用数据库的选课表,查询操作就通过各种语句将成绩结果显示在界面上,修改操作就将界面上成绩信息写入到数据库中 输出 备注
查询结果、数据库表格内容变化 实现对学生成绩的存储和管理。
8
信息流程图
系主任登录 验证 开放老师选课系 可选设置 老师是否选统 课完毕
是
否 老师选课 开放学生选课系统 系主任确认
四、数据库的逻辑结构设计
逻辑结构是于任何一种数据模型的信息结构。逻辑结构的任务是把概念结构设计阶段设计好的基本E-R图转化为宜选用的DBMS所支持的数据模型相符合的逻辑结构,并对其进行优化。E-R图向关系模型转化要解决的问题是如何将实体型和实体间的联系转化为关系模式,如何确定这些关系模式的属性和码。
设计学生成绩管理数据库,包括课程、学生、教师、成绩四个关系, 其关系模式中对每个实体定义的属性如下:
课程信息表(课程号,课程名,课程人数,任课教师) 学生信息表 (学号,姓名,性别,院系,年龄,籍贯) 教师信息表(教师号,姓名,所在院系)
学生选课表(学号,课程号,平时成绩,期末成绩,总成绩) 管理员表(用户名,登录密码) 学生登录表(用户名,登录密码) 教师登录表(用户名,登录密码)
9
TABLE admin(管理员帐号表)
属性 username password
TABLE tealogin (教师帐号表) 属性 username password TABLE stulogin (学生帐号表) 属性 username password TABLE stu_info (学生信息表) 属性 sno sname age sex dept place TABLE tea_info (教师信息表) 属性 tno tname dept
TABLE course_info (课程信息表) 属性 cno cname tname 类型 VARCHAR VARCHAR VARCHAR 长度 20 30 30 是否为空 NOT NULL 可为空 可为空 默认值 NULL \\ NULL 主键 √ 类型 VARCHAR VARCHAR VARCHAR 长度 20 30 20 是否为空 NOT NULL 可为空 可为空 默认值 NULL \\ NULL 主键 √ 类型 VARCHAR VARCHAR NUMERIC VARCHAR VARCHAR VARCHAR 长度 20 30 2 2 20 20 是否为空 NOT NULL 可为空 可为空 可为空 可为空 可为空 默认值 NULL \\ NULL NULL NULL NULL 主键 √ 类型 VARCHAR VARCHAR 长度 20 30 是否为空 NOT NULL NOT NULL 默认值 NULL \\ 主键 √ 外键 stu_info 类型 VARCHAR VARCHAR 长度 20 30 是否为空 NOT NULL NOT NULL 默认值 NULL \\ 主键 √ 外键 tea_info 类型 VARCHAR VARCHAR 长度 20 30 是否为空 NOT NULL NOT NULL 默认值 NULL \\ 主键 √ 10
stu_num NUMERIC 10 NOT NULL NULL TABLE stu_course (学生选课表) 属性 sno cno usual_grade final_grade total_mark 类型 VARCHAR VARCHAR int int int 长度 20 20 \\ \\ \\ 是否为空 NOT NULL NOT NULL 可为空 可为空 可为空 默认值 NULL NULL NULL NULL NULL 主键 √ √ 外键 stu_info Course_info
五、数据库实施
创建数据库
create database student 创建表 #用户名、密码
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='教师登录表';
#用户名、密码
11
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='课程号',
12
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 ('20',MD5('123')); INSERT INTO admin VALUES ('20',MD5('123')); INSERT INTO admin VALUES ('20',MD5('123'));
INSERT INTO tealogin VALUES ('20',MD5('123')); INSERT INTO tealogin VALUES ('20',MD5('123')); INSERT INTO tealogin VALUES ('20',MD5('123'));
INSERT INTO stulogin VALUES ('20',MD5('123')); INSERT INTO stulogin VALUES ('20',MD5('123'));
13
INSERT INTO stulogin VALUES ('20',MD5('123'));
INSERT INTO tea_info VALUES ('20','赵一','计算机学院'); INSERT INTO tea_info VALUES ('20','赵二','经济与管理学院'); INSERT INTO tea_info VALUES ('20','赵三','物理学院');
INSERT INTO stu_info VALUES ('20','张一','20','男','计算机学院','湖北');
INSERT INTO stu_info VALUES ('20','张二','21','女','经济与管理学院','湖南');
INSERT INTO stu_info VALUES ('20','张三','22','男','物理学院','福建');
INSERT INTO course_info VALUES ('201501','数据库','赵一'); INSERT INTO course_info VALUES ('201502','C语言程序设计','赵二'); INSERT INTO course_info VALUES ('201503','计算机网络','赵一');
INSERT INTO stu_course VALUES ('20','201501','90','90','90'); INSERT INTO stu_course VALUES ('20','201502','100','90','94'); INSERT INTO stu_course VALUES ('20','201503','90','100','96');
六、系统实现
界面设计
系统登陆页面
14
可选择登陆角色:学生,老师或管理员
管理员登陆界面
进入管理员操作页面后,可以选择管理课程、管理教师或管理学生 1) 管理学生:
15
2)管理教师
16
3)管理课程:
17
添加课程:
学生登陆界面查看分数及课程
教师登陆界面
18
可查看学生平时成绩、期末成绩和总成绩
还可以根据分数区间、课程号和总成绩进行条件查询:
教师改分与添加成绩融合,使操作更加简单:
19
七、参考资料
《软件工程》 清华大学出版社 《数据库原理与技术(Oracle版)》 清华大学出版社 html、jsp、php
20
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- 69lv.com 版权所有 湘ICP备2023021910号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务