版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、重庆科技学院课程设计报告 院(系):_ 电气与信息工程学院 _ 专业班级: 学生姓名: 学 号: 设计地点(单位)_第一实验楼I524_ _ _ _ 设计题目:_考勤管理系统设计_ _ _ 完成日期: 2012年 7月 6日 指导教师评语: _ _ _ 成绩(五级记分制):_ _ 指导教师(签字):_ _重庆科技学院数据库原理课程设计报告摘要 在现代企业管理中,企业信息化是提高企业管理效率的重要手段。考勤管理是企业管理的重要部分,在公司起着越来越重要作用。本课程设计主要是对公司各项人员的考勤管理。 考勤管理系统分为8个模块,基本信息管理模块、出勤记录模块、缺勤记录模块、加班记录模块、出差记录模
2、块、请假记录模块。此外,该数据库的设计还可与工资管理系统等其它系统配合使用,使得企业员工的管理更加现代化、科学化、自动化,并可以很好地督促企业员工更好地为企业谋福利。本系统采用SQL Server 2005作为数据库,使用ODBC作为数据源。在实现数据库部分功能时按照要求创建了触发器和存储过程以及视图。关键词: 考勤管理 SQL Server 2005 触发器 存储过程课程设计任务书设计题目:考勤管理系统设计学生姓名平张川课程名称数据库原理课程设计专业班级计科2010-03地 点I524和计算机自主学习中心起止时间2012.6.25-2012.7.6设计内容及要求内容:² 员工考勤系
3、统能够和考勤机相连,可以把数据导入数据库中,从而完成自动、高效、科学的考勤信息的输入。² 可以完成员工考勤信息的手工输入、修改、删除等操作。² 可以设定缺勤的类型,如病假、事假等。² 可以进行考勤情况统计,例如月终、年终统计,生成统计报表并将统计结果打印出来。² 可以对数据库进行维护,例如数据备份。² 要有相应的帮助文件。要求: 按照数据库系统开发步骤进行数据库概念结构设计、逻辑结构设计、物理结构设计,使学生掌握数据库应用软件的开发流程,SQL语句的使用和存储过程的使用。设计参数至少5个表结构;3个存储过程;2个触发器;3个视图。进度要求19.
4、1 讲课 阅读分析任务书 制订设计计划19.2-3 需求分析 概念结构设计19.4-5 概念结构设计准备文挡20.1-3 逻辑结构设计 物理结构设计20.4-5 写文挡 答辩 交设计报告书参考资料1雷亮等数据库原理课程设计指导书2王珊、萨师煊数据库系统概述(第四版) 北京:高等教育出版社2006。3C.J.Date著孟小峰、王珊等译数据库系统导论(第8版) 北京:机械工业出版社.2007。4陈根才等. 数据库课程设计浙江浙江大学出版社2007说明.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。.若填写内容较多可另纸附后。3.一题多名学生共用的,在设计内容
5、、参数、要求等方面应有所区别。教研室主任: 指导教师:雷亮/游明英/张亚军/裴仰军 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参考文献231 需求分析1.1 系统目标设计实现企业的考勤管理系统化,使得企业员工的管
6、理更加现代化、科学化、自动化,并可以很好地督促企业员工,更好地为企业谋福利。1.2 系统功能分析(1):为了保证员工信息及部门信息的添加、删除、修改操作方便,在数据库中建立了员工信息表以及部门信息表,其中员工信息表包括了每个员工的姓名、性别、年龄、所在部门、职位、电话、家庭住址等详细的个人资料。 (2):为了方便员工考勤系统能够和考勤机相连,可以把数据导入数据库中,从而完成自动、高效、科学的考勤信息的输入,我们建立了一个出勤记录表,员工在上班的时候输入员工信息号,就可以自动录入当前的时间,表示上班打卡,在员工下班的时候只需输入今天上班时的出勤记录编号便可以自动录入当前下班的时间,方便而高效的对
7、员工上下班进行了考勤。(3):可以对缺勤类型和请假类型进行添加、删除和修改,此外还有缺勤记录表和请假记录表及加班记录表。其中缺勤记录表的记录是由出勤记录表自动审核生成的。有了这三个表,企业可以方便的根据这两个表对员工的工资和津贴进行相应的管理(4):有出差记录表对员工的出差记录进行管理。 (5):在所有的考勤表中对应的汇总表都是由触发器自动生成的,总时间=结束时间 起始时间。(6):月记录表,年度记录表是通过存储过程统计生成的,可以对企业的每一个员工的月考勤记录和年考勤记录进行汇总统计。 1.3 功能模块分析 根据系统功能的基本要求,可对整个系统划分为几个模块考勤管理系统基本信息管理出勤记录管
8、理缺勤记录管理请假记录管理加班记录管理出差记录管理月和年记录管理员工及部门信息录入及维护员工及部门信息的查询出勤记录的录入与维护出勤记录的查询缺勤记录的录入与维护缺勤记录的查询请假记录的录入与维护请假记录的查询加班记录的录入与维护加班记录的查询出差记录的录入与维护出差记录的查询月和年记录的录入与维护月和年记录的查询图1.1 功能模块分析1.4 系统全局数据流图 系统的全局数据流图,也称第一层数据流图,是从整体上描述系统的数据流,反映系统数据的整体流向,给设计者、开发者和用户一个总体描述。图1.2 数据流图1.5 数据字典表1.1 职工信息表(worker)列名说明字段类型约束控制WID职工编号
9、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.4 出差记录表(Outnote)列名说明
10、字段类型约束控制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请假结束时间Date
11、time允许为空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)非空表1.10 月统计记录表(Monthnote)列名说明字段类型约束控制Monthnum月统计编号Int主键MWorknote出勤月统计Int允
12、许为空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允许为空2 概念结构设计2.1 构成系统的实体
13、型由考勤管理系统的数据流图和数据字典,抽取出系统的8个主要实体,包括:员工、出勤记录、缺勤记录、加班记录、请假记录、出差记录 、月考勤汇总、年度考勤汇总。员工实体型属性:WID WName WSex Wage Wdegree Wadd WTel WE-mail出勤记录实体型属性:Wnum WorkTime EndTime缺勤记录实体型属性: NWnum NWtime加班记录记录实体型属性: Overnum Overtime Overendtime Overtimes请假记录实体型属性: Offnum Offtime Offendtime Offdays出差记录实体型属性: Outnum Out
14、time Backtime Outdays月考勤汇总实体型属性: Monthnum MWorknote MOutnote MOvernote MOffnode MNWnode _Year _Month年度考勤汇总实体型属性: Yearhnum YWorknote YOutnote YOvernote YOffnode YNWnode Y_year2.2 工资管理系统E-R图图2.1 考勤管理系统E-R图3 逻辑结构设计3.1逻辑结构简介逻辑结构设计就是把概念结构设计阶段设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。 设计逻辑结构一般分为3步进行:(1) 将概念结
15、构转换为一般的关系、网状、层次模型;(2) 将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换;(3) 对数据模型进行优化。3.2 关系模型 将E-R图转换为关系模型实际上就是要讲实体型、实体的属性和实体型之间的联系转换为关系模式,这种转换一般遵循如下原则:一个实体型转换为一个关系模式,一个多对多的关系可以转化为一个关系模式,而一对多的关系可以融合在其他的相关的关系模式中。例如: (1) 职工与出勤记录之间是一对多的关系,所以将职工和出勤记录以及属于关系设计成以下关系模式:职工(WID WName WSex Wage Wdegree Wadd WTel WE-mail)出勤记录(
16、Wnum WorkTime EndTime) 属于(WID WName WSex Wage Wdegree Wadd WTel WE-mail Wnum WorkTime EndTime) (2) 职工与年统计记录之间是一对多的关系,所以职工和年统计记录以及属于关系设计成以下关系模式: 职工(WID WName WSex Wage Wdegree Wadd WTel WE-mail)年统计记录(Yearhnum YWorknote YOutnote YOvernote YOffnode YNWnode Y_year) 属于(WID WName WSex Wage Wdegree Wadd WT
17、el WE-mail Yearhnum YWorknote YOutnote YOvernote YOffnode YNWnode Y_year) (3) 缺勤记录与缺勤类型是多对一的关系,所以缺勤记录和缺勤类型以及属于关系设计成以下关系模式:缺勤记录(NWnum NWtime)缺勤类型(NWtnum NWtype)属于(NWnum NWtime NWtnum NWtype) 4物理模型设计数据库物理设计是将逻辑设计影射到存储介质上,利用可用的硬件和软件功能尽可能快地对数据进行物理访问和维护。4.1定义数据库SQL Server 2000数据库文件分为3中类型:主数据文件、次数据文件和日志文件
18、。通过SQL语言进行数据库创建,创建数据库的语句如下:Create database kaoQsystem;4.2 创建表创建员工基本信息表 worker create table worker ( WID int not null, CID int not null, WName char(6) not null, WSex char(2) not null, Wage int not null, Wdegree char(8) not null, Wadd char(16) not null, WTel char(11) not null, "WE-mail" char
19、(16) null, constraint PK_WORKER primary key nonclustered (WID)请假类型表 Offtype create table Offtype ( Offtnum int not null, Offtype char(16) not null, constraint PK_OFFTYPE primary key nonclustered (Offtnum)出差记录表 Outnote create table Outnote ( Outnum int not null, WID int not null, Outtime datetime nul
20、l, Backtime datetime null, Outdays int null, constraint PK_OUTNOTE primary key nonclustered (Outnum)加班记录表(Overnote) create table Overnote ( Overnum int not null, WID int not null, Overtime datetime null, Overendtime datetime null, Overdays float(2) null, constraint PK_OVERNOTE primary key noncluster
21、ed (Overnum)年考勤记录表 Yearnote create table Yearnote ( Yearhnum int not null, WID int not null, YWorknote int null, YOutnote int null, YOvernote float(2) null, YOffnode int null, YNWnode int null, Y_year int null, constraint PK_YEARNOTE primary key nonclustered (Yearhnum)出勤记录表 Worknote create table wor
22、knote ( Wnum int not null, WID int not null, WorkTime datetime null, EndTime datetime null, constraint PK_WORKNOTE primary key nonclustered (Wnum)部门信息表 Charge create table Charge ( CID int not null, CName char(16) not null, constraint PK_CHARGE primary key nonclustered (CID)月考勤记录表 Monthnote create t
23、able Monthnote ( Monthnum int not null, WID int not null, MWorknote int null, MOutnote int null, MOvernote float(2) null, MOffnode int null, MNWnode int null, _Year int null, _Month int null, constraint PK_MONTHNOTE primary key nonclustered (Monthnum)缺勤记录表 NWnode create table NWnode ( NWnum int not
24、null, NWtnum int not null, WID int not null, NWtime datetime not null, constraint PK_NWNODE primary key nonclustered (NWnum)缺勤类型表 NWtype create table NWtype ( NWtnum int not null, NWtype char(16) not null, constraint PK_NWTYPE primary key nonclustered (NWtnum)4.3 创建存储过程在员工记录表中创建删除员工信息的存储过程:USE kaoQs
25、ystemGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOcreate procedure dbo.delete_worker(WID int)asbegindelete from dbo.worker where WID = WIDend在员工信息表上创建添加员工信息的存储过程:USE kaoQsystemGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOcreate procedure dbo.insert_worker(CID int, WName char(6), WSex char(2), Wa
26、ge int, Wdegree char(8), Wadd char(16), WTel char(11), WE_mail char(16)asbegininsert into dbo.worker(CID, WName, WSex, Wage, Wdegree, Wadd, WTel, WE_mail)values(CID, WName, WSex, Wage, Wdegree, Wadd, WTel, WE_mail)end在月记录表上建立一个统计月考勤记录信息的存储过程:USE kaoQsystemGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER O
27、NGOcreate procedure dbo.M_note(y int, m int, WID varchar(10)asdeclare Worknote_times intdeclare Outnote_times intdeclare Overnote_times intdeclare Offnode_times intdeclare NWnode_times intexecute Worknote_times=M_worknote y,m,WIDexecute Outnote_times=M_outnote y,m,WIDexecute Overnote_times=M_overnot
28、e y,m,WIDexecute Offnode_times=M_offnote y,m,WIDexecute NWnode_times=M_NWnote y,m,WIDinsert into dbo.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 创建触发器在请假记录表中当请假结束的天数插入后创建统计请假
29、天数的触发器: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 = inserted.Offendtime,_offnum
30、 = 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 ONGOcreate trigger dbo.O
31、utnote_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 = datediff(day,_outtim
32、e,_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 dat
33、etimedeclare _overtimes floatselect _overendtime = inserted.Overendtime,_overtime = inserted.Overtime,_overnum = inserted.Overnumfrom insertedset _overtimes = datediff(minute,_overtime,_overendtime)update Overnoteset Overnote.Overtimes = _overtimes / 60.0where Overnote.Overnum = _overnumend 在出勤记录表中,
34、当上班的时间插入后如果时间晚于9:00则创建一个在缺勤记录表中插入一条迟到的记录的触发:USE kaoQsystemGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOcreate trigger dbo.insert_NW on dbo.worknoteafter insertasbeginset nocount ondeclare _WID intdeclare _worktime datetime declare _NWtype char(16)declare _NWtnum int select _worktime = inserted.Wor
35、kTime ,_WID = inserted.WIDfrom insertedif(convert(nvarchar(12), _worktime, 108)>'09:00:00')set _NWtype = '迟到'select _NWtnum=NWtnum from NWtype where NWtype = _NWtypeinsert into NWnode(NWtnum, WID, NWtime)values(_NWtnum,_WID,_worktime)end在出勤记录表中,当下班的时间插入后如果时间早于18:00则创建一个在缺勤记录表中插入一条
36、早退的记录的触发:USE kaoQsystemGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOcreate trigger dbo.insert_NW2 on dbo.worknoteafter insertasbeginset nocount ondeclare _WID intdeclare _Wnum int declare _EndTime datetime declare _NWtype char(16)declare _NWtnum int select _EndTime = inserted.WorkTime ,_Wnum = inserted.Wnumfrom insertedselect _WID=WID from worknote where Wnum = _Wnumif(convert(nvarchar(12), _EndTime, 108)<'18:00:00')set _NWtype = '早退'select _NWtnum=NWtnum f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024版浅析劳动合同法下gaming行业劳务派遣问题2篇
- 2024年度高品质原材料供应合同版B版
- 2024版设备采购合同:戊公司与己公司之间的设备采购及安装协议3篇
- 2024版物业公司车辆管理服务合同3篇
- 2024年供应商定期供应合作合同样本一
- 2024年度道路改造项目协议版B版
- 2024年房地产专业顾问服务协议模板版
- 2024年初创公司股权分配协议3篇
- 2024年企业间借款合同
- 2024年度物流仓储服务合同:供应链管理3篇
- 2024年世界职业院校技能大赛“食品安全与质量检测组”参考试题库(含答案)
- 苏州大学《自然语言处理》2021-2022学年期末试卷
- 2024年“安全生产月”暨“安康杯”竞赛活动考试题库及答案
- 信息安全培训
- 治安保安员试题库+参考答案
- 【初中历史】东汉的兴衰课件-2024-2025学年统编版(2024)七年级历史上册
- 2024-2025学年初中音乐七年级下册沪教版教学设计合集
- 巨人通力GF21载货电梯调试培训
- 2024年吉林长春天然气集团限公司招聘33人高频难、易错点500题模拟试题附带答案详解
- 巡检记录表(标准样本)
- 2024版中国血脂管理指南
评论
0/150
提交评论