班级信息管理系统数据库设计
一、需求分析
(一)任务 1、系统目标:
实现一个班级信息管理系统,其任务是统计、存储、管理班级同学的相关信息以及班级日常管理中的相关信息,实现学生基本信息管理、学生成绩管理、班费管理、学生对个人事务的管理等功能。 2、班级事务管理系统
传统的管理模式下, 学校需要使用文件记录班级学生的信息, 这种模式只能适合以前规模较小的学校使用,但是随着信息化时代的到来信息量的增大,这种管理模式不仅需要大量的管理人员而且不便于管理,班级学生信息的动态化特征需要一种能够及时更新信息的管理,这在传统的管理模式下很难实现。班级管理信息系统的任务是收集、存储、管理班级同学的相关信息,以及班级日常管理中的相关信息。为班级信息公开、增进同学交流了解服务,同时加强班级管理、提高班级管理与服务的效率和质量。因此,开发网上班级信息管理势在必行。
(二)设计要求
①学生基本信息的输入,包括学号、姓名、班内职务等。
②学生基本信息的添加、查询、修改、删除,包括学生学号、姓名、职务、权限等。
③学生成绩的添加、查询、修改、删除,包括学号、课程号、分数。 ④课程的添加、删除,包括课程号、课程名、学分、授课老师。 ⑤生活委员对班费的管理,包括班费的收入、支出。 超级用户所拥有的权限:
① 可以查询学生的基本信息、详细信息、课程信息以及成绩。 ②可以对学生基本信息、详细信息进行添加、修改及删除操作。 ② 以对课程信息进行添加、删除操作。 ③ 以对学生成绩进行添加、删除操作。
特权用户所拥有的权限:
① 以查询班费收入支出的详细信息。
② 以对班费信息进行添加、修改、删除操作。 普通用户所拥有的权限:
①可以查询、修改个人的基本信息、详细信息。 ②可以查询个人的课程信息、成绩。 ③可以查询其余同学的基本信息。 ④可以查询班费的使用情况
(三)数据流图
(四)数据字典
为了使各数据流,数据处理过程,存储过程不能反映其中的数据成,数据项目,数据特性,所以用数据字典来对数据流图中的各成份进行具体的定义,为系统的分析,设计及以后的实现提供供有关元素一致性定义和详细的描述:
一)数据项字典 数据项名:学号
含义:在学校内唯一标识学生,让学生们区分和避免同名情况 数据项类型:int
数据项名:身份证号
含义:在所有地方可以唯一标识一个人,用来确认学生身份是否为本人之类的 数据项类型:varchar 长度:30
数据项名:宿舍号
含义:指学生在校住宿的地方名称,方便他人的联系 数据项类型:varchar 长度:20
数据项名:家庭住址
含义:指学生的的家庭住址 数据项类型:varchar 长度:100
数据项名:银行卡号
含义:为方便学生用钱,可以安全的交学费功能 数据项类型:varchar 长度:20
数据项名:课程号
含义:唯一标识学生所上的课程,以免发生重复 数据项类型:int
数据项名:成绩
含义:用来标识学生学习的概况,检测教学水平等 数据项类型:varchar
长度:5
数据项名:学分
含义:用来记录学生所修过科目所达的分数,每一个科目的学分不一定相同,但都是已累积来说明学生的修学分情况 数据项类型:int
数据项名:密码
含义:每个人拥有一个密码,用自己的密码来查找自己的相关信息,在一定程度上是认为做保密工作的 数据项类型: varchar 长度:20
数据项名:职务
含义:在班上,每个职务都有一人来担任,这样可以方便管理班集体,有利于班集体的凝聚力
数据项类型:varchar 长度:10
数据项名:ID
含义:具体区分每一项内容的 数据项类型:int
二)数据结构字典
数据结构名:学生
含义说明:是学生管理子系统的主体数据结构,定义了一个学生的有关信息 组成:学号、姓名、密码、担任职务、角色
数据结构名:课程
含义说明:是指学校学生所应学习的学科 组成:课程号、课程名、学分、任课老师
数据结构名:成绩
含义说明:用来显示学生对课程的掌握程度以及检测教学质量 组成:学号、课程号、成绩
数据结构名:生活委员事务
含义说明:管理班上一些日常事务
组成:ID 、时间、活动地点、活动人数、消费前班费余额、消费金额、消费后班
费余额、活动意义、活动结果
数据结构名:学生详细信息
含义说明:具体了解学生个人的各类有关信息,方便彼此的联系和沟通 组成: 学生学号、出生日期、身份证号码、家庭往址、宿舍号、银行卡号
数据结构名:个人事务
含义说明:定义个人的特殊功绩,记录好学生个人的各项纪录 组成:ID 、时间、结果
三)数据流字典
数据流名称:管理员登录 来源:管理员
去向:查询学生基本信息
数据组成:姓名+密码+登录权限
数据流名称:学生个人登录 来源:个人
去向:查询个人信息
数据组成:姓名+密码+登录权限
数据流名称:生活委员登录 来源:生活委员 去向:班费管理
数据组成:姓名+密码+登录权限
数据流名称:所有学生基本信息查询 来源:管理员
去向: 查询处理过程
数据组成:学号|姓名|密码|担任职务|角色
数据流名称:所有学生详细信息查询 来源:管理员
去向: 查询处理过程
数据组成:学生学号|出生日期|身份证号码|家庭往址|宿舍号|银行卡号
数据流名称:成绩和课程查询 来源:学生
去向:查询处理过程
数据组成:主键|学号|课程号|成绩
数据流名称:班费管理查询 来源:生活委员
去向:查询处理过程(P3)
数据组成:ID|时间|活动地点|活动人数|消费前班费余额|消费金额|消费后班费余额|活动意义|活动结果
数据流名称:个人事务查询 来源:学生
去向:查询处理过程
数据组成:ID|时间|内容|结果
四)数据存储字典
数据存储名:学生个人详细信息登记表 说明:记录学生的基本情况 流入数据流: 学生
流出数据流: 存储学生详细信息 进学生详细信息表
组成:学生学号、出生日期、身份证号码、家庭往址、宿舍号、银行卡号 数据量: 每年70张 存取方式: 随机存取
数据存储名:学生基本信息表 说明:方便其他用户快速了解学生的基本信息,让学生明确自己在班级里的角色 流入数据流:学生
流出数据流:存储学生的基本信息进学生基本信息表 组成:学号、姓名、密码、担任职务、角色 数据量: 每年70张 存取方式:随机存取
数据存储名:成绩表 说明:查看学生各科成绩
流入数据流: 学生所考试科目的成绩
流出数据流: 存储学生所考试科目的成绩进成绩表 组成:学号、课程号、成绩
数据量:每年50张 存取方式:批处理
数据存储名:课程表
说明:方便学生查看自己要上的科目,课程 流入数据流:各课程的相关信息
流出数据流: 存储课程信息进课程表 组成:课程号、课程名、学分、任课老师 数据量: 每年50张 存取方式:批处理
数据存储名:生活委员事务表
说明:生活委员把相关的班级事务录入, 方便学生及时了解班上的事务 流入数据流: 生活委员所录入的事务
流出数据流: 存储班集体的事务进生活委员事务表
组成: ID 、时间、活动地点、活动人数、消费前班费余额、消费金额、消费后
班费余额、活动意义、活动结果 数据量: 存取方式:随机存取
五)处理过程
处理过程:分配宿舍
说明: 为所有新生分配学生宿舍 输入: 学生,宿舍 输出: 宿舍安排
处理: 在新生报到后,为所有新生分配学生宿舍。 要求同一间宿舍只能安排
同一性别的学生,同一个学生只能安排在一个宿舍中。每个学生的居住面积不小于3平方米。安排新生 宿舍其处理时间应不超过15分钟。
处理过程:查询成绩
说明:让学生了解自己的学习效果,以及反馈 输入:学生,课程号
输出:学生所选课程所对应的成绩
处理:一门课程修完后,学校会以考试的形式来检测学生的学习情况,以成绩的
形式来体现。一个学生在一门课程里,只对应一成绩。查询时,处理时间不超过10分钟。
二、概念结构分析
(三)分E-R 图
1、学生用户表、课程表、成绩表、生活委员事物表、学生详细信息表等之间的联系,如下:
2、学生用户信息
学生E-R 图
3、课程表
4、成绩表
成绩E-R 图
5、学生详细信息表(id 、学生学号、出生日期、身份证号码、家庭往址、宿舍号、银行卡号)
学生详细信息E-R 图
6、生活委员事务表(ID 、时间、活动地点、活动人数、消费前班费余额、消费金额、消费后班费余额、活动意义、活动结果) 生活委员事务管理E-R 图
7、个人事务
个人事务管理E-R 图
三、逻辑结构设计
(一)E-R 图向关系模型的转换
学生用户表(学号、姓名、密码、担任职务、角色) 课程表(课程号、课程名、学分、任课老师) 成绩表(学号、课程号、成绩)
学生详细信息表(id 、学生学号、出生日期、身份证号码、家庭往址、宿舍号、银行卡号)
生活委员事物表(ID 、时间、活动地点、活动人数、消费前班费余额、消费金额、消费后班费余额、活动意义、活动结果) 其它管理页面(ID 、时间、内容、结果)
(二)表结构 1、学生用户表
2、课程表
3、成绩表
4、学生详细信息表
5、生活委员管理表
6、个人管理页面
(三)数据库设计及完整性约束
学生用户表:
create table user ( id int auto_increment primary key,
username varchar(10), userpass varchar(20), userjob varchar(10), userrole varchar(10) ) ;
课程表:
create table course ( id int auto_increment primary key,
cname varchar(20), ccredit int,
cteacher varchar(20) ) ;
成绩表:
create table Sc ( id int auto_increment primary key,
uid int, cid int,
sgrade varchar(5) ) ;
ALTER TABLE Sc ADD CONSTRAINT fk_Sc_uid FOREIGN KEY(uid) REFERENCES user(id);
ALTER TABLE Sc ADD CONSTRAINT fk_Sc_cid FOREIGN KE Y(cid) REFERENCES course(id);
学生详细信息表:
create table stuinfo ( id int auto_increment primary key,
stuid int,
stubirth varchar(20), stuidentity varchar(30), stuaddr varchar(50), studorm varchar(20), stucard varchar(20) )
ALTER TABLE stuinfo ADD CONSTRAINT fk_stuinfo_stuid FOREIGN KEY(stuid) REFERENCES user(id);
生活委员事物表:
create table shwy (id int auto_increment primary key,
time varchar(20), addr varchar(100), stunum int ,
startmoney decimal, expense decimal,
endmoney decimal, actmeaning text,
actresult varchar(10) ) ;
其它管理页面:
create table qita( id int auto_increment primary key,
qtime varchar(20), qcontent text, qresult varchar(20) );
(四)数据库用户权限管理 该系统设置三种类型的用户
(1)管理员(admin) 即系统管理员拥有对学生基本信息、详细信息、成绩、课程的管理权限。 可以:
a 、可以查询学生基本、详细信息、课程信息以及成绩。 b 、可以对学生基本信息、详细信息进行添加、修改及删除操作。 c 、可以对课程信息进行添加、删除操作。 d 、可以对学生成绩进行添加、删除操作。
(2)生活委员(shwy) 可以对班级班费收入支出的详细信息进行管理; a 、可以查询班费收入支出的详细信息。
b 、可以对班费信息进行添加、修改、删除操作
(3)其他个人(qita )对个人事务事件进行管理。
四、物理结构设计
班级事务管理系统需要完成功能主要有:
①学生基本信息的输入,包括学号、姓名、担任职务等。
②学生基本信息的添加、查询、修改、删除,包括学生学号、姓名、职务、角色等。
③学生成绩的添加、查询、修改、删除,包括学号、课程号、分数。 ④课程的添加、删除,包括课程号、课程名、学分、任课老师。 ④ 活委员对班费的管理,包括班费的收入、支出。 ⑤ 人对本人事务的管理,包括时间和事件。
参考文献
1、《数据库系统概论》 作者:王珊 萨师煊 出版社:高等教育出版社;2006. 2、《Java Web应用程序设计》;2010.
3、《Java 语言程序设计》作者:吕凤翥 马皓 出版社:清华大学出版社;2008.
班级信息管理系统数据库设计
一、需求分析
(一)任务 1、系统目标:
实现一个班级信息管理系统,其任务是统计、存储、管理班级同学的相关信息以及班级日常管理中的相关信息,实现学生基本信息管理、学生成绩管理、班费管理、学生对个人事务的管理等功能。 2、班级事务管理系统
传统的管理模式下, 学校需要使用文件记录班级学生的信息, 这种模式只能适合以前规模较小的学校使用,但是随着信息化时代的到来信息量的增大,这种管理模式不仅需要大量的管理人员而且不便于管理,班级学生信息的动态化特征需要一种能够及时更新信息的管理,这在传统的管理模式下很难实现。班级管理信息系统的任务是收集、存储、管理班级同学的相关信息,以及班级日常管理中的相关信息。为班级信息公开、增进同学交流了解服务,同时加强班级管理、提高班级管理与服务的效率和质量。因此,开发网上班级信息管理势在必行。
(二)设计要求
①学生基本信息的输入,包括学号、姓名、班内职务等。
②学生基本信息的添加、查询、修改、删除,包括学生学号、姓名、职务、权限等。
③学生成绩的添加、查询、修改、删除,包括学号、课程号、分数。 ④课程的添加、删除,包括课程号、课程名、学分、授课老师。 ⑤生活委员对班费的管理,包括班费的收入、支出。 超级用户所拥有的权限:
① 可以查询学生的基本信息、详细信息、课程信息以及成绩。 ②可以对学生基本信息、详细信息进行添加、修改及删除操作。 ② 以对课程信息进行添加、删除操作。 ③ 以对学生成绩进行添加、删除操作。
特权用户所拥有的权限:
① 以查询班费收入支出的详细信息。
② 以对班费信息进行添加、修改、删除操作。 普通用户所拥有的权限:
①可以查询、修改个人的基本信息、详细信息。 ②可以查询个人的课程信息、成绩。 ③可以查询其余同学的基本信息。 ④可以查询班费的使用情况
(三)数据流图
(四)数据字典
为了使各数据流,数据处理过程,存储过程不能反映其中的数据成,数据项目,数据特性,所以用数据字典来对数据流图中的各成份进行具体的定义,为系统的分析,设计及以后的实现提供供有关元素一致性定义和详细的描述:
一)数据项字典 数据项名:学号
含义:在学校内唯一标识学生,让学生们区分和避免同名情况 数据项类型:int
数据项名:身份证号
含义:在所有地方可以唯一标识一个人,用来确认学生身份是否为本人之类的 数据项类型:varchar 长度:30
数据项名:宿舍号
含义:指学生在校住宿的地方名称,方便他人的联系 数据项类型:varchar 长度:20
数据项名:家庭住址
含义:指学生的的家庭住址 数据项类型:varchar 长度:100
数据项名:银行卡号
含义:为方便学生用钱,可以安全的交学费功能 数据项类型:varchar 长度:20
数据项名:课程号
含义:唯一标识学生所上的课程,以免发生重复 数据项类型:int
数据项名:成绩
含义:用来标识学生学习的概况,检测教学水平等 数据项类型:varchar
长度:5
数据项名:学分
含义:用来记录学生所修过科目所达的分数,每一个科目的学分不一定相同,但都是已累积来说明学生的修学分情况 数据项类型:int
数据项名:密码
含义:每个人拥有一个密码,用自己的密码来查找自己的相关信息,在一定程度上是认为做保密工作的 数据项类型: varchar 长度:20
数据项名:职务
含义:在班上,每个职务都有一人来担任,这样可以方便管理班集体,有利于班集体的凝聚力
数据项类型:varchar 长度:10
数据项名:ID
含义:具体区分每一项内容的 数据项类型:int
二)数据结构字典
数据结构名:学生
含义说明:是学生管理子系统的主体数据结构,定义了一个学生的有关信息 组成:学号、姓名、密码、担任职务、角色
数据结构名:课程
含义说明:是指学校学生所应学习的学科 组成:课程号、课程名、学分、任课老师
数据结构名:成绩
含义说明:用来显示学生对课程的掌握程度以及检测教学质量 组成:学号、课程号、成绩
数据结构名:生活委员事务
含义说明:管理班上一些日常事务
组成:ID 、时间、活动地点、活动人数、消费前班费余额、消费金额、消费后班
费余额、活动意义、活动结果
数据结构名:学生详细信息
含义说明:具体了解学生个人的各类有关信息,方便彼此的联系和沟通 组成: 学生学号、出生日期、身份证号码、家庭往址、宿舍号、银行卡号
数据结构名:个人事务
含义说明:定义个人的特殊功绩,记录好学生个人的各项纪录 组成:ID 、时间、结果
三)数据流字典
数据流名称:管理员登录 来源:管理员
去向:查询学生基本信息
数据组成:姓名+密码+登录权限
数据流名称:学生个人登录 来源:个人
去向:查询个人信息
数据组成:姓名+密码+登录权限
数据流名称:生活委员登录 来源:生活委员 去向:班费管理
数据组成:姓名+密码+登录权限
数据流名称:所有学生基本信息查询 来源:管理员
去向: 查询处理过程
数据组成:学号|姓名|密码|担任职务|角色
数据流名称:所有学生详细信息查询 来源:管理员
去向: 查询处理过程
数据组成:学生学号|出生日期|身份证号码|家庭往址|宿舍号|银行卡号
数据流名称:成绩和课程查询 来源:学生
去向:查询处理过程
数据组成:主键|学号|课程号|成绩
数据流名称:班费管理查询 来源:生活委员
去向:查询处理过程(P3)
数据组成:ID|时间|活动地点|活动人数|消费前班费余额|消费金额|消费后班费余额|活动意义|活动结果
数据流名称:个人事务查询 来源:学生
去向:查询处理过程
数据组成:ID|时间|内容|结果
四)数据存储字典
数据存储名:学生个人详细信息登记表 说明:记录学生的基本情况 流入数据流: 学生
流出数据流: 存储学生详细信息 进学生详细信息表
组成:学生学号、出生日期、身份证号码、家庭往址、宿舍号、银行卡号 数据量: 每年70张 存取方式: 随机存取
数据存储名:学生基本信息表 说明:方便其他用户快速了解学生的基本信息,让学生明确自己在班级里的角色 流入数据流:学生
流出数据流:存储学生的基本信息进学生基本信息表 组成:学号、姓名、密码、担任职务、角色 数据量: 每年70张 存取方式:随机存取
数据存储名:成绩表 说明:查看学生各科成绩
流入数据流: 学生所考试科目的成绩
流出数据流: 存储学生所考试科目的成绩进成绩表 组成:学号、课程号、成绩
数据量:每年50张 存取方式:批处理
数据存储名:课程表
说明:方便学生查看自己要上的科目,课程 流入数据流:各课程的相关信息
流出数据流: 存储课程信息进课程表 组成:课程号、课程名、学分、任课老师 数据量: 每年50张 存取方式:批处理
数据存储名:生活委员事务表
说明:生活委员把相关的班级事务录入, 方便学生及时了解班上的事务 流入数据流: 生活委员所录入的事务
流出数据流: 存储班集体的事务进生活委员事务表
组成: ID 、时间、活动地点、活动人数、消费前班费余额、消费金额、消费后
班费余额、活动意义、活动结果 数据量: 存取方式:随机存取
五)处理过程
处理过程:分配宿舍
说明: 为所有新生分配学生宿舍 输入: 学生,宿舍 输出: 宿舍安排
处理: 在新生报到后,为所有新生分配学生宿舍。 要求同一间宿舍只能安排
同一性别的学生,同一个学生只能安排在一个宿舍中。每个学生的居住面积不小于3平方米。安排新生 宿舍其处理时间应不超过15分钟。
处理过程:查询成绩
说明:让学生了解自己的学习效果,以及反馈 输入:学生,课程号
输出:学生所选课程所对应的成绩
处理:一门课程修完后,学校会以考试的形式来检测学生的学习情况,以成绩的
形式来体现。一个学生在一门课程里,只对应一成绩。查询时,处理时间不超过10分钟。
二、概念结构分析
(三)分E-R 图
1、学生用户表、课程表、成绩表、生活委员事物表、学生详细信息表等之间的联系,如下:
2、学生用户信息
学生E-R 图
3、课程表
4、成绩表
成绩E-R 图
5、学生详细信息表(id 、学生学号、出生日期、身份证号码、家庭往址、宿舍号、银行卡号)
学生详细信息E-R 图
6、生活委员事务表(ID 、时间、活动地点、活动人数、消费前班费余额、消费金额、消费后班费余额、活动意义、活动结果) 生活委员事务管理E-R 图
7、个人事务
个人事务管理E-R 图
三、逻辑结构设计
(一)E-R 图向关系模型的转换
学生用户表(学号、姓名、密码、担任职务、角色) 课程表(课程号、课程名、学分、任课老师) 成绩表(学号、课程号、成绩)
学生详细信息表(id 、学生学号、出生日期、身份证号码、家庭往址、宿舍号、银行卡号)
生活委员事物表(ID 、时间、活动地点、活动人数、消费前班费余额、消费金额、消费后班费余额、活动意义、活动结果) 其它管理页面(ID 、时间、内容、结果)
(二)表结构 1、学生用户表
2、课程表
3、成绩表
4、学生详细信息表
5、生活委员管理表
6、个人管理页面
(三)数据库设计及完整性约束
学生用户表:
create table user ( id int auto_increment primary key,
username varchar(10), userpass varchar(20), userjob varchar(10), userrole varchar(10) ) ;
课程表:
create table course ( id int auto_increment primary key,
cname varchar(20), ccredit int,
cteacher varchar(20) ) ;
成绩表:
create table Sc ( id int auto_increment primary key,
uid int, cid int,
sgrade varchar(5) ) ;
ALTER TABLE Sc ADD CONSTRAINT fk_Sc_uid FOREIGN KEY(uid) REFERENCES user(id);
ALTER TABLE Sc ADD CONSTRAINT fk_Sc_cid FOREIGN KE Y(cid) REFERENCES course(id);
学生详细信息表:
create table stuinfo ( id int auto_increment primary key,
stuid int,
stubirth varchar(20), stuidentity varchar(30), stuaddr varchar(50), studorm varchar(20), stucard varchar(20) )
ALTER TABLE stuinfo ADD CONSTRAINT fk_stuinfo_stuid FOREIGN KEY(stuid) REFERENCES user(id);
生活委员事物表:
create table shwy (id int auto_increment primary key,
time varchar(20), addr varchar(100), stunum int ,
startmoney decimal, expense decimal,
endmoney decimal, actmeaning text,
actresult varchar(10) ) ;
其它管理页面:
create table qita( id int auto_increment primary key,
qtime varchar(20), qcontent text, qresult varchar(20) );
(四)数据库用户权限管理 该系统设置三种类型的用户
(1)管理员(admin) 即系统管理员拥有对学生基本信息、详细信息、成绩、课程的管理权限。 可以:
a 、可以查询学生基本、详细信息、课程信息以及成绩。 b 、可以对学生基本信息、详细信息进行添加、修改及删除操作。 c 、可以对课程信息进行添加、删除操作。 d 、可以对学生成绩进行添加、删除操作。
(2)生活委员(shwy) 可以对班级班费收入支出的详细信息进行管理; a 、可以查询班费收入支出的详细信息。
b 、可以对班费信息进行添加、修改、删除操作
(3)其他个人(qita )对个人事务事件进行管理。
四、物理结构设计
班级事务管理系统需要完成功能主要有:
①学生基本信息的输入,包括学号、姓名、担任职务等。
②学生基本信息的添加、查询、修改、删除,包括学生学号、姓名、职务、角色等。
③学生成绩的添加、查询、修改、删除,包括学号、课程号、分数。 ④课程的添加、删除,包括课程号、课程名、学分、任课老师。 ④ 活委员对班费的管理,包括班费的收入、支出。 ⑤ 人对本人事务的管理,包括时间和事件。
参考文献
1、《数据库系统概论》 作者:王珊 萨师煊 出版社:高等教育出版社;2006. 2、《Java Web应用程序设计》;2010.
3、《Java 语言程序设计》作者:吕凤翥 马皓 出版社:清华大学出版社;2008.