考勤管理数据库系统课程设计_第1页
考勤管理数据库系统课程设计_第2页
考勤管理数据库系统课程设计_第3页
考勤管理数据库系统课程设计_第4页
考勤管理数据库系统课程设计_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、重庆科技学院课程设计报告 院(系):_ 电气与信息工程学院 _ 专业班级: 计科4班 学生姓名: 杜江龙 学 号: 2012442090 设计地点(单位)_第一实验楼I302_ _ _ _ 设计题目:_考勤管理系统设计_ _ _ 完成日期: 2014年 06月 20日 指导教师评语: _ _ _ 成绩(五级记分制):_ _ 指导教师(签字):_ _摘要 在现代企业管理中,企业信息化是提高企业管理效率的重要手段。考勤管理是企业管理的重要部分,在公司起着越来越重要作用。本课程设计主要是对公司各项人员的考勤管理。 考勤管理系统分为8个模块,基本信息管理模块、出勤记录模块、缺勤记录模块、加班记录模块、

2、出差记录模块、请假记录模块。此外,该数据库的设计还可与考勤管理系统等其它系统配合使用,使得企业员工的管理更加现代化、科学化、自动化,并可以很好地督促企业员工更好地为企业谋福利。本系统采用SQL Server 2008作为数据库,使用ODBC作为数据源。在实现数据库部分功能时按照要求创建了触发器和存储过程以及视图。关键词: 考勤管理 SQL Server 2008 触发器 存储过程课程设计任务书设计题目:考勤管理系统设计学生姓名杜江龙课程名称数据库原理课程设计专业班级计科2012-04地 点I301、I302、I305、I308等起止时间设计内容及要求内容: 员工考勤系统能够和考勤机相连,可以把

3、数据导入数据库中,从而完成自动、高效、科学的考勤信息的输入。 可以完成员工考勤信息的手工输入、修改、删除等操作。 可以设定缺勤的类型,如病假、事假等。 可以进行考勤情况统计,例如月终、年终统计,生成统计报表并将统计结果打印出来。 可以对数据库进行维护,例如数据备份。 要有相应的帮助文件。要求: 按照数据库系统开发步骤进行数据库概念结构设计、逻辑结构设计、物理结构设计,使学生掌握数据库应用软件的开发流程,SQL语句的使用和存储过程的使用。设计参数至少5个表结构;3个存储过程;2个触发器;3个视图。进度要求19.1 讲课 阅读分析任务书 制订设计计划19.2-3 需求分析 概念结构设计19.4-5

4、 概念结构设计准备文挡20.1-3 逻辑结构设计 物理结构设计20.4-5 写文挡 答辩 交设计报告书参考资料1雷亮等数据库原理课程设计指导书2王珊、萨师煊数据库系统概述(第四版) 北京:高等教育出版社2006。3C.J.Date著孟小峰、王珊等译数据库系统导论(第8版) 北京:机械工业出版社.2007。4陈根才等. 数据库课程设计浙江浙江大学出版社2007说明.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。.若填写内容较多可另纸附后。3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。教研室主任: 指导教师:雷亮/游明英/张亚军/裴仰军 2

5、014年 06 月 06 日目录1 需求分析11.1 系统目标设计11.2 系统功能分析11.3 功能模块分析21.4 系统全局数据流图31.5 数据字典42 概念结构设计72.1 构成系统的实体型72.2 考勤管理系统E-R图83 逻辑结构设计93.1逻辑结构简介93.2 关系模型94物理模型设计114.1定义数据库114.2 创建表114.3 创建存储过程164.4 创建触发器184. 5 创建视图21总结22致谢23参考文献241 需求分析1.1 系统目标设计实现企业的考勤管理系统化,使得企业员工的管理更加现代化、科学化、自动化,并可以很好地督促企业员工,更好地为企业谋福利。1.2 系统

6、功能分析(1):为了保证员工信息及部门信息的添加、删除、修改操作方便,在数据库中建立了员工信息表以及部门信息表,其中员工信息表包括了每个员工的姓名、性别、年龄、所在部门、职位、电话、家庭住址等详细的个人资料。 (2):为了方便员工考勤系统能够和考勤机相连,可以把数据导入数据库中,从而完成自动、高效、科学的考勤信息的输入,我们建立了一个出勤记录表,员工在上班的时候输入员工信息号,就可以自动录入当前的时间,表示上班打卡,在员工下班的时候只需输入今天上班时的出勤记录编号便可以自动录入当前下班的时间,方便而高效的对员工上下班进行了考勤。(3):可以对缺勤类型和请假类型进行添加、删除和修改,此外还有缺勤

7、记录表和请假记录表及加班记录表。其中缺勤记录表的记录是由出勤记录表自动审核生成的。有了这三个表,企业可以方便的根据这两个表对员工的工资和津贴进行相应的管理(4):有出差记录表对员工的出差记录进行管理。 (5):在所有的考勤表中对应的汇总表都是由触发器自动生成的,总时间=结束时间 起始时间。(6):月记录表,年度记录表是通过存储过程统计生成的,可以对企业的每一个员工的月考勤记录和年考勤记录进行汇总统计。 (7):利用考勤机可以扫描当天员工的出勤情况,并自动生产出勤记录,进去公司后,又公司考勤人员考查当天缺勤情况,一起构成上班打卡系统。1.3 功能模块分析 根据系统功能的基本要求,可对整个系统划分

8、为几个模块考勤管理系统基本信息管理出勤记录管理缺勤记录管理请假记录管理加班记录管理出差记录管理月和年记录管理员工及部门信息入及维护员工及部门信息的查询出勤记录的录入与维护出勤记录的查询缺勤记录的录入与维护缺勤记录的查询请假记录的录入与维护请假记录的查询加班记录的录入与维护加班记录的查询出差记录的录入与维护出差记录的查询月和年记录的录入与维护月和年记录的查询图1.1 功能模块分析1.4 系统全局数据流图 系统的全局数据流图,也称第一层数据流图,是从整体上描述系统的数据流,反映系统数据的整体流向,给设计者、开发者和用户一个总体描述。图1.2 数据流图1.5 数据字典表1.1 职工信息表(worke

9、r)列名说明字段类型约束控制WID职工编号Int主键WName职工姓名Char(6)非空WSex性别Char(2)男或女Wage年龄Int非空Wdegree职称Char(8)非空Wadd住址Char(16)非空WTel手机号Char(11)非空WE-mail电子邮箱Char(16)允许为空表1.2 部门信息表(Charge)列名说明字段类型约束控制CID部门编号Int主键CName部门名称Char(16)非空表1.3 出勤记录表(worknote)列名说明字段类型约束控制Wnum出勤编号Int主键WorkTime上班时间Datetime允许为空EndTime下班时间Datetime允许为空表1

10、.4 出差记录表(Outnote)列名说明字段类型约束控制Outnum出差编号Int主键Outtime开始时间Datetime允许为空Backtime结束时间Datetime允许为空Outdays统计天数Int允许为空Out_or出差允许否Char(2)是和否表1.5 加班记录表(Overnote)列名说明字段类型约束控制Overnum加班编号Int主键Overtime开始时间Datetime允许为空Overendtime结束时间Datetime允许为空Overtimes时间统计Float允许为空表1.6 请假记录表(Offnode)列名说明字段类型约束控制Offnum请假编号Int主键Off

11、time请假开始时间Datetime允许为空Offendtime请假结束时间Datetime允许为空Offdays统计天数Float允许为空Off_or请假允许否Char(2)是和否表1.7 缺勤记录表(NWnode)列名说明字段类型约束控制NWnum缺勤编号Int主键NWtime缺勤时间Datetime非空表1.8 请假类型表(Offtype)列名说明字段类型约束控制Offtnum请假类型编号Int主键Offtype请假类型Char(16)非空表1.9 缺勤类型表(NWtype)列名说明字段类型约束控制NWtnum缺勤类型编号Int主键NWtype缺勤类型Char(16)非空表1.10 月统

12、计记录表(Monthnote)列名说明字段类型约束控制Monthnum月统计编号Int主键MWorknote出勤月统计Int允许为空MOutnote出差月统计Int允许为空MOvernote加班月统计Float允许为空MOffnode请假月统计Int允许为空MNWnode缺勤月统计Int允许为空_Year年Int允许为空_Month月Int允许为空表1.11 年统计记录表(Yearnote)列名说明字段类型约束控制Yearhnum年统计编号Int主键YWorknote出勤年统计Int允许为空YOutnote出差年统计Int允许为空YOvernote加班年统计Float允许为空YOffnode请

13、假年统计Int允许为空YNWnode缺勤年统计Int允许为空Y_year年Int允许为空表1.12 管理员信息表(Manger)名称代码字段类型约束控制管理员编号Manger_idInt主键管理员性别Manger_sexChar(2)非空管理员权限Manger_powerChar(16)非空管理员电话Manger_telChar(20)允许为空管理员职称Manger_degreeChar(20)允许为空表1.13 考勤人员信息表(Kaogin)名称代码字段类型约束控制考勤人员编号Kaoqin_idInt主键考勤人员姓名Kaoqin_nameChar(16)非空考勤人员性别Kaoqin_sexC

14、har(2)非空表1.14 自动考勤机信息表(Zidongkaogin)名称代码字段类型约束控制考勤机子编号kaoqin_ji_idInt主键考勤机子类型kaoqin_ji_typeChar(16)允许为空表1.15 统计人员信息表(Tongji_renyuan)名称代码字段类型约束控制考勤人员编号Count_idInt主键考勤人员姓名Count_nameChar(16)非空考勤人员性别Count_sexChar(2)非空2 概念结构设计2.1 构成系统的实体型由考勤管理系统的数据流图和数据字典,抽取出系统的12个主要实体,包括:员工、出勤记录、缺勤记录、加班记录、请假记录、出差记录 、月考勤

15、汇总、年度考勤汇总。员工实体型属性:WID WName WSex Wage Wdegree Wadd WTel WE-mail出勤记录实体型属性:Wnum WorkTime EndTime缺勤记录实体型属性: NWnum NWtime加班记录记录实体型属性: Overnum Overtime Overendtime Overtimes请假记录实体型属性: Offnum Offtime Offendtime Offdays出差记录实体型属性: Outnum Outtime Backtime Outdays月考勤汇总实体型属性: Monthnum MWorknote MOutnote MOvern

16、ote MOffnode MNWnode _Year _Month年度考勤汇总实体型属性: Yearhnum YWorknote YOutnote YOvernote YOffnode YNWnode Y_year管理员实体性属性: Manger_sex Manger_power Manger_tel Manger_id Manger_degree考勤人员实体性属性: Kaoqin_id Kaoqin_name Kaoqin_sex 考勤机实体性属性: kaoqin_ji_id kaoqin_ji_type统计人员实体性属性: Count_id Count_name Count_sex 2.2

17、 考勤管理系统E-R图图2.1 考勤管理系统E-R图3 逻辑结构设计3.1逻辑结构简介逻辑结构设计就是把概念结构设计阶段设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。 设计逻辑结构一般分为3步进行:(1) 将概念结构转换为一般的关系、网状、层次模型;(2) 将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换;(3) 对数据模型进行优化。3.2 关系模型 将E-R图转换为关系模型实际上就是要讲实体型、实体的属性和实体型之间的联系转换为关系模式,这种转换一般遵循如下原则:一个实体型转换为一个关系模式,一个多对多的关系可以转化为一个关系模式,而一对多的关

18、系可以融合在其他的相关的关系模式中。例如: (1) 职工与考勤机之间是多对一的关系,所以将职工和出勤记录以及属于关系设计成以下关系模式:职工(WID WName WSex Wage Wdegree Wadd WTel WE-mail)考勤机( kaoqin_ji_id kaoqin_ji_type) 属于(WID WName WSex Wage Wdegree Wadd WTel WE-mail kaoqin_ji_id kaoqin_ji_type) (2) 统计人员与职工之间是一对多的关系,所以职工和统计人员以及属于关系设计成以下关系模式: 职工(WID WName WSex Wage W

19、degree Wadd WTel WE-mail)统计人员(Count_id Count_name Count_sex) 属于(WID WName WSex Wage Wdegree Wadd WTel WE-mail Count_id Count_name Count_sex) (3) 缺勤记录与缺勤类型是多对一的关系,所以缺勤记录和缺勤类型以及属于关系设计成以下关系模式:缺勤记录(NWnum NWtime)缺勤类型(NWtnum NWtype)属于(NWnum NWtime NWtnum NWtype) 4物理模型设计数据库物理设计是将逻辑设计影射到存储介质上,利用可用的硬件和软件功能尽可

20、能快地对数据进行物理访问和维护。4.1定义数据库SQL Server 2008数据库文件分为3中类型:主数据文件、次数据文件和日志文件。通过SQL语言进行数据库创建,创建数据库的语句如下:Create database kaoQsystem;4.2 创建表创建员工基本信息表 worker create table worker ( WID int not null, Kaoqin_id int not null, kaoqin_ji_id int not null, CID int not null, Manger_id int not null, Count_id int not null,

21、 WName char(6) null, WSex char(2) null, Wage int null, Wdegree char(8) null, Wadd char(16) null, WTel char(11) null, WE-mail char(16) null, constraint PK_WORKER primary key nonclustered (WID)请假类型表 Offtype create table offtype ( OFFtnum int not null, OFFtype char(16) null, constraint PK_OFFTYPE prima

22、ry key nonclustered (OFFtnum)go出差记录表 Outnote create table outnote ( Outnum int not null, Manger_id int not null, Outtime datetime null, Backtime datetime null, Outdays int null, Out_or char(2) null, constraint PK_OUTNOTE primary key nonclustered (Outnum)Go加班记录表(Overnote) create table overnote ( Over

23、num int not null, WID int not null, Count_id int not null, Overtime datetime null, Overendtime datetime null, Time_count float(2) null, constraint PK_OVERNOTE primary key nonclustered (Overnum)Go年考勤记录表 Yearnote create table yearnote ( Yearhnum int not null, Count_id int not null, YWorknote int null,

24、 YOutnote int null, YOvernote float(2) null, YOffnode int null, YNWnode int null, Y_year int null, constraint PK_YEARNOTE primary key nonclustered (Yearhnum)Go出勤记录表 Worknote create table worknote ( Wnum int not null, Manger_id int not null, kaoqin_ji_id int not null, Worktime datetime null, EndTime

25、datetime null, constraint PK_WORKNOTE primary key nonclustered (Wnum)Go部门信息表 Charge create table charge ( CID int not null, Manger_id int not null, CName char(16) null, constraint PK_CHARGE primary key nonclustered (CID)Go月考勤记录表 Monthnote create table monthnote ( Monthnum int not null, Count_id int

26、not null, MWorknote int null, MOutnote int null, MOvernote float(2) null, MOffnote int null, MNWnode int null, _Year int null, _Mouth int null, constraint PK_MONTHNOTE primary key nonclustered (Monthnum)Go缺勤记录表 NWnode create table nwnote ( NWnum int not null, NMtnum int not null, Manger_id int not n

27、ull, Kaoqin_id int not null, NWtime datetime null, constraint PK_NWNOTE primary key nonclustered (NWnum)Go缺勤类型表 NWtype create table NWtype ( NWtnum int not null, NWtype char(16) not null, constraint PK_NWTYPE primary key nonclustered (NWtnum)统计人员信息表 =create table Count_renyuan ( Count_id int not nul

28、l, Count_name char(16) null, Count_sex char(2) null, constraint PK_Count_renyuan primary key nonclustered (Count_id)go自动考勤机 =create table Zidong_kaoqin ( kaoqin_ji_id int not null, kaoqin_ji_type char(16) null, constraint PK_Zidong_kaoqin primary key nonclustered (kaoqin_ji_id)Go考勤人员=create table ka

29、oqin ( Kaoqin_id int not null, Kaoqin_name char(16) null, Kaoqin_sex char(2) null, constraint PK_KAOQIN primary key nonclustered (Kaoqin_id)go管理员 =create table manger ( Manger_id int not null, Manger_sex char(2) null, Manger_power char(16) null, Manger_tel char(20) null, Manger_degree char(20) null,

30、 constraint PK_MANGER primary key nonclustered (Manger_id)go4.3 创建存储过程在员工记录表中创建删除员工信息的存储过程:USE kaoQsystemGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOcreate procedure dbo.delete_worker(WID int)asbegindelete from dbo.worker where WID = WIDend在部门信息表上创建添加部门信息的存储过程:USE kaoQsystemGOSET ANSI_NULLS ONGOS

31、ET QUOTED_IDENTIFIER ONGOcreate procedure dbo.insert_charge( CID int,CName char(16)as begininsert into dbo.charge(CID,CName)values(CID,CName)end在员工信息表上创建添加员工信息的存储过程:USE kaoQsystemGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOcreate procedure dbo.insert_worker(WID int,Kaoqin_id int,Kaoqin_ji_id int,

32、CID int,Manger_id int,Count_id int, WName char(6), WSex char(2), Wage int, Wdegree char(8), Wadd char(16), WTel char(11), WE_mail char(16)asbegininsert into dbo.worker(WID,Kaoqin_id,Kaoqin_ji_id,CID,Manger_id,Count_id,WName, WSex ,Wage ,Wdegree ,Wadd ,WTel ,WE-mail)values(WID,Kaoqin_id,Kaoqin_ji_id,

33、CID,Manger_id,Count_id,WName, WSex ,Wage ,Wdegree ,Wadd ,WTel ,WE_mail)end在部门信息表上建立一个更新部门信息的存储过程:USE kaoQsystemGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOcreate procedure dbo.update_charge(CID_1 int,CID_2 int,CName char(16)as update dbo.chargeset CID=CID_2,CName=CNamewhere (CID=CID_1)4.4 创建触发器在请

34、假记录表中当请假结束的天数插入后创建统计请假天数的触发器:USE kaoQsystemGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOcreate trigger dbo.Outnote_Offdays on dbo.Offnoteafter insert,updateasbeginset nocount ondeclare _offnum intdeclare _offtime datetime declare _offendtime datetimedeclare _offdays floatselect _offendtime = inser

35、ted.Offendtime,_offnum = inserted.Offnum,_offtime = inserted.Offtimefrom insertedset _offdays=datediff(hour,_offtime,_offendtime)update Offnoteset Offnote.Offdays = _offdays/24.0where Offnote.Offnum = _offnumend在出差记录表上当出差结束日期插入后创建统计出差天数的触发器:USE kaoQsystemGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ON

36、GOcreate trigger dbo.Outnote_Outdays on dbo.Outnoteafter insert, updateasbeginset nocount ondeclare _outnum intdeclare _backtime datetime declare _outtime datetimeselect _backtime = inserted.Backtime,_outnum = inserted.Outnum,_outtime = inserted.Outtimefrom insertedupdate Outnoteset Outnote.Outdays

37、= datediff(day,_outtime,_backtime)where Outnote.Outnum = _outnumend在加班记录表上当加班结束时间录入建立一个统计加班时间的触发器:USE kaoQsystemGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOcreate trigger dbo.Overnote_Overdays on dbo.Overnoteafter insert,updateasbeginset nocount ondeclare _overnum intdeclare _overtime datetime declare _overendtime datetimedeclare _overtimes floatselect _overendtime = inserted.Overendtime,_overtime

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论