数据库原理A课程设计——作业管理系统
点击链接查看文档代码
二、系统需求分析
2.1 背景描述
随着互联网+的浪潮,很多行业都实现了与互联网的融合,提升了工作效率。
在该选题中,我们小组选择将传统的作业批改实现网络化,无纸化,节约纸张,提升作业管理效率,便利师生,更好的服务学生,提升学生的学习效果。在这个选题中我们致力于打造一个师生之间作业交互的网络新平台,拉进师生之间距离,增强师生作业互动的实时性,将互联网科技带来的改变与提升,带给老师和学生一个现代化的新的作业管理解决方案。
2.2 需求分析
经过小组对系统调研和需求探讨分析,我们对系统进行了下一步的需求分析。
2.2.1 功能需求
1)用户登录:用户提交用户的账号和密码进行登陆,系统根据相关信息判断进入系统界面。
2)用户信息修改:成功登录的合法用户有权对自己的个人信息进行相应的修改。
3)查看自己的个人信息:成功登录的合法用户可以根据自己的权限请求相应的信息。
4)发布作业:用户可以在拥有权限的时候向班级内的成员发布作业,并且设置作业提交的截止时间。
5)提交作业:用户在有未完成作业时,可以在做完作业之后提交作业,记录提交的时间。
6)修改作业:用户在有已提交作业且该作业未过期时,可以重新提交作业覆盖之前的提交记录,并记录重新提交的时间。
7)批改作业:当用户所管理的班级有已发布的作业且有提交的作业尚未批阅时,用户可以批改作业,批改后的作业归类为已批注作业。
8)查看作业信息:用户可以查看自己所属班级所发布的作业,并查看其详细信息。
9)删除作业:用户所管理的班级,用户可以删除相应的作业。
10)创建班级关系:当合法登录的用户拥有相应的权限时,用户可以拉取老师和班级组成班级。
11)选课:当合法登录的用户拥有选课的权限时,而且属于选课段时,用户可以选择相应课程,若课程人数未达上限时,用户可加入相应班级。
12)查看班级信息:成功登录的合法用户可以根据自己的权限请求相应的班级信息。
13)查看课程信息:成功登录的合法用户可以根据自己的权限请求相应的课程信息。
2.2.2 性能需求
1) 系统处理能力:同学录系统不但涉及到留言功能,班级相册,说说管理等各个功能,还同时对多个不同用户的操作进行管理和控制,在这个过程中参与的用户较多,较为复杂,因此系统要具有较好的大用户量下的并发响应能力.
2) 处理时间:理想状态下系统应为用户提供24小时服务.
3) 响应速度:要求能够响应快速;响应速度尽量控制在用户可忍受等待的时间内,并给予提示.
4)主要依赖数据库的良好维护和管理以及对数据的保密等措施。所以在数据在遇到严重的丢失或损坏后能快速的进行恢复以继续维持系统的正常运行。所以本系统采用了定时对数据库的备份和数据的恢复措施。
三、系统设计
3.1 数据库结构设计
3.1.1概念结构设计
概念模型用于信息世界的建模。概念模型不依赖于某一个数据库管理系统(DBMS),但可以方便的转换为计算机上某一DBMS所支持的特定的数据模型。通过对用户对数据的需求进行综合、归纳与抽象,将形成一个完善的概念模型,可以用E-R(实体联系)图来表示。E-R图是对现实世界的一种抽象,它的主要成份是实体、属性和联系。
1.实体:客观存在并可以互相区分的事物称为实体,是现实世界中各种事物的抽象。如本案例中一个班级为一个实体。一般来说,每个实体都相当于数据库中的一个表。实体用一个矩形框来表示。
本项目用到的实体类有:
teacher-教师实体类
student-学生实体类
admin-管理员实体类
clazz-班级实体类
course-课程实体类
student_course-学生选课实体类
homework-作业实体类
student_homework-学生作业实体类
2.属性:属性是实体所具有的某些特征,通过属性对实体进行刻画。实体是由属性组成的,如班级有班级名称、创建人等属性。一个实体本身具有许多属性,能够唯一标识实体的属性称为该实体的码。属性用一个椭圆来表示。
本项目的属性:
teacher表:
student表:
admin表:
clazz表
course表
student_course表
homework表
student_homework表
3.联系:现实世界的事物内部或事物之间都有联系,这些联系在信息世界里反映为实体内部或实体之间的联系。
本项目的实体之间的联系:
teacher与course为一对多的关系(简化一下),一个教师可以教授多门课程,但一个课程只能对应一个教师;
student与clazz为一对多的关系,一个学生只能属于一个班级,一个班级有多个学生;
student与course为多对多的关系,一个学生可以上多门课程,一门课程可以被多个学生选修;
course与homework为一对多的关系,一个课程可以有很多个作业;
homework与student为多对多的关系,一个作业可以有很多个学生提交,一个学生有多份作业;
根据上节的需求分析,我们作出一些E-R图,如图所示:
局部E-R图:
管理员属性E-R图:
班级与学生的关系:
课程与学生的关系:
学生与作业的关系:
课程与老师的关系:
课程与作业的关系:
全局E-R图:
3.1.2逻辑结构设计
3.1.3物理结构设计
在创建完数据库之后,首先要做的就是在数据库中创建表。通常来说,表的设计是由开发人员完成,必须满足实际数据的内容和关系数据库的要求(比如范式要求),而数据库管理员的任务是根据要求向数据库中添加这些表。在逻辑上,数据库由大量的表构成,表中包含了由行和列组织起来的数据;在物理上,表存储在文件中,表中的数据存储于页中。
在数据库的开发和应用中,快速地从数据库中查询到所需的数据是十分重要的。但是,随着数据量的不断增大,查询所花费时间也在大量增加。使用索引可以对查询速度进行优化,使用索引指向数据页上某行的位置,这样查询数据就不需要查遍表的所有数据页了。
数据质量对于使用效率和数据库程序运行效率起着决定性的作用。如果数据库中存在大量错误数据,那么效率会大大降低。在数据库的使用中,诸如数据录入错误和表间关联数据的修改等操作都会造成错误数据的产生。因此,不论从首次输入还是收集到存储的整个过程都需要保证数据的唯一性和一致性。数据的唯一性和一致性称为数据完整性。数据完整性分为实体完整性、引用完整性和用户自定义完整性。实体完整性一般通过设置主键来实现,参照完整性一般通过设置外建来实现,而用户自定义完整性则可通过CHECK约束、DEFAULT约束和UNIQUE约束实现。把逻辑设计得到的关系模式转换为表,同时为实现数据完整性设置主、外键及各种约束。
3.2软件结构设计
3.2.1 概要设计
处理流程:
1.系统初次启动时,根据配置文件导入数据库,设置各全局变量;
2.进入事件等待状态,各专门功能模块由事件驱动机制激活,分别执行完各项功能后仍进入事件等待状态;
3.最后由关闭系统事件引导激活关闭系统模块,退出整个系统;
系统结构图:
3.2.2 详细设计
系统的三个角色为教师、学生、管理员
教师
修改个人信息(包括密码)
查看自己所教授的课程信息
查看选课学生信息
发布作业
修改已布置的作业
删除已布置的作业
学生
修改个人信息(包括密码)
查看自己所属的班级信息
查看自己所选的课程信息
查看教师所布置的作业信息
提交作业、修改已提交的作业
管理员
修改个人信息(包括密码)
教师信息的增删改查
学生信息的增删改查
班级信息的增删改查
课程信息的增删改查
选课信息的增删改查
作业信息的增删改查
删除作业信息、查看作业信息
删除学生提交作业信息、查看学生提交作业信息
四、系统实现
系统登录界面
学生用户主界面
学生用户设置界面
教师用户主界面
教师用户授课列表界面
教师用户学生信息列表界面
管理员用户主界面
管理员用户教师列表界面