资源描述
数据库系统原理课程设计说明书员工考勤管理子系统江西理工大学应用科学学院信息工程系课程设计说明书 课程名称: 数据库原理与技术 课题名称: 员工考勤管理子系统 参与人员姓名: 班级:电科101 学号: 参与人员姓名: 班级:电科101 学号: 参与人员姓名: 班级:电科101 学号: 参与人员姓名: 班级:电科101 学号: 完 成 时 间: 2012年7月3日星期二 指 导 老 师: 指导老师评语:得分: 11目 录1 系统概述11.1 现状分析11.2 系统目标12 系统数据库分析22.1数据库需求分析22.2 数据库概念结构分析22.3 数据库逻辑结构分析62.4 数据字典73 数据库操作部分113.1 数据库创建113.2 数据库的更新操作143.3 数据库的查询操作163.4 数据库的备份和还原操作174 系统规范化设计194.1 数据库表的规范化设计194.2 数据库的完整性设计194.3 数据库的维护和安全性设计215 总结245.1 收获245.2 不足和改进24参考文献25致 谢251 系统概述1.1 现状分析 员工考勤管理子系统是企业管理中最基本的管理,企业规定员工的工作日、上下班时间,请假、加班、出差、外出等制度,考勤管理人员月底需要向主管和财务提供员工的考勤数据,包括迟到、请假、加班、早退、旷工等,以备主管对员工打绩效,财务对员工做工资等条目。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对员工信息进行管理,具有手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高员工考勤管理的效率,也是进行科学化、正规化管理,与世界接轨的重要条件。1.2 系统目标数据库物理实现阶段主要使用微软的SQL SERVER数据库管理系统。此系统的运行环境为Windows 2000,Windows XP,Windows 7等。开发此数据库的目标有以下几点:(1) 便于管理、查找员工信息,例如:编号,姓名,性别,出生日期,职务,部门编号。(2) 通过所需要了解的信息来查找员工,节约了时间,且准确的查找出信息,不会出现遗漏。(3) 方便快速查询员工考勤的时间和出勤情况等信息,从而快速查出哪个员工在哪个时间段的出勤情况。(4) 方便对公司员工的信息审查工作,和档案处理工作,有助于提高员工信息档案管理的工作效率。2 系统数据库分析2.1数据库需求分析 本系统是一套简单实用的员工信息管理工具,其模块功能完善,界面美观友好,操作简便快捷,为公司的员工信息档案自动化管理提供了完善的解决方案。主要功能:月度考勤中的出差、请假、加班、出勤的查询,记录,统计;工资参照中工资表、职称表、考勤的查询,统计。系统功能结构图2.1所示:员工管理子系统月度考勤统计出差记录统计工资评估参照请假记录统计加班记录统计出勤记录统计其他情况统计工资表考勤管理系统职称表图2.1 系统功能结构图2.2 数据库概念结构分析 其一份考勤由多份请假、出差、加班、出勤信息组成;一份职称信息参照一份考勤而确定;员工的一份工资要参照多份职称信息而决定。员工实体属性E-R分图如图2.2.1所示:员工姓名员工性别 员工 出生日期员工编号 图2.2.1 员工实体属性E-R分图出差记录实体属性E-R分图如图2.2.2所示:出差记录出差描述出差起始时间出差编号出差结束时间员工编号图2.2.2出差记录实体属性E-R分图 请假记录实体属性E-R分图如图2.2.3所示:请假记录请假原因员工编号请假起始时间请假结束时间请假编号图2.2.3 请假记录实体属性E-R分图加班记录实体属性E-R分图如图2.2.4所示:加班记录加班时间长度员工编号日期加班编号图2.2.4 加班记录实体属性E-R分图出勤记录实体属性E-R分图如图2.2.5所示: 出勤记录日期上班时间出勤编号下班时间员工编号图2.2.5出勤记录实体属性E-R分图职称实体属性E-R分图如图2.2.6所示:职称员工编号补助资金加班费职称名bianh图2.2.6 职称实体属性E-R分图月度考勤实体属性E-R分图如图2.2.7所示:月度考勤总工作时间日期总请假次数早退次数迟到次数总出差天数旷工次数总加班次数考勤编号员工编号图2.2.7 月度考勤实体属性E-R分图工资实体属性E-R分图如图2.2.8所示:工资扣除工资奖金工资编号员工编号实发工资基本工资图2.2.8 工资实体属性E-R分图员工管理子系统E-R图如图2.2.9所示: 出勤记录加班记录出差记录请假记录组成组成组成组成月度考勤统计参照职称信息参照工资对应员工NNNN1111111N11图2.2.9 员工管理子系统E-R图2.3 数据库逻辑结构分析根据图2.2.9员工管理子系统E-R图,可以得到如下关系模式:Employee (Yno,Yname,Ysex,Birth,Yduty)Travel_register (Travelno,Yno,Tstarttime,Tendtime,Process,Mattendno)Leave_register (Leaveno,Yno,Lstarttime,Lendtime,Reason,Mattendno)Overtime_register (Overtimeno,Yno,Overtimelth,Time,Mattendno)Work_register (Workno,Yno,Time,Ondutytime,Offdutytime,Mattendno)Duty(Yno,Dduty, Allowance, Overtimefei,)Month_attend(Mattendno,Yno,Time,Ljworktime,Ljleavetime,Ljtraveltime, Ljovertime,Latetimes,Leavetimes,Absenttime,)Wage (Wageno,Yno,Basicwage, Bonus,Realwage, Reducewage, Dduty)2.4 数据字典(1)表名:Employee (Yno,Yname,Ysex,Birth,Yduty),其含义:员工信息表,存储员工的有关信息。其结构如表3.1所示:表3.1 员工信息表Y字段名字段类型是否为空说明备注YnoBigintNOT NULL员工编号主码YnameChar(20)NULL姓名YsexChar(2)NULL性别BirthDatatimeNULL出生日期YdutyChar(20)NULL职务(2)表名:Travel_register(Travelno,Yno,Tstarttime,Tendtime,Process,Msttendno) 其含义:出差记录信息表,存储出差记录的信息。其结构如表3.2所示:表3.2 出差记录信息表T字段名字段类型是否为空说明备注TravelnoBigintNOT NULL出差编号主码YnoBigintNOT NULL员工编号主码TstartimeDatatimeNULL出差起始时间TendtimeDatatimeNULL出差结束时间ProcessVarcharNULL出差描述MattendnoBigintNOT NULL月度考勤编号外码(3)表名:Leave_register (Leaveno,Yno,Lstarttime,Lendtime,Reason,Msttendno)其含义:请假记录信息表,存储请假的信息。其结构如表3.3所示:表3.3 请假记录表L字段名字段类型是否为空说明备注LeavenoBigintNOT NULL请假编号主码YnoBigintNOT NULL员工编号主码LstarttimeDatatimeNULL请假起始时间LendtimeDatatimeNULL请假结束时间ReasonChar(25)NULL原因MattendnoBigintNOT NULL月度考勤编号外码(4)表名:Overtime_register (Overtimeno,Yno,Overtimelth,Time,Msttendno)其含义:加班记录信息表,存储加班的信息。其结构如表3.4所示:表3.4 加班记录表O字段名字段类型是否为空说明备注OvertimenoBigintNOT NULL加班编号主码YnoBigintNOT NULL员工编号主码OvertimelthIntNULL加班时间长度TimeDatatimeNULL时间MattendnoBigintNOT NULL月度考勤编号外码(5)表名:Work_register (Workno,Yno,Time,Ondutytime,Offdutytime,Msttendno)其含义:出勤记录信息表,存储出勤的信息。其结构如表3.5所示:表3.5 出勤记录表W字段名字段类型是否为空说明备注WorknoBigintNOT NULL出勤编码主码YnoBigintNOT NULL员工编码主码TimeChar(15)NULL时间OndutytimeDatatimeNULL上班时间OffdutytimeDatatimeNULL下班时间MattendnobigintNULL月度考勤编码外码(6)表名:Wage (Wageno,Yno,Basicwage, Bonus,Realwage, Reducewage, Dduty)其含义:工资信息表,存储工资的信息。其结构如表3.6所示:表3.6 工资统计表WA字段名字段类型是否为空说明备注WagenoBigintNOT NULL工资编号主码YnoBigintNOT NULL员工编号主码BasicwageIntNULL基本工资BonusIntNULL奖金RealwageIntNULL实际工资ReducewageIntNULL扣除工资DdutyChar(20)NULL职称名外码(7)表名:Month_attend (Mattendno,Yno,Time,Ljworktime,Ljleavetime,Ljtraveltime, Ljovertime,Latetimes,Leavetimes,Absenttime)其含义:月度考勤记录信息表,存储考勤的信息。其结构如表3.7所示:表3.7 考勤记录表M字段名字段类型是否为空说明备注YnoBigintNOT NULL员工编号主码MattendnoBigintNOT NULL考勤编号主码TimeDatatimeNULL日期LjworktimeChar(10)NULL总正常工作时间LjleavetimeChar(10)NULL累计请假LjtraveltimeChar(10)NULL累计出差LjovertimeChar(10)NULL累计加班LatetimesIntNULL迟到次数LeavetimesIntNULL早退次数AbsenttimesIntNULL旷工次数(8)表名:Duty(Yno,Dduty, Allowance, Overtimefei,)其含义:职称信息表,存储有关职称的信息。其结构如表3.8所示:表3.8 职称信息表D字段名字段类型是否为空说明备注YnoBigintNOT NULL员工编号主码DdutyChar(20)NOT NULL职称名AllowanceIntNULL补助资金OvertimefeiIntNULL加班费数据库系统原理课程设计说明书员工考勤管理子系统3 数据库操作部分3.1 数据库创建用SQL语句创建数据表Employee,并建立相应属性的约束。Create table Employee(Yno bigint primary key, Yname char(20), Ysex char(2) check(Ysex=F or Ysex=M), Yduty char(20), Birth datetime);关系图如图3.1.1所示:图3.1.1 员工考勤管理子系统关系图测试数据数据如表3.1.13.1.8所示:表3.1.1 员工基本信息数据表表3.1.2 出差记录基本信息数据表表3.1.3 请假记录基本信息数据表表3.1.4 加班记录基本信息数据表表3.1.5 出勤记录基本信息数据表表3.1.6 工资基本信息数据表表3.1.7 月度考勤记录基本信息数据表表3.1.8 职称基本信息数据表3.2 数据库的更新操作 1、在Employee表中插入一条员工信息(201210155,高达,男,1990/11/1,员工)。insertinto Employeevalues(201210155,高达,男,1990/11/1,员工);运行结果为:2、删除姓名为高达的员工记录。deletefrom Employeewhere Yname=高达;运行结果为3、将员工201210133的性别改为男。update Employeeset Ysex=男where Yno=201210133;运行结果为:3.3 数据库的查询操作1、查询性别为男的所有员工。select *from Employeewhere Ysex=男;运行结果为:2、查询除去实际工资最少的其他员工编号及姓名。select Employee.Yno,Ynamefrom Employee, Wagewhere Employee.Yno=Wage.Yno and Realwageany(select Realwagefrom Wage);运行结果为:3.4 数据库的备份和还原操作1、备份数据库 选择 员工管理系统 数据库,右键选择“所有任务”,然后选择“备份数据库”,弹出对话框如图3.4.1所示,点击“添加”,弹出对话框如图3.4.2所示,选择要保存备份文件的路径和指定文件名,点击“确定”完成备份工作。图3.4.1 备份数据库图3.4.2 备份路径2、还原数据库 首先确保“数据库”下有“员工管理系统”数据库,如果没有建立一个以“员工管理系统”命名的数据库,然后选择“员工管理系统”,右键选择“所有任务”,然后点击“还原数据库”,弹出对话框如图3.4.3所示,选择“从设备”还原,点击“选择设备”,弹出对话框如图3.4.4所示,点击“添加”,出现对话框如图3.4.5所示,选择数据库的备份文件,点击“确定”完成还原数据库的工作。图3.4.3 还原数据库图3.4.4 选择还原设备图3.4.5 选择还原路径4 系统规范化设计4.1 数据库表的规范化设计 此员工管理子系统属于第三范式4.2 数据库的完整性设计设计员工基本信息表与工资情况的触发器,防止数据库的异常操作。用企业管理器为表Employee 创建一个级联更新触发器trrigger_s。要求:若修改Employee 表中一员工的编号,则表Wage 中与该员工相关的编号自动修改。1、启动企业管理器,选择数据库 员工管理系统 ,将其展开,单击“表”对象。2、打开“触发器属性”对话框。在右窗格中,用鼠标右键单击表对象 Employee ,在打开的快捷菜单中选择“所有任务”“管理触发器”选项,打开“触发器属性”对话框,如图4.2.1所示。图4.2.1 触发器属性图3、创建SQL语句。在“文本”输入框内输入下面语句:create trigger trigger_s on Employee for update as if update(Yno) begin declare Yno_new Bigint,Yno_old Bigint select Yno_new=Yno from inserted select Yno_old=Yno from deleted update Wage set Yno=Yno_new where Yno=Yno_oldend4、单击“检查语法”按钮,检查语法正确、5、单击“确定”按钮,保存创建的触发器。如图4.2.2.所示.图4.2.2 创建触发器4.3 数据库的维护和安全性设计设计user1对表Employee的查询访问权限,防止非法的数据库操作。在企业管理器中控制用户访问权限(1)展开 员工管理系统 数据库,选择“新建”,选择“新建数据库用户”,弹出如图4.3.1所示的对话框。图4.3.1 新建用户(2)在登录名中选择“新建”,在“名称”中填写“user1”,身份验证选“SQL Server身份验证”,密码为“9”,数据库选择“员工管理系统”,如图4.3.2所示,点击“确定”,重新输入一遍密码,如图4.3.3所示,点击“确定”。图4.3.2 新建登录图4.3.3 确认密码2、在查询分析器中控制用户访问权限右击“员工管理系统”数据库,选择“新建”、“数据库用户”在用户名为user1且属性为public时单击“属性”、“权限”勾选需要赋予的访问对象Employee后都选择“确定”。把查询Employee表的权限授给用户user1grant select on Employeeto user1验证结果如图4.3.4所示:图4.3.4 授权5 总结5.1 收获通过此次数据库的课程设计,我们达到了初步的数据库学与用的结合,增强了对数据库方面应用的理解和应用,对自己今后参与开发数据库系统积累了不少经验,任务的完成使我们对掌握和运用数据库打下了坚定的决心,在学习过程中,我们通过上网查了不少资料,学以致用,自我创新,从中在学到用,从用又到学,不断修改,系统更新。此次的数据库实现更是锻炼了我们动手和团队合作的能力,通过从初步的概念结构设计一直到最后数据库的实现,使我们对数据库的设计模式和实施的步骤有了更真实的认识和理解,创建一个基本的数据库是一个繁杂而且繁重的任务,这通过我们团队共同分工而合作、参考文献、请教等,最终才能既快又高效地美满完成任务。设计中,我们通过不断的发现问题并且解决问题,提高了我们处理难题的灵活性和承担压力的责任性,为我们今后的学习和生活都有着积极的促进作用。这次设计的经验是及其宝贵的,我们会认真总结,不断提高自己的基础知识和动手能力。5.2 不足和改进在此次课程设计中,我们存在一些不足,其中我们对现实生活中的员工信息管理系统不是很了解,以至于在分析系统功能结构图、写入实体属性等,遇到较多问题。其次,我们对专业课程了解学习不是很深,导致我们在设计过程中常遇到问题,如在插入员工的信息时,数据插入不进去;删除时也出现一些错误,解决这些问题时要求我们必须充分理解数据库的设计理论知识等。另外,在团队合作方面,小组成员讨论问题时,有时思想不一致,未能及时有效的解决该问题。对于这些不足,我觉得要在以下几个方面加以注意:首先,我们无论设计数据库还是设计其他东西,必须充分理解设计内容理论知识,理论是基础。其次,多进行实际操作,比如认真地完成上机实验,我觉得只有多操作,才能发现问题从而解决问题 。最后,多问,多思考但不要对他人形成依赖,在老师和同学们的帮助下我们最终完成了“员工管理子系统”数据库的设计。参考文献1 刘智斌,刘玉萍,杨柳编著.数据库原理(第二版).重庆大学出版社,20062 萨师煊,王珊编著.数据库系统概论(第四版).高等教育出版社,20063 钱雪忠,陶向东编著.数据库原理及应用实验指导.北京邮电大学出版社,20064 龚小勇编著.关系数据库与SQL Server 2000.机械工业出版社,2004致 谢本系统在设计和实现的过程中,得到#老师的大力支持和帮助。在系统实现阶段,#老师从需求分析一直到写设计,对我们严格要求,精心指导使我学到很多东西,并指出本系统的不足之处,提出我继续研究的方向。此外,在本系统的实现阶段,得到#等同学的多次帮助和支持,还有其他组员的多次讨论,使我从中得到了很多的启发。在此一并真心地感谢。27
展开阅读全文