还剩29页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
__电机学院课程设计孙诚小组学生选课信息管理系统__电机学院电子信息学院大型数据库课程设计设计题目职工考勤管理系统专业计算机科学与技术班级BX0901学号0835姓名李佳骏组长张广琪组员李佳骏赵韵敏2011年12月目录TOC\o1-2\h\z\u1概述
11.1设计背景
11.2研究目的
11.3理论基础的分析
21.4预期结果和意义22需求分析
22.1功能需求
22.2数据流图
32.3功能模块图
42.4系统数据流程图43概念结构设计
53.1局部E-R图
53.2整体E-R图84逻辑结构设计
94.1关系模式
94.2数据关系图95物理结构设计
105.1存储记录结构设计
105.2创建索引126数据库实施
136.1建立数据库
136.2数据表的创建
136.3建立存储过程
166.4创建触发器177数据库运行和维护188结论191概述
1.1设计背景随着企业人事管理的日趋复杂和企业人员的增多,企业的考勤管理变得越来越复杂规范的考勤管理是现代企业提高管理效益的重要保证,而传统的人工管理存在着效率低、不易统计、成本高和易出错等弊端,已经无法适应现代企业的需求随着计算机技术和通信技术的迅速发展,将传统的人工考勤管理计算机化,建立一个高效率的、无差错的考勤管理系统,能够有效的帮助企业实现“公正考勤,高效薪资”,使企业的管理水平登上一个新的台阶企业考勤管理经过如下的业务流程
(1)员工基本信息管理,添加,删除,更改
(2)员工考勤管理,员工根据自己的班次在上下班时分别进行出勤操作,采用手动方式或者使用划卡机由人事部门专门的人员管理出勤和退勤信息
(3)一般在每个月月初进行考勤汇总,汇总信息包括工作日的出勤情况、请假天数、出差天数、休假天数和不同性质的加班记录等
1.2研究目的待__的系统的名称为企业职工在线考勤系统;我们以中小型企业的考勤管理业务为依托,结合科学管理的理论,设计并__一个企业考勤管理信息系统,提供一个科学合理的考勤管理解决方案,__实现无纸化作业根据管理权限的不同,将界面分为一般职员、部门经理、系统___和最高管理者四个层次,系统目标如下
(1)提供简单、方便的操作
(2)根据企业原来的考勤管理制度,为企业不同管理层次提供相应的功能
(3)通过考勤管理无纸化的实现,使企业的考勤管理更加科学规范
(4)节省考勤管理的成本
(5)提高企业考勤管理的透明度和效率,防止“虚假出勤“的现象
(6)对系统提供必要的权限管理
(7)为企业实现整体信息化的其他相关系统提供必要的数据支持
1.3理论基础的分析本设计利用sqlserver2005建立数据库,表格化存储,利用表的查询,连接,修改,删除数据等___工信息,对数据库设定必要的权限,只有具有权限的人才能进行查看,修改数据
1.4预期结果和意义考勤系统能实现职工日考勤记录,记录请假信息,记录出差信息等功能,并最终所有信息归入月统计中去本考勤系统建立了一个高效率的、无差错的考勤管理系统,能够有效的帮助企业实现“公正考勤,高效薪资”,使企业的管理水平登上一个新的台阶2需求分析
2.1功能需求1数据管理功能是设置和管理基础数据,包括加班、请假类别的定义和班次的定义,在全县范围内可以进行基础数据的添加、删除和修改2考勤管理包括出勤动作、出勤信息的查询;上级对下级员工的出勤信息的确认;生成考勤统计信息并可以根据指定的条件进行查询实现从每日出勤到统计全部考勤信息的无纸化操作为方便数据传递和查阅,要根据需求提供不同时间短的考勤统计信息表3加班管理对员工的加班时间进行统计,记录开始时间和结束时间,对加班信息实现添加,删除等操作4请假管理可以提出请假申请,并完善请假信息,如请假开始时间,请假结束时间,请假的次数进行管理5出差管理管理者安排员工出差,对出差时间,次数的管理
2.2数据流图数据流图如图
2.1所示NNMMMMNNMN
2.1数据流图
2.3功能模块图如图
2.2所示,图为功能模块图
2.2功能模块图
2.4系统数据流程图如图
2.3所示,图为数据流程图
2.3数据流程图3概念结构设计
3.1局部E-R图
(1)员工E-R图,如图
3.
1.1所示图
3.1员工E-R图
(2)图
2.
3.2为出勤E-R图图
3.2出勤E-R图
(3)图
3.3为出差E-R图图
3.3出差E-R图
(4)加班E-R图如图
3.4所示
3.4加班E-R图
(5)请假E-R图如图
3.5所示
3.5请假E-R图
(6)月统计E-R图
3.6月统计E-R图
3.2整体E-R图如图
3.7所示,图为整体E-R图
3.7整体E-R图4逻辑结构设计
4.1关系模式职工(职工编号,姓名,性别,年龄)出勤记录(职工编号,出勤编号,上班时间,下班时间,缺勤记录)出差记录(职工编号,出差编号,开始时间,结束时间,统计天数)加班信息(职工编号,加班编号,加班开始时间,加班结束时间,加班时间统计)请假信息(职工编号,请假编号,请假开始时间,请假结束时间,请假时间统计)月统计(职工编号,出勤月统计,出差月统计,加班月统计,请假月统计)
4.2数据关系图如图
4.
2.1所示,在数据库中生成的关系图中,员工编号是员工信息表的主键,是其他表的外键图
4.1数据关系图5物理结构设计
5.1存储记录结构设计在物理结构中,数据的基本存取单位是存储记录有了逻辑结构以后,就可以设计存储记录结构,一个存储记录可以与多个逻辑记录相对应存储记录就包括记录的组成,数据项的类型和长度等在本图中
5.1职工信息表主要包括职工编号,姓名,性别,年龄表
5.1职工信息表列名字段类型约束控制职工编号Char4主键姓名Char6非空性别Char2‘男’或’女’年龄Int非空职称char4非空在本表
5.2中出勤记录包含职工编号,出勤编号,上班时间,下班时间,缺勤记录表
5.2出勤记录表列名字段类型约束控制职工编号Char4外键出勤编号Int主键上班时间Datetime允许空下班时间Datetime允许空缺勤记录Datetime允许空在本图
5.3中出差记录职工编号,出差编号,开始时间,结束时间,统计天数表
5.3出差记录表列名字段类型约束控制职工编号Char4外键出差编号Int主键开始时间Datetime允许空结束时间Datetime允许空统计天数Int允许空在本表
5.4中加班记录表主要包含职工编号,加班编号,开始时间、结束时间时间统计表
5.4加班记录表列名字段类型约束控制职工编号Char4外键加班编号Int主键开始时间Datetime允许空结束时间Datetime允许空时间统计Int允许空在本表
5.5中,请假记录表主要包括职工编号,请假编号,请假开始时间和请假结束时间组成表
5.5请假记录表列名字段类型约束控制职工编号Char4外键请假编号Int主键请假开始时间Datetime允许空请假结束时间Datetime允许空统计天数Int允许空在本图
5.6中月统计主要包括职工编号,出勤月统计,出差月统计,请假月统计,加班月统计表
5.6月统计记录表列名字段类型约束控制职工编号Char4主键出勤月统计Int非空出差月统计Int允许空加班月统计Int允许空请假月统计Int允许空6数据库实施
6.1建立数据库CREATEDATABASE职工考勤ONNAME=职工考勤_dataFILENAME=f:\职工考勤.mdfSIZE=3FILEGROWTH=1LOGONNAME=职工考勤_LOGFILENAME=C:\职工考勤_log.ldfSIZE=1__XSIZE=50FILEGROWTH=10%
6.2数据表的创建
(1)出差记录表CREATETABLE[dbo].[出差记录表][职工编号][char]4NOTNULL[出差编号][int]NOTNULL[开始时间][datetime]NULL[结束时间][datetime]NULL[统计天数][int]NULLCONSTRAINT[out_note_Prim]PRI__RYKEYCLUSTERED[职工编号]ASC[出差编号]ASCWITHPAD_INDEX=OFFSTATISTICS_NORECOMPUTE=OFFIGNORE_DUP_KEY=OFFALLOW_ROW_LOCKS=ONALLOW_PAGE_LOCKS=ONON[PRI__RY]ON[PRI__RY]GOSETANSI_PADDINGOFFGOALTERTABLE[dbo].[出差记录表]WITHCHECKADDCONSTRAINT[FK_出差记录表_职工信息表]FOREIGNKEY[职工编号]REFEREN__S[dbo].[职工信息表][职工编号]GOALTERTABLE[dbo].[出差记录表]CHECKCONSTRAINT[FK_出差记录表_职工信息表]图
6.1出差记录表
(2)出勤记录表CREATETABLE[dbo].[出勤记录表][职工编号][char]4NOTNULL[出勤编号][int]NOTNULL[上班时间][datetime]NULL[下班时间][datetime]NULL[缺勤记录][datetime]NULLCONSTRAINT[work_note_Prim]PRI__RYKEYCLUSTERED[职工编号]ASC[出勤编号]ASCWITHPAD_INDEX=OFFSTATISTICS_NORECOMPUTE=OFFIGNORE_DUP_KEY=OFFALLOW_ROW_LOCKS=ONALLOW_PAGE_LOCKS=ONON[PRI__RY]ON[PRI__RY]GOSETANSI_PADDINGOFFGOALTERTABLE[dbo].[出勤记录表]WITHCHECKADDCONSTRAINT[FK_出勤记录表_职工信息表]FOREIGNKEY[职工编号]REFEREN__S[dbo].[职工信息表][职工编号]GOALTERTABLE[dbo].[出勤记录表]CHECKCONSTRAINT[FK_出勤记录表_职工信息表]图
6.2出勤记录
(3)加班记录表CREATETABLE[dbo].[加班记录表][职工编号][char]4NOTNULL[加班编号][int]NOTNULL[开始时间][datetime]NULL[结束时间][datetime]NULL[时间统计][int]NULLCONSTRAINT[over_note_Prim]PRI__RYKEYCLUSTERED[职工编号]ASC[加班编号]ASCWITHPAD_INDEX=OFFSTATISTICS_NORECOMPUTE=OFFIGNORE_DUP_KEY=OFFALLOW_ROW_LOCKS=ONALLOW_PAGE_LOCKS=ONON[PRI__RY]ON[PRI__RY]GOSETANSI_PADDINGOFFGOALTERTABLE[dbo].[加班记录表]WITHCHECKADDCONSTRAINT[FK_加班记录表_职工信息表]FOREIGNKEY[职工编号]REFEREN__S[dbo].[职工信息表][职工编号]GOALTERTABLE[dbo].[加班记录表]CHECKCONSTRAINT[FK_加班记录表_职工信息表]图
6.3加班记录表
(4)请假记录表CREATETABLE[dbo].[请假记录表][职工编号][char]4NOTNULL[请假编号][int]NOTNULL[开始时间][datetime]NULL[结束时间][datetime]NULL[统计天数][int]NULLCONSTRAINT[off_note_Prim]PRI__RYKEYCLUSTERED[职工编号]ASC[请假编号]ASCWITHPAD_INDEX=OFFSTATISTICS_NORECOMPUTE=OFFIGNORE_DUP_KEY=OFFALLOW_ROW_LOCKS=ONALLOW_PAGE_LOCKS=ONON[PRI__RY]ON[PRI__RY]GOSETANSI_PADDINGOFFGOALTERTABLE[dbo].[请假记录表]WITHCHECKADDCONSTRAINT[FK_请假记录表_职工信息表]FOREIGNKEY[职工编号]REFEREN__S[dbo].[职工信息表][职工编号]GOALTERTABLE[dbo].[请假记录表]CHECKCONSTRAINT[FK_请假记录表_职工信息表]图
6.4请假记录表
(5)月统计表CREATETABLE[dbo].[月统计表][职工编号][char]4NOTNULL[出勤月统计][int]NULL[出差月统计][int]NULL[加班月统计][int]NULL[请假月统计][int]NULLCONSTRAINT[mounth_Prim]PRI__RYKEYCLUSTERED[职工编号]ASCWITHPAD_INDEX=OFFSTATISTICS_NORECOMPUTE=OFFIGNORE_DUP_KEY=OFFALLOW_ROW_LOCKS=ONALLOW_PAGE_LOCKS=ONON[PRI__RY]ON[PRI__RY]GOSETANSI_PADDINGOFFGOALTERTABLE[dbo].[月统计表]WITHCHECKADDCONSTRAINT[FK_月统计表_职工信息表]FOREIGNKEY[职工编号]REFEREN__S[dbo].[职工信息表][职工编号]GOALTERTABLE[dbo].[月统计表]CHECKCONSTRAINT[FK_月统计表_职工信息表]图
6.5月统计表
(6)职工信息表CREATETABLE[dbo].[职工信息表][职工编号][char]4NOTNULL[职工姓名][char]6NOTNULL[性别][char]2NOTNULL[年龄][int]NOTNULL[职称][varchar]50NOTNULLCONSTRAINT[worker_Prim]PRI__RYKEYCLUSTERED[职工编号]ASCWITHPAD_INDEX=OFFSTATISTICS_NORECOMPUTE=OFFIGNORE_DUP_KEY=OFFALLOW_ROW_LOCKS=ONALLOW_PAGE_LOCKS=ONON[PRI__RY]ON[PRI__RY]GOSETANSI_PADDINGOFFGOALTERTABLE[dbo].[职工信息表]WITHCHECKADDCONSTRAINT[____Chk]CHECK[性别]=男OR[性别]=女GOALTERTABLE[dbo].[职工信息表]CHECKCONSTRAINT[____Chk]图
6.6月统计记录表
6.3建立存储过程如图
6.7所示建立5张表存储过程createpro__durep_信息读取@职工编号char4asbeginselect职工编号出差编号开始时间结束时间统计天数from出差记录表where出差记录表.职工编号=@职工编号select职工编号加班编号开始时间结束时间时间统计from加班记录表where加班记录表.职工编号=@职工编号select职工编号请假编号开始时间结束时间统计天数from请假记录表where请假记录表.职工编号=@职工编号SELECT职工编号出勤编号上班时间下班时间缺勤记录FROM出勤记录表where出勤记录表.职工编号=@职工编号select职工编号出勤月统计出差月统计加班月统计请假月统计from月统计表where月统计表.职工编号=@职工编号endreturnGo调试declare@职工编号char4set@职工编号=001executep_信息读取@职工编号图
6.7运行结果
6.4创建触发器
(1)建立一个触发器,删出差记录表一个职工编号同时删月统计表上的相应内容ifexistsselectnamefromsyso__ectswherename=T_触发器andtype=TRdroptriggerT_触发器gocreatetriggerT_触发器on出差记录表fordeleteasbegindeletefrom月统计表from月统计表deleteddwhere月统计表.职工编号=d.职工编号End调试begintranselect*from出差记录表月统计表where出差记录表.职工编号=月统计表.职工编号deletefrom出差记录表where职工编号=009select*from出差记录表月统计表where出差记录表.职工编号=月统计表.职工编号rollback创建一个触发器删除月统计表是删除其他四张表上的相同职工编号的内容ifexistsselectnamefromsyso__ectswherename=T1_触发器andtype=TRdroptriggerT1_触发器gocreatetriggerT1_触发器on月统计表fordeleteasbegindeletefrom出勤记录表from出勤记录表deleteddwhere出勤记录表.职工编号=d.职工编号deletefrom出差记录表from出差记录表deleteddwhere出差记录表.职工编号=d.职工编号deletefrom加班记录表from加班记录表deleteddwhere加班记录表.职工编号=d.职工编号deletefrom请假记录表from请假记录表deleteddwhere请假记录表.职工编号=d.职工编号Endbegintranselect*from月统计表出勤记录表where出勤记录表.职工编号=月统计表.职工编号deletefrom月统计表where职工编号=002select*from月统计表出勤记录表where出勤记录表.职工编号=月统计表.职工编号rollback
(2)创建一个触发器,当增加请假表时候相应增加月统计表的内容ifexistsselect*fromsyso__ectswherename=T3_触发器andtype=TRdroptriggerT3_触发器gocreatetriggerT3_触发器on请假记录表forinsertasbeginupdate月统计表set请假月统计=统计天数from月统计表insertedwhere月统计表.职工编号=inserted.职工编号endselect*from月统计表insertinto请假记录表values008102012/2/50:00:002012/2/20:00:005消息2627,级别14,状态1,第2行违反了PRI__RYKEY约束PK_请假记录表不能在对象dbo.请假记录表中插入重复键语句已终止
6.5创建游标定义一个只读游标“月统计_游标”,逐行显示月统计表的所有信息declare月统计表_游标cursorforselect职工编号出勤月统计出差月统计加班月统计请假月统计from月统计表orderby职工编号forreadonlydeclare@Y_idchar4@Y_syint@Y_wxint@Y_gxint@Y_dateintopen月统计表_游标fetchnextfrom月统计表_游标into@Y_id@Y_sy@Y_wx@Y_gx@Y_datewhile@@fetch_status=0beginselect@Y_id@Y_sy@Y_wx@Y_gx@Y_datefetchnextfrom月统计表_游标into@Y_id@Y_sy@Y_wx@Y_gx@Y_dateendclose月统计表_游标deallocate月统计表_游标
6.6建立视图7数据库运行和维护本系统经过实际的测试和运行,基本可以满足中小企业考勤业务的要求该系统运行稳定,在使用和维护中应该注意以下几个问题
(1)定期备份数据库和日志,以使数据库在发生故障后恢复到一致性状态,保障数据库的完整性
(2)定期清理数据库中的无效数据,以提高运行效率
(3)对软件及运行环境进行日常维护8结论本系统在信息表述上还不完备,一些模块的信息还不够详细,主要是提供的报表有限系统虽然针对中小企业的考勤管理业务对使用打卡机、指纹机进行出、退勤的企业,还需要添加一个采集打卡机和指纹机的数据模块下一步可以再熟悉系统设计风格的基础上,在各个界面上进一步添加多需要的字段和报表,或者添加采集数据的模块,以扩充系统的功能本系统的创新点在于触发器的应用,每增加一条记录,都会重新统计一下记录次数,并存入月纪录中,使得信息更加准确在设计时由于对编程语言知识的匮乏,所以数据库的前台没有做成,如若想更加完善数据库,应该结合一些编程语言,使得操作界面更加人性化,简单化经过一周的课程设计,我们完成了职工考勤系统虽然在课设的遇到了一些困难,但都在我们共同的努力和我老师的细心指导下客服了这些困难,在这次课程设计中,我不仅巩固了在SQL课程中学到的知识,也学习了怎样在团队__中更这些知识,经过这次的课设,使我的SQL语言有了更进一步的·提高,这次课设中,我们系统中使用了存储,游标以及触发器,以及添加,删除,更新这些数据库语言,经过这次的课设,使我对数据库有了更深的理解,并得到了锻炼,为以后的工作学习打下了良好的基础主要参考资料
1、《数据库实验指导》杨海霞主编,人发邮电出版社,2007年5月
2、《数据库系统及应用》陈明主编,清华大学出版社,加班请假请假信息职工加班信息出差记录出差统计出勤月统计出勤记录职工考勤管理信息系统员工基本信息出差记录出勤记录请假记录月统计加班记录各种统计信息管理人员考勤员员工经理审批月度员工考勤统计请假、值班、出差记录上下班时间安排员工出勤记录记录出勤时间年龄姓名编号性别职工年龄职工编号下班时间缺勤记录上班时间出勤记录出差编号职工编号结束时间缺勤记录开始时间出差记录加班编号职工编号加班统计开始时间出勤记录结束时间请假编号编号结束时间请假统计开始时间请假记录职工编号下班时间缺勤记录上班时间出勤记录结束时间3。