数据库学生考勤管理系统设计报告
课程设计说明书
课程设计名称: 数据库系统课程设计 课程设计题目: 学生考勤管理系统 学 院 名 称: 信息工程学院
专业: 计算机科学与技术 班级: 100451 学号: 10045124 姓名: 邬荣飞 评分: 教师: 胡建明 付峥
20 13 年 1 月 8 日
由每位学生填写、由任教教师保存待查
一、需求分析:
用户是系统的最终使用者,根据分析,本系统应当包括学生、班主任、任课老师、院系领导、学校领导、系统管理员六类用户。由于没有做前台以及设置管理权限等,所以目前为止可以为这几类用户提供这方面的人查询需求。比如学生可以查看自己的个人信息并且进行一些修改,还可以查看自己所在班级的信息;班主任可以查看自己的信息、所带班级信息以及学生信息; 授课老师可以查看自己教授的课程的信息以及所带班级信息;还有就是提供了一些请假信息查询、出勤情况查询以及一些相关规定产生的处理结果。
通过这个数据库,不仅能妥善管理相关的学生信息,还能处理一些考勤方面的情况。更需要说明的是这里面还包含一些简单的选课系统雏形,如有需要的话,改善后还能当做选课系统进行使用。
下面具体说说各个实体间的需求分析:
1. 学生用户需求描述:
学生对本系统的主要需求是:在线请假以及查看在校期间所有的上课出勤信息。
在线请假需求:学生请假的全过程当中,学生可以随时查看请假的详细进展情况。
查看出勤信息需求:学生可以查看在校期间所有学期上课出勤的详细信息,如:查看“数据库系统”这门课程在整个学期请假、旷课多少次等信息。
其它需求:查看本人的基本信息,如本人的所属的院系、年级、专业、班级、学号、姓名、性别等。
2. 任课老师用户需求描述:
任课老师对系统的主要需求是:管理所教班级学生的上课出勤信息以及
查看所教班级学生的上课出勤信息。
管理学生上课出勤需求:随着时间的变化,自动列出还没有在网上公布的学生上课出勤信息,系统自动根据学生请假系统,决定学生上课出勤的最终结果。
查看学生出勤信息需求:查看所教班级学生整个学期出勤情况。
3. 班主任用户需求描述
导员对本系统的主要需求是:审批本班学生本学期的在线请假以及查看本班学生本学期所有课程的上课出勤信息。
审批学生请假需求:本班学生本学期在线请假申请后,自动提示导员有等待审批的请假信息,导员针对请假申请信息进行学生请假审批。
查看学生上课出勤信息需求:查看本班学生整个学期有关课程的出勤统计信息及详细信息。
其它需求:查看本班学生的基本信息等。
二、系统功能分析: 1. 功能需求描述
根据各类用户的需求描述,系统应当具备请假系统、考勤管理系统、后台管理系统这三大主要功能。
请假系统功能需求:通过班主任以及院系领导批准请假信息。请假最长时间不能超过1个月,特殊情况除外。
考勤管理功能需求:任课老师通过考勤管理系统,对学生上课出勤信息进行公开。请假系统要借助班主任才能完成,考勤管理系统要借助请假系统、班级课表安排才能完成,然而每学年课表都在变化,班主任安排也有在变化,学生也在变化,因此必须要求后台管理系统能根据系统需求,动态的、准确
的更新系统数据。
2. 系统功能划分
根据系统用户的需求,将本系统按功能划分成三大功能模块:请假系统、考勤系统、后台管理模块,涉及到六大类用户:学生、任课教师、班主任、院系领导、学校领导、系统管理员。
3. 请假系统模块
本模块的功能是在线请假的实现及管理,主要涉及三大类用户:学生、班主任及院系领导用户,学生通过此功能模块进行在线请假及查看请假记录信息;班主任在线审批学生请假及查看请假记录信息;院系领导在线审批学生长时间的请假及查看请假记录信息。
4. 考勤系统模块
本模块的功能是学生考勤信息统计的实现、查看及管理,涉及六大类用户中的所有用户。学生在线查看自己所有学年的出勤信息;任课老师在线管理学生出勤信息;班主任、院系领导、学校领导查看不同的范围的学生出勤信息。
三、系统结构设计 1. 学生考勤系统的E-R 模型
2. 数据字典设计
3. 数据库表的逻辑结构设计
(1)学生表student 数据类型
可否为空 键引用
列名 char(10) 否 主键 学生学号 varchar(30) 否 学生姓名 char(5) 否 性别 char(10) 否 班级名称 char(40) 否
院系名称
(2)教师表teacher 数据类型 可否为空 键引用
列名 char(10) 否 主键 任课老师编号 char(20) 否 任课老师姓名 char(5) 否 性别 Char(10) 否 院系名称
(3)班主任表classteacher 数据类型 可否为空 键引用 列名 char(5) 否 主键 班主任编号 char(20) 否 班主任姓名 char(5) 否 性别
(4)学生上课出勤记录表kaoqin_record 数据类型 可否为空 键引用 列名 char(10) 否 主键 上课出勤编号 char(10) 否 外键 学生学号 char(10) 否 学生上课考勤状
态
char(10) 否
课程名称
(5)课程信息表
course 数据类型 可否为空 键引用 列名
char(10) 否 主键 课程编号 char(20) 否 课程名称 char(10) 否 班级名称 Char (10) 否
外键
任课老师编号
(6)班级表classes 数据类型 可否为空 键引用 列名
char(10) 否 主键 班级编号 char(20) 否 班级名称 Char (5) 否
外键
班主任编号
(7)请假信息表qingjia 数据类型 可否为空 键引用
列名 Char(10) 否 主键 请假编号 char(10) 否 外键 班级名称 Char(10) 否 外键 学生学号 varchar (200) 否 请假原因 char(13) 否 课程名称 Char(10) 否 请假天数 Nchar (20) 否 备注
4. 约束条件(举例一个)
对性别的约束: ([性别]='男' OR [性别]='女')
5. 视图的创建: 1. 班主任带班情况
代码:
SELECT TOP 1000 [班主任姓名] , [班级名称] , [班级编号] , [班主任编号]
FROM [学生考勤管理系统改进版]. [dbo]. [班主任带班情况
]
2.教师授课情况
代码:
SELECT TOP 1000 [任课老师编号] , [任课老师姓名] , [课程编号] , [课程名称] , [班级名称]
FROM [学生考勤管理系统改进版]. [dbo]. [教师教授班级情况]
3.学生请假情况
代码:
SELECT TOP 1000 [学生学号] , [学生姓名] , [班级名称] , [课程名称] , [请假原因]
, [任课老师名称] , [请假天数] , [备注]
FROM [学生考勤管理系统改进版]. [dbo]. [学生请假情况]
6. 触发器的建立(举例一个)
触发器实现的效果是:当请假天数超过三天时,处理方案为重修;小于
三天(含三天)时,补课。 代码:
ALTER trigger [dbo]. [请假处理] on [dbo]. [请假信息表] after insert , update as
update 请假信息表
set 请假信息表. 备注=' 重修' where 请假天数>3
update 请假信息表
set 请假信息表. 备注=' 补课' where 请假天数
触发效果截图:
7. 存储过程 做了一个存储过程:
教师授课缺勤情况
代码:
ALTER proc [dbo]. [教师授课缺勤情况] @选定教师 char (20) as
select 学生学号, 任课老师名称 from 学生上课出勤记录表
where @选定教师=任课老师名称 and 学生上课考勤状态=' 否'
执行存储过程
执行结果
出勤记录表
8. 数据库关系图:
1. 班级-班主任
2. 教师-课程信息
3. 学生-出勤-请假
四:心得体会
本次试验开始的时候一头雾水,不知从何下手,目标是作出前台,可实际上做起来才知道难度。不过现在做出来了,特别有成就感,一字一句都是我自己的想法。感受不好说,上面都是我的心血,都在上面了。
不足之处当然还有,比如实现的查询有限,表和表之间的联系还不够,这些不是一点两点能够解决的;另外表的创建至关重要,以后自己得注意了。当然课设之后还回去不断完善,我喜欢上了数据库这东西。
五.参考文献
1. (王珊、萨师煊)、《数据库系统概论》、高等教育出版社 、2006年5月第4版 2. (钱雪忠、罗海池、陈国俊)、《数据库原理及技术》、清华大学出版社、2009年2月第一版 3. (李红)、《数据库原理与应用》、高等教育出版社、2003年1月第1版 4. (Dusan Petkovic)、《SQL Server初学者指南》、清华大学出版社、翻译:(冯飞、薛莹) 5. (严冬梅)、《数据库原理》、清华大学出版社