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

下载本文档

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

文档简介

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

2、使用, 使得企业员工的管理更加现代化、 科学化、自动化,并可以很好地督促企业员工更好地为企业谋福利。本系统采用 sql server 2008 作为数据库,使用 odbc 作为数据源。在实现数据库部分功能时按照要求创建了触发器和存储过程以及视图。关键词 : 考勤管理 sql server 2008 触发器 存储过程课程设计任务书设计题目:考勤管理系统设计学生姓名杜江龙课程名称数据库原理课程设计专业旺级计科 2012-04地占八、i301、i302、i305、i308 等起止时间2014.06.16-2014.06.20设 计 内 容 及 要 求内容:员工考勤系统能够和考勤机相连,可以把数据导入

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

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

5、/张亚军/裴仰军2014年06月06日目录1 需求分析 01.1 系统目标设计 01.2 系统功能分析 01.3 功能模块分析 11.4 系统全局数据流图 21.5 数据字典 32 概念结构设计82.1 构成系统的实体型82.2 考勤管理系统e-r 图 1.0.3 逻辑结构设计1.13.1 逻辑结构简介1.13.2 关系模型 1.14 物理模型设计1.34.1 定义数据库1.34.2 创建表 1.34.3 创建存储过程2.04.4 创建触发器2.34. 5创建视图 2.6总结2.7致谢2.9参考文献 3.0-1 需求分析1.1 系统目标设计实现企业的考勤管理系统化, 使得企业员工的管理更加现代

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

7、工上下班进行了考勤。(3) :可以对缺勤类型和请假类型进行添加、删除和修改,此外还有缺勤记录表和请假记录表及加班记录表。 其中缺勤记录表的记录是由出勤记录表自动审核生成的。 有了这三个表, 企业可以方便的根据这两个表对员工的工资和津贴进行相应的管理(4) :有出差记录表对员工的出差记录进行管理。(5):在所有的考勤表中对应的汇总表都是由触发器自动生成的,总时间 =结 束时间-起始时间。(6):月记录表,年度记录表是通过存储过程统计生成的,可以对企业的每一个员工的月考勤记录和年考勤记录进行汇总统计。(7):利用考勤机可以扫描当天员工的出勤情况,并自动生产出勤记录,进去公司后,又公司考勤人员考查当

8、天缺勤情况,一起构成上班打卡系统。1.3 功能模块分析根据系统功能的基本要求,可对整个系统划分为几个模块考勤管理系统1基出缺请加出月本勤勤假班旁和信记记记记记仝息录录录录录记管管管官管r录理理理!理理眄i管 理员员出出缺缺请请加加出出月月工工勤勤勤勤假假班班差差和和及及记记记记记记记记记记年年部部录录录录录录录录录录记记门门的的的的的的的的的的录录信信录查录查录查录查录查的的息息入询入询人-询入询入询录查入的与与与与与入询及查维维维维维与维询护护护护护维1.1 功能模块分析1.4 系统全局数据流图系统的全局数据流图, 也称第一层数据流图, 是从整体上描述系统的数据流,反映系统数据的整体流向,给

9、设计者、开发者和用户一个总体描述。图1.2数据流图1.5 数据字典表1.1职工信息表(worker)列名说明字段类型约束控制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主键wor

10、ktime上班时间datetime允许为空endtime下班时间datetime允许为空表1.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请

11、假记录表(offnode)列名说明字段类型约束控制offnum请假编号int主键offtime请假开始时间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)列名说明字段类型约束控制nwtnu

12、m缺勤类型编号int主键nwtype缺勤类型char(16)非空表1.10月统计记录表(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出差年统计i

13、nt允许为空yovernote加班年统计float允许为空yoffnode请假年统计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主键考勤人员姓名ka

14、oqin_namechar(16)非空考勤人员性别kaoqin_sexchar(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 outda

16、ys月 考 勤 汇 总 实 体 型 属 性 : monthnum mworknote moutnote movernote moffnode mnwnode _year _month年度考勤汇总实体型属性: yearhnum yworknote youtnote yovernoteyoffnode ynwnode y_year管理员实体性属性: manger_sex manger_power manger_tel manger_idmanger_degree考勤人员实体性属性: kaoqin_id kaoqin_name kaoqin_sex考勤机实体性属性: kaoqin_ji_id kao

17、qin_ji_type统计人员实体性属性: count_id count_name count_sex-2.2考勤管理系统e-r图缺勤类型表请假类型表请假 :记录出差并记录递交缺勤情况管理员请假类型编号 integer请假类型characters (16)管理员编号 管理员性别 管理员权限 管理员电话 管理员职称 integercharacters (2)characters (16)characters (20)characters (20)identifieridentifier_1it选择请柞类型请假记录表出差编号结束时间 统计天数 出差允许否identifier出差记录表 intege

18、rdate部门信息表缺勤类型编号 缺勤类型 integercharacters (16)identifier_1pi选择缺勤类型缺勤记录表玻勤编号 integer缺勤时间date & timeidentifier卜招出勤钎料考勤人员统计出勤记录表出勤编号 integer上班时间 下班时间identifierdate & timedate & timedateintegercharacters (2)申请请假戊出差部门编另 部门名就 integer请假编号 请假开始时间 请假结束时间 统计天数 请假允许否 integerdate & timedate & timefloat (2) charac

19、ters (2)identifier开始时间 结束时间 时间统计identifier查看出差加班记录表datedatefloat (2)月统计记录表月统计编号 integer 出勤月统计integer出差月统计integer加班月统计float (2)请假月统计integer缺勤月统计integer年integer月integeridentifier 1职工编号 职工姓名 性别 年龄 职称 住址 手机号 电子邮箱identifier加班编号 integer递交加班信息更新与统计characters (16)identifier考勤人员编号identifier釐皿局培勤职工考勤人员姓名 考勤人员

20、性别职工信息表 integercharacters (6)characters (2) integer characters (8)characters (16)characters (11)characters (16)统计人员统h职工统计人员信息表统计人员编号 integer统计人员性别characters (2)identifier_1 考勤人员信息表 integercharacters (16)characters (2)考勤科统计identifier自动考勤机 integer年统计记录表年统计编号 integer 出勤年统计integer出差年统计integerf加班年统计float

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

22、一个实体型转换为一个关系模式 ,一个多对多的关系可以转化为一个关系模式,而一对多的关系可以融合在其他的相关的关系模式中。例如:(1) 职工与考勤机之间是多对一的关系,所以将职工和出勤记录以及属于关系设计成以下关系模式:职工 (wid wname wsex wage wdegree wadd wtel we-mail)考勤机 ( kaoqin_ji_id kaoqin_ji_type)属 于 (wid wname wsex wage wdegree wadd wtel we-mailkaoqin_ji_id kaoqin_ji_type)(2) 统计人员与职工之间是一对多的关系,所以职工和统计人

23、员以及属于关系设计成以下关系模式:职工 (wid wname wsex wage wdegree wadd wtel we-mail)统计人员(count_id count_name count_sex)属 于 (wid wname wsex wage wdegree wadd wtel we-mailcount_id count_name count_sex)(3) 缺勤记录与缺勤类型是多对一的关系, 所以缺勤记录和缺勤类型以及属于关系设计成以下关系模式:缺勤记录(nwnum nwtime)缺勤类型(nwtnum nwtype)属于 (nwnum nwtime nwtnum nwtype)-

24、4物理模型设计数据库物理设计是将逻辑设计影射到存储介质上,利用可用的硬件和软件功能尽可能快地对数据进行物理访问和维护。4.1 定义数据库sql server 2008数据库文件分为3中类型:主数据文件、次数据文件和日 志文件。通过sql语言进行数据库创建,创建数据库的语句如下:create database kaoqsystem;4.2 创建表创建员工基本信息表 worker create table worker (widintnot null,kaoqin_idintnot null,kaoqin_ji_idintnot null,cidintnot null,manger_idintno

25、t null,count_idintnot null,wnamechar(6)null,wsexchar(2)null,wageintnull,wdegreechar(8)null,waddchar(16)null,wtelchar(11)null,we-mailchar(16)null,constraint pk_worker primary key nonclustered (wid)请假类型表 offtypecreate table offtype (offtnumintnot null,offtypechar(16)null,constraint pk_offtype primary

26、key nonclustered (offtnum)go出差记录表 outnotecreate table outnote (outnumintnot null,manger_idintnot null,outtimedatetimenull,backtimedatetimenull,outdaysintnull,out_orchar(2)null,constraint pk_outnote primary key nonclustered (outnum)go加班记录表(overnote)create table overnote (not null,overnumintwidcount_i

27、dovertimeoverendtimetime_countintnot null,intnot null,datetimenull,datetimenull,float(2)null,constraint pk_overnote primary key nonclustered (overnum)go年考勤t己录表 yearnotecreate table yearnote (yearhnumintnot null,count_idintnot null,yworknoteintnull,yoffnodeintnull,ynwnodeintnull,y_yearintnull,yoverno

28、tefloat(2)null,constraint pk_yearnote primary key nonclustered (yearhnum)go出勤记录表 worknotecreate table worknote (wnumintnot null,manger_idintnot null,kaoqin_ji_idintnot null,worktimedatetimenull,endtimedatetimenull,constraint pk_worknote primary key nonclustered (wnum)go部门信息表 chargecreate table charg

29、e (cidintnot null,manger_idintnot null,cnamechar(16)null,constraint pk_charge primary key nonclustered (cid) )go月考勤记录表 monthnotecreate table monthnote (monthnumintnot null,count_idintnot null,mworknoteintnull,moutnoteintnull,movernotefloat(2)null,moffnoteintnull,mnwnodeintnull,_yearintnull,_mouthint

30、null,constraint pk_monthnote primary key nonclustered (monthnum)go缺勤记录表 nwnodecreate table nwnote (nwnumintnot null,nmtnumintnot null,manger_idintnot null,kaoqin_idintnot null,nwtimedatetimenull,constraint pk_nwnote primary key nonclustered (nwnum)go缺勤类型表nwtypecreate table nwtype (nwtnumintnot null,

31、nwtypechar(16)not null,constraint pk_nwtype primary key nonclustered (nwtnum)统计人员信息表create table count_renyuan (count_idintnot null,count_namechar(16)null,count_sexchar(2)null,constraint pk_count_renyuan primary key nonclustered (count_id)go自动考勤机create table zidong_kaoqin (kaoqin_ji_idintnot null,ka

32、oqin_ji_typechar(16)null,constraint pk_zidong_kaoqin primary key nonclustered (kaoqin_ji_id)go考勤人员create table kaoqin (kaoqin_idintnot null,kaoqin_namechar(16)null,kaoqin_sexchar(2)null,constraint pk_kaoqin primary key nonclustered (kaoqin_id)go管理员create table manger (manger_idintnot null,manger_sex

33、char(2)null,manger_powerchar(16)null,manger_telchar(20)null,manger_degreechar(20)null,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

34、dbo .worker where wid = wid end在部门信息表上创建添加部门信息的存储过程:use kaoqsystem goset ansi_nulls ongoset 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 quoted_identifier ongo

35、create procedure dbo.insert_worker(wid int,kaoqin_id int,kaoqin_ji_id int,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,w

36、sex ,wage ,wdegree ,wadd ,wtel ,we-mail)values(wid,kaoqin_id,kaoqin_ji_id,cid,manger_id,count_id, wname, wsex ,wage ,wdegree ,wadd ,wtel ,we_mail) end在部门信息表上建立一个更新部门信息的存储过程:use kaoqsystem goset ansi_nulls ongoset quoted_identifier ongo create procedure dbo .update_charge(cid_1 int ,cid_2 int ,cname

37、char(16)as update dbo .chargeset cid = cid_2 ,cname = cnamewhere (cid = cid_1 )4.4 创建触发器在请假记录表中当请假结束的天数插入后创建统计请假天数的触发器:use kaoqsystemgoset ansi_nulls ongoset quoted_identifier ongocreate trigger dbo .outnote_offdays on dbo .offnoteafter insert ,updateasbeginset nocount ondeclare _offnum intdeclare _

38、offtime datetimedeclare _offendtime datetimedeclare _offdays floatselect _offendtime = inserted .offendtime ,_offnum = inserted .offnum ,_offtime = inserted .offtime from insertedset _offdays = datediff (hour ,_offtime ,_offendtime ) update offnoteset offnote .offdays = _offdays /24.0where offnote .

39、offnum = _offnum end在出差记录表上当出差结束日期插入后创建统计出差天数的触发器:use kaoqsystemgoset ansi_nulls ongoset quoted_identifier ongocreate trigger dbo .outnote_outdays on dbo .outnoteafter insert , updateasbeginset nocount ondeclare _outnum intdeclare _backtime datetimedeclare _outtime datetimeselect _backtime = inserte

40、d .backtime ,_outnum =inserted .outnum ,_outtime = inserted .outtimefrom insertedupdate outnoteset outnote .outdays = datediff (day ,_outtime ,_backtime )where outnote .outnum = _outnumend在加班记录表上当加班结束时间录入建立一个统计加班时间的触发器:use kaoqsystemgoset ansi_nulls ongogo create trigger dbo .overnote_overdays on dbo .overnoteafter insert ,updateasbeginset nocount ondeclare _overnum intdeclare _overtime datetimedeclare _overendtime datetimedeclare _overtimes float

温馨提示

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

评论

0/150

提交评论