• 266.00 KB
  • 2022-05-17 13:01:10 发布

数据库原理课程设计报告考勤管理系统

  • 27页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
重庆科技学院课程设计报告院(系):_电气与信息工程学院_专业班级:学生姓名:学号:设计地点(单位)______第一实验楼I524___________设计题目:____________考勤管理系统设计__________完成日期:2012年7月6日指导教师评语:___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________成绩(五级记分制):________________指导教师(签字):________________ 重庆科技学院《数据库原理》课程设计报告摘要在现代企业管理中,企业信息化是提高企业管理效率的重要手段。考勤管理是企业管理的重要部分,在公司起着越来越重要作用。本课程设计主要是对公司各项人员的考勤管理。考勤管理系统分为8个模块,基本信息管理模块、出勤记录模块、缺勤记录模块、加班记录模块、出差记录模块、请假记录模块。此外,该数据库的设计还可与工资管理系统等其它系统配合使用,使得企业员工的管理更加现代化、科学化、自动化,并可以很好地督促企业员工更好地为企业谋福利。本系统采用SQLServer2005作为数据库,使用ODBC作为数据源。在实现数据库部分功能时按照要求创建了触发器和存储过程以及视图。关键词:考勤管理SQLServer2005触发器存储过程23 重庆科技学院《数据库原理》课程设计报告课程设计任务书设计题目:考勤管理系统设计学生姓名平张川课程名称数据库原理课程设计专业班级计科2010-03地点I524和计算机自主学习中心起止时间2012.6.25-2012.7.6设计内容及要求内容:²员工考勤系统能够和考勤机相连,可以把数据导入数据库中,从而完成自动、高效、科学的考勤信息的输入。²可以完成员工考勤信息的手工输入、修改、删除等操作。²可以设定缺勤的类型,如病假、事假等。²可以进行考勤情况统计,例如月终、年终统计,生成统计报表并将统计结果打印出来。²可以对数据库进行维护,例如数据备份。²要有相应的帮助文件。要求:按照数据库系统开发步骤进行数据库概念结构设计、逻辑结构设计、物理结构设计,使学生掌握数据库应用软件的开发流程,SQL语句的使用和存储过程的使用。设计参数至少5个表结构;3个存储过程;2个触发器;3个视图。进度要求19.1讲课阅读分析任务书制订设计计划19.2-3需求分析概念结构设计19.4-5概念结构设计准备文挡20.1-3逻辑结构设计物理结构设计20.4-5写文挡答辩交设计报告书参考资料1.雷亮等《数据库原理课程设计》指导书2.王珊、萨师煊.《数据库系统概述》(第四版).北京:高等教育出版社.2006。3.C.J.Date著.孟小峰、王珊等译.《数据库系统导论》(第8版).北京:机械工业出版社.2007。4.陈根才等.数据库课程设计.浙江.浙江大学出版社.2007说明1.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。2.若填写内容较多可另纸附后。3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。教研室主任:指导教师:雷亮/游明英/张亚军/裴仰军2012年07月05日23 重庆科技学院《数据库原理》课程设计报告目录1需求分析11.1系统目标设计11.2系统功能分析11.3功能模块分析21.4系统全局数据流图31.5数据字典32概念结构设计62.1构成系统的实体型62.2工资管理系统E-R图73逻辑结构设计83.1逻辑结构简介83.2关系模型84物理模型设计104.1定义数据库104.2创建表104.3创建存储过程134.4创建触发器154.5创建视图20总结21致谢22参考文献2323 重庆科技学院《数据库原理》课程设计报告1需求分析1.1系统目标设计实现企业的考勤管理系统化,使得企业员工的管理更加现代化、科学化、自动化,并可以很好地督促企业员工,更好地为企业谋福利。1.2系统功能分析(1):为了保证员工信息及部门信息的添加、删除、修改操作方便,在数据库中建立了员工信息表以及部门信息表,其中员工信息表包括了每个员工的姓名、性别、年龄、所在部门、职位、电话、家庭住址等详细的个人资料。(2):为了方便员工考勤系统能够和考勤机相连,可以把数据导入数据库中,从而完成自动、高效、科学的考勤信息的输入,我们建立了一个出勤记录表,员工在上班的时候输入员工信息号,就可以自动录入当前的时间,表示上班打卡,在员工下班的时候只需输入今天上班时的出勤记录编号便可以自动录入当前下班的时间,方便而高效的对员工上下班进行了考勤。(3):可以对缺勤类型和请假类型进行添加、删除和修改,此外还有缺勤记录表和请假记录表及加班记录表。其中缺勤记录表的记录是由出勤记录表自动审核生成的。有了这三个表,企业可以方便的根据这两个表对员工的工资和津贴进行相应的管理(4):有出差记录表对员工的出差记录进行管理。(5):在所有的考勤表中对应的汇总表都是由触发器自动生成的,总时间=结束时间–起始时间。(6):月记录表,年度记录表是通过存储过程统计生成的,可以对企业的每一个员工的月考勤记录和年考勤记录进行汇总统计。23 重庆科技学院《数据库原理》课程设计报告1.3功能模块分析根据系统功能的基本要求,可对整个系统划分为几个模块考勤管理系统基本信息管理出勤记录管理缺勤记录管理请假记录管理加班记录管理出差记录管理月和年记录管理员工及部门信息录入及维护员工及部门信息的查询出勤记录的录入与维护出勤记录的查询缺勤记录的录入与维护缺勤记录的查询请假记录的录入与维护请假记录的查询加班记录的录入与维护加班记录的查询出差记录的录入与维护出差记录的查询月和年记录的录入与维护月和年记录的查询图1.1功能模块分析23 重庆科技学院《数据库原理》课程设计报告1.4系统全局数据流图系统的全局数据流图,也称第一层数据流图,是从整体上描述系统的数据流,反映系统数据的整体流向,给设计者、开发者和用户一个总体描述。图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)非空23 重庆科技学院《数据库原理》课程设计报告表1.3出勤记录表(worknote)列名说明字段类型约束控制Wnum出勤编号Int主键WorkTime上班时间Datetime允许为空EndTime下班时间Datetime允许为空表1.4出差记录表(Outnote)列名说明字段类型约束控制Outnum出差编号Int主键Outtime开始时间Datetime允许为空Backtime结束时间Datetime允许为空Outdays统计天数Int允许为空表1.5加班记录表(Overnote)列名说明字段类型约束控制Overnum加班编号Int主键Overtime开始时间Datetime允许为空Overendtime结束时间Datetime允许为空Overtimes时间统计Float允许为空表1.6请假记录表(Offnode)列名说明字段类型约束控制Offnum请假编号Int主键Offtime请假开始时间Datetime允许为空Offendtime请假结束时间Datetime允许为空Offdays统计天数Float允许为空表1.7缺勤记录表(NWnode)列名说明字段类型约束控制NWnum缺勤编号Int主键NWtime缺勤时间Datetime非空表1.8请假类型表(Offtype)列名说明字段类型约束控制Offtnum请假类型编号Int主键Offtype请假类型Char(16)非空表1.9缺勤类型表(NWtype)列名说明字段类型约束控制NWtnum缺勤类型编号Int主键NWtype缺勤类型Char(16)非空23 重庆科技学院《数据库原理》课程设计报告表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出差年统计Int允许为空YOvernote加班年统计Float允许为空YOffnode请假年统计Int允许为空YNWnode缺勤年统计Int允许为空Y_year年Int允许为空23 重庆科技学院《数据库原理》课程设计报告2概念结构设计2.1构成系统的实体型由考勤管理系统的数据流图和数据字典,抽取出系统的8个主要实体,包括:员工、出勤记录、缺勤记录、加班记录、请假记录、出差记录、月考勤汇总、年度考勤汇总。员工实体型属性:WIDWNameWSexWageWdegreeWaddWTelWE-mail出勤记录实体型属性:WnumWorkTimeEndTime缺勤记录实体型属性:NWnumNWtime加班记录记录实体型属性:OvernumOvertimeOverendtimeOvertimes请假记录实体型属性:OffnumOfftimeOffendtimeOffdays出差记录实体型属性:OutnumOuttimeBacktimeOutdays月考勤汇总实体型属性:MonthnumMWorknoteMOutnoteMOvernoteMOffnodeMNWnode_Year_Month年度考勤汇总实体型属性:YearhnumYWorknoteYOutnoteYOvernoteYOffnodeYNWnodeY_year23 重庆科技学院《数据库原理》课程设计报告2.2工资管理系统E-R图图2.1考勤管理系统E-R图23 重庆科技学院《数据库原理》课程设计报告3逻辑结构设计3.1逻辑结构简介逻辑结构设计就是把概念结构设计阶段设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。设计逻辑结构一般分为3步进行:(1)将概念结构转换为一般的关系、网状、层次模型;(2)将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换;(3)对数据模型进行优化。3.2关系模型将E-R图转换为关系模型实际上就是要讲实体型、实体的属性和实体型之间的联系转换为关系模式,这种转换一般遵循如下原则:一个实体型转换为一个关系模式,一个多对多的关系可以转化为一个关系模式,而一对多的关系可以融合在其他的相关的关系模式中。例如:(1)职工与出勤记录之间是一对多的关系,所以将职工和出勤记录以及属于关系设计成以下关系模式:职工(WIDWNameWSexWageWdegreeWaddWTelWE-mail)出勤记录(WnumWorkTimeEndTime)属于(WIDWNameWSexWageWdegreeWaddWTelWE-mailWnumWorkTimeEndTime)(2)职工与年统计记录之间是一对多的关系,所以职工和年统计记录以及属于关系设计成以下关系模式:职工(WIDWNameWSexWageWdegreeWaddWTelWE-mail)年统计记录(YearhnumYWorknoteYOutnoteYOvernoteYOffnodeYNWnodeY_year)23 重庆科技学院《数据库原理》课程设计报告属于(WIDWNameWSexWageWdegreeWaddWTelWE-mailYearhnumYWorknoteYOutnoteYOvernoteYOffnodeYNWnodeY_year)(3)缺勤记录与缺勤类型是多对一的关系,所以缺勤记录和缺勤类型以及属于关系设计成以下关系模式:缺勤记录(NWnumNWtime)缺勤类型(NWtnumNWtype)属于(NWnumNWtimeNWtnumNWtype)23 重庆科技学院《数据库原理》课程设计报告4物理模型设计数据库物理设计是将逻辑设计影射到存储介质上,利用可用的硬件和软件功能尽可能快地对数据进行物理访问和维护。4.1定义数据库SQLServer2000数据库文件分为3中类型:主数据文件、次数据文件和日志文件。通过SQL语言进行数据库创建,创建数据库的语句如下:CreatedatabasekaoQsystem;4.2创建表创建员工基本信息表workercreatetableworker(WIDintnotnull,CIDintnotnull,WNamechar(6)notnull,WSexchar(2)notnull,Wageintnotnull,Wdegreechar(8)notnull,Waddchar(16)notnull,WTelchar(11)notnull,"WE-mail"char(16)null,constraintPK_WORKERprimarykeynonclustered(WID))23 重庆科技学院《数据库原理》课程设计报告请假类型表OfftypecreatetableOfftype(Offtnumintnotnull,Offtypechar(16)notnull,constraintPK_OFFTYPEprimarykeynonclustered(Offtnum))出差记录表OutnotecreatetableOutnote(Outnumintnotnull,WIDintnotnull,Outtimedatetimenull,Backtimedatetimenull,Outdaysintnull,constraintPK_OUTNOTEprimarykeynonclustered(Outnum))加班记录表(Overnote)createtableOvernote(Overnumintnotnull,WIDintnotnull,Overtimedatetimenull,Overendtimedatetimenull,Overdaysfloat(2)null,constraintPK_OVERNOTEprimarykeynonclustered(Overnum))年考勤记录表YearnotecreatetableYearnote(Yearhnumintnotnull,23 重庆科技学院《数据库原理》课程设计报告WIDintnotnull,YWorknoteintnull,YOutnoteintnull,YOvernotefloat(2)null,YOffnodeintnull,YNWnodeintnull,Y_yearintnull,constraintPK_YEARNOTEprimarykeynonclustered(Yearhnum))出勤记录表Worknotecreatetableworknote(Wnumintnotnull,WIDintnotnull,WorkTimedatetimenull,EndTimedatetimenull,constraintPK_WORKNOTEprimarykeynonclustered(Wnum))部门信息表ChargecreatetableCharge(CIDintnotnull,CNamechar(16)notnull,constraintPK_CHARGEprimarykeynonclustered(CID))月考勤记录表MonthnotecreatetableMonthnote(Monthnumintnotnull,WIDintnotnull,MWorknoteintnull,23 重庆科技学院《数据库原理》课程设计报告MOutnoteintnull,MOvernotefloat(2)null,MOffnodeintnull,MNWnodeintnull,_Yearintnull,_Monthintnull,constraintPK_MONTHNOTEprimarykeynonclustered(Monthnum))缺勤记录表NWnodecreatetableNWnode(NWnumintnotnull,NWtnumintnotnull,WIDintnotnull,NWtimedatetimenotnull,constraintPK_NWNODEprimarykeynonclustered(NWnum))缺勤类型表NWtypecreatetableNWtype(NWtnumintnotnull,NWtypechar(16)notnull,constraintPK_NWTYPEprimarykeynonclustered(NWtnum))4.3创建存储过程在员工记录表中创建删除员工信息的存储过程:USE[kaoQsystem]GOSETANSI_NULLSON23 重庆科技学院《数据库原理》课程设计报告GOSETQUOTED_IDENTIFIERONGOcreateprocedure[dbo].[delete_worker](@WIDint)asbegindeletefromdbo.workerwhereWID=@WIDend在员工信息表上创建添加员工信息的存储过程:USE[kaoQsystem]GOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOcreateprocedure[dbo].[insert_worker](@CIDint,@WNamechar(6),@WSexchar(2),@Wageint,@Wdegreechar(8),@Waddchar(16),@WTelchar(11),@WE_mailchar(16))asbegininsertintodbo.worker(CID,WName,WSex,Wage,Wdegree,Wadd,WTel,WE_mail)values(@CID,@WName,@WSex,@Wage,@Wdegree,@Wadd,@WTel,@WE_mail)end在月记录表上建立一个统计月考勤记录信息的存储过程:23 重庆科技学院《数据库原理》课程设计报告USE[kaoQsystem]GOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOcreateprocedure[dbo].[M_note](@yint,@mint,@WIDvarchar(10))asdeclare@Worknote_timesintdeclare@Outnote_timesintdeclare@Overnote_timesintdeclare@Offnode_timesintdeclare@NWnode_timesintexecute@Worknote_times=M_worknote@y,@m,@WIDexecute@Outnote_times=M_outnote@y,@m,@WIDexecute@Overnote_times=M_overnote@y,@m,@WIDexecute@Offnode_times=M_offnote@y,@m,@WIDexecute@NWnode_times=M_NWnote@y,@m,@WIDinsertintodbo.Monthnote(WID,MWorknote,MOutnote,MOvernote,MOffnode,MNWnode,_Year,_Month)values(@WID,@Worknote_times,@Outnote_times,@Overnote_times,@Offnode_times,@NWnode_times,@y,@m)4.4创建触发器在请假记录表中当请假结束的天数插入后创建统计请假天数的触发器:USE[kaoQsystem]GOSETANSI_NULLSON23 重庆科技学院《数据库原理》课程设计报告GOSETQUOTED_IDENTIFIERONGOcreatetrigger[dbo].[Outnote_Offdays]on[dbo].[Offnote]afterinsert,updateasbeginsetnocountondeclare@_offnumintdeclare@_offtimedatetimedeclare@_offendtimedatetimedeclare@_offdaysfloatselect@_offendtime=inserted.Offendtime,@_offnum=inserted.Offnum,@_offtime=inserted.Offtimefrominsertedset@_offdays=datediff(hour,@_offtime,@_offendtime)updateOffnotesetOffnote.Offdays=@_offdays/24.0whereOffnote.Offnum=@_offnumend在出差记录表上当出差结束日期插入后创建统计出差天数的触发器:USE[kaoQsystem]GOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOcreatetrigger[dbo].[Outnote_Outdays]on[dbo].[Outnote]23 重庆科技学院《数据库原理》课程设计报告afterinsert,updateasbeginsetnocountondeclare@_outnumintdeclare@_backtimedatetimedeclare@_outtimedatetimeselect@_backtime=inserted.Backtime,@_outnum=inserted.Outnum,@_outtime=inserted.OuttimefrominsertedupdateOutnotesetOutnote.Outdays=datediff(day,@_outtime,@_backtime)whereOutnote.Outnum=@_outnumend在加班记录表上当加班结束时间录入建立一个统计加班时间的触发器:USE[kaoQsystem]GOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOcreatetrigger[dbo].[Overnote_Overdays]on[dbo].[Overnote]afterinsert,updateasbeginsetnocountondeclare@_overnumint23 重庆科技学院《数据库原理》课程设计报告declare@_overtimedatetimedeclare@_overendtimedatetimedeclare@_overtimesfloatselect@_overendtime=inserted.Overendtime,@_overtime=inserted.Overtime,@_overnum=inserted.Overnumfrominsertedset@_overtimes=datediff(minute,@_overtime,@_overendtime)updateOvernotesetOvernote.Overtimes=@_overtimes/60.0whereOvernote.Overnum=@_overnumend在出勤记录表中,当上班的时间插入后如果时间晚于9:00则创建一个在缺勤记录表中插入一条迟到的记录的触发:USE[kaoQsystem]GOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOcreatetrigger[dbo].[insert_NW]on[dbo].[worknote]afterinsertasbeginsetnocountondeclare@_WIDintdeclare@_worktimedatetimedeclare@_NWtypechar(16)23 重庆科技学院《数据库原理》课程设计报告declare@_NWtnumintselect@_worktime=inserted.WorkTime,@_WID=inserted.WIDfrominsertedif(convert(nvarchar(12),@_worktime,108)>"09:00:00")set@_NWtype="迟到"select@_NWtnum=NWtnumfromNWtypewhereNWtype=@_NWtypeinsertintoNWnode(NWtnum,WID,NWtime)values(@_NWtnum,@_WID,@_worktime)end在出勤记录表中,当下班的时间插入后如果时间早于18:00则创建一个在缺勤记录表中插入一条早退的记录的触发:USE[kaoQsystem]GOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOcreatetrigger[dbo].[insert_NW2]on[dbo].[worknote]afterinsertasbeginsetnocountondeclare@_WIDintdeclare@_Wnumintdeclare@_EndTimedatetimedeclare@_NWtypechar(16)declare@_NWtnumint23 重庆科技学院《数据库原理》课程设计报告select@_EndTime=inserted.WorkTime,@_Wnum=inserted.Wnumfrominsertedselect@_WID=WIDfromworknotewhereWnum=@_Wnumif(convert(nvarchar(12),@_EndTime,108)<"18:00:00")set@_NWtype="早退"select@_NWtnum=NWtnumfromNWtypewhereNWtype=@_NWtypeinsertintoNWnode(NWtnum,WID,NWtime)values(@_NWtnum,@_WID,@_EndTime)end4.5创建视图创建一个职位为“职工”的员工信息视图:createview_workerinfoasselectWID,CID,WName,WSex,Wage,Wadd,WTelfromdbo.workerwhereWdegree="职工"创建月统计职工出勤信息视图createview_monthasselect_Year,_Month,Monthnote.WID,worker.CID,MWorknotefromdbo.Monthnote,dbo.workerwhereMonthnote.WID=worker.WID创建年统计职工缺勤信息视图createview_yearasselectY_year,Yearnote.WID,worker.CID,YNWnodefromdbo.Yearnote,dbo.workerwhereYearnote.WID=worker.WID23 重庆科技学院《数据库原理》课程设计报告总结在这两周的课程设计中我学到了许多书本之外的东西,动手能力得到了提高,对数据库系统的设计流程有了进一步的了解。当然在本次课程设计中也遇到了许多的困难,比如SQLSever200和PowerDesigner之间的联合运用,数据流图的绘制还有就是对工资管理系统的需求分析不熟悉等。希望在以后的学习中能够对数据库系统的设计更加熟悉。23 重庆科技学院《数据库原理》课程设计报告致谢首先我要感谢学校给了我们两周宝贵的学习时间,经过这两周的课程设计,使我对数据库系统概论这门学科有了更深一步的认识,也不在像最初接触数据库那么迷茫了,通过近两周的课程设计,使我对这学期学的知识有了全面的认识。由于以前大部分时间都在学习理论的知识,所以对项目不是很了解。而学校提供的这次课程设计机会使我收获颇多,从中也发现了许多不足,让我找到了以后学习的方向。在这次程序设计过程中,也出现了不少的问题,但在老师和同学的耐心帮助下,问题都得到了解决,正是有了你们的帮助,我才能顺利地完成学籍管理系统的设计。在此,我感谢帮助过我的所有同学,并向帮助过我的所有老师说一声:“谢谢”。23 重庆科技学院《数据库原理》课程设计报告参考文献[1]孙建伶,林怀忠.数据库原理与应用.北京:高等教育出版社2006.5[2]梁方明.SQLServer2000.北京:希望电子出版社2002.7[3]王珊,萨师煊.数据库系统概论(第四版).北京:高等教育出版社2006.5[4]李树有.数据库应用系统开发与实例.北京:人民邮电出版社2005.9[5]孟彩霞.数据库系统原理与应用(本科).北京:人民邮电出版社2008.3[6]陶宏才.数据库原理及设计.北京:清华大学出版社2004.423