设计报告课题名称:工资管理系统学院:专业班级:学号:学生:指导教师:学生指导教师课题名称工资管理系统设计时间设计地点设计目的数据库系统课程设计是对学生学习完成《数据库原理与技术》课程的一次理论与实践的综合设计,旨在学生更好掌握数据库原理的理论知识,并且能根据所学习的数据库知识构建完善标准的数据库系统。一、设计目的工资管理是一项琐碎、复杂而又十分细致的工作,一般不允许发生差错。手工进行工资发放工作,需要反复地进行抄写、计算,不仅花费财务人员大量的时间,而且往往由于抄写不慎,出现张冠李戴,或者由于计算机的疏忽,出现工资发放错误的现象。计算机进行工资发放工作,不仅能够保证工资核算正确无误、快速输出,而且还可以利用工资数据库对有关工资的各种信息进行统计,服务于财务部门其他方面的核算和财务处理。实现企业员工工资管理的系统化、规范化和自动化,能够和人事管理系统、考勤管理系统相结合,真正实现企业高效、科学、现代化的员工管理。二、数据库功能分析A.信息输入功能1)输入员工的基本信息。包括:员工编号、姓名、性别、出生年月、参加工作时间、所属部门、职务、职称、政治面貌、婚姻状况等基本信息。2)输入员工的工资信息。包括:基本工资、岗位工资、住房补贴、津贴、工会会费、水电费、住房公积金、养老保险、奖惩。3)输入员工的部门信息。包括:部门编号、部门名称、部门负责人、部门人数。B.数据修改删除功能1)修改和删除员工的基本信息。当单位人员的信息发生变化,如职称的改变,工作部门变动,或调离本单位等,系统应能修改员工的信息或将其从员工信息表中删除。2)修改和删除员工的工资信息。员工升职加薪、工资普调是企业中常见的事情,这就需要系统能方便对员工工资进行个别及批量的修改;如员工调离本单位,就应当从员工信息表中删除这个员工信息,将其工资信息表中相应的数据删除。3)修改和删除部门信息。当撤消一个部门时,能从部门信息表中将其删除。而当一个部门的名称发生改变时,系统中所有该项部门的名称应一致的改变。C.查询和统计功能1)能够查询指定员工的基本信息。2)能够查询指定某个部门或全部部门的基本信息3)查询某个员工的工资信息。员工工资信息4)统计、汇总指定年份企业各部门或某个部门每个月或全年工资总额,汇总各部门的人数或本单位的总人数。5)工资表月工资记录的生成功能。生成当月所有员工或某个部门的工资记录,同时能进行员工工资的计算,即计算应发金额、应扣金额及实发金额。三、数据库设计1.需求分析:《工资发放管理系统》针对的用户是中小企业或学校,工资项目比较少,较为固定,工资管理涉及企业管理的多个方面,如员工职务工种变化、员工考勤情况、员工加班情况、等等。根据这些信息,在每个月的某个固定时间,生成企业全体员工的月工资。对于月工资,能够实现按照员工、部门、月、年进行统计分析,产生相应报表。需求信息整理(DFD图)如下:基本工资第1层DFD图部门员工查询结果员工信息部门信息员工人事管理人员财务人员录入工资信息查询职工工资录入部门信息录入员工信息查询请求工资管理员员工信息津贴信息部门信息出勤统计工资管理查询结果查询请求工资信息员工第0层DFD图2.概念分析(E-R图)员工姓名出生日期参加工作日期政治面貌职务所属部门婚姻状况性别姓名电话号码图一:员工基本信息实体E-R图总E-R图11N1N11111NN部门影响具有具有员工出勤津贴工资具有属于影响部门人数部门名称部长部门号图二:员工部门实体E-R图津贴月份职工编号津贴工资加班天数图四:员工津贴实体E-R图考勤奖惩工资缺勤天数月份职工编号图三:员工考勤实体E-R图月工资工会会费住房公积金养老保险津贴住房补贴奖惩基本工资图五:员工月工资实体E-R图3.逻辑设计:a.数据字典表1员工津贴表jt列名数据类型可否为空说明emp_novarchar(8)notnull员工号(主键一)Jiaban_monthvarchar(10)notnull加班时间(主键二)jbtianshuchar(2)null加班天数Jiaban_jiangjinfloatnull加班工资表2考勤信息统计表格kq列名数据类型可否为空说明emp_novarchar(8)notnull员工号(主键一)Kaoqin_monthvarchar(10)notnull时间(主键二)queqincharnull缺勤天数Kaoqin_gongzifloatnull考勤工资表3工资标准表格gzbz列名数据类型可否为空说明ZwVarchar(10)notnull工种(主键)JibengongziFloatnull基本工资表5员工基本情况表yg列名数据类型可否为空说明emp_noVARCHAR(8)NOTNULL员工号(主键)emp_nameVARCHAR(10)NULL员工名称sexChar(2)NULL性别Department_idChar(4)Notnull员工部门Emp_timeVARCHAR2(6)NOTNULL入公司时间MarryVarchar(4)Null婚姻状况TelephonChar(11)Null电话号码表6员工月工资表ygz列名数据类型可否为空说明emp_noVARCHAR2(6)NOTNULL员工号(主键一)jbgzNUMBER(6)NOTNULL基本工资jtNUMBER(6)NULL津贴KqNUMBER(6)NULL缺勤扣除Ygz_totalNUMBER(6)NULL总月工资ygz_dateVARCHAR2(6)NOTNULL月工资时间(主键二)b.关系模式员工信息表(员工编号,员工姓名,性别,出生年月,参加工作时间,所属部门,职务,,婚姻状况,政治面貌,电话号码)员工出勤表(员工编号,统计时间,员工姓名,矿工次数,考勤工资)员工津贴表(员工编号,统计时间,员工姓名,加班天数,津贴工资)员工月工资表(员工编号,基本工资,住房补贴,津贴,工会会费,水电费,位房公积金,养老保险,奖惩,总工资)部门信息表(部门编号,部门名称,部门负责人,部门人数)政治面貌)基本工资表(职位,基本工资)各表的属性都不能被分解,所有非主属性都完全依赖每一个候选关键属性,也没有传递依赖,因此符合1,2,3范式。4.物理设计数据库最终是要存储在物理设备上的,为一个给定的逻辑数据模型选取一个最适合应用环境的物理结构(存储结构与存取方法)的过程,就是数据库的物理设计。数据库的物理结构依赖于给定的计算机系统和DBMS。5.实施与维护确定了数据库的逻辑结构和物理结构后,就可以用所选用的DBMS提供的数据定义语言(DDL)来严格定义数据库,包括建立表、定义表的约束等。数据库系统投入运行后,对数据库设计进行评价、调整、修改等维护工作。四、程序源代码及其说明1.创建数据库createdatabase工资管理on(name=sales_dat,filename='d:\sales.mdf')2.创建表createtable员工(emp_novarchar(8)notnullprimarykey,--职工编号emp_namevarchar(10)notnull,--姓名sexchar(2)--性别check(sex='男'orsex='女'),birth_datedatetimenotnull,--出生日期hir_datedatetimenotnull,--参加工作日期department_idchar(4)notnull,--所属部门zhiwuvarchar(10)notnull,--职务zhengzhimmvarchar(10),--政治面貌marryvarchar(4),--婚姻状况telephonchar(11),--电话号码constraintoldcheck(datediff(year,birth_date,hir_date)18))createtable部门(department_idchar(4)notnullprimarykey,--部门号department_namevarchar(6)notnull,--部门名称managervarchar(6),--部长dep_renshuvarchar(4)--人数)createtable考勤(emp_novarchar(8)notnull,--职工编号kaoqin_monthvarchar(10)notnull,--月份queqinchar(2),--缺勤天数kaoqin_gongzifloat,--奖惩工资constrainte_kprimarykey(emp_no,kaoqin_month))createtable津贴(emp_novarchar(8)notnull,--职工编号jiaban_monthvarchar(10)notnull,--月份jiabantianshuchar(2),--加班天数jaban_jiangjinfloat,--津贴工资constrainte_jprimarykey(emp_no,jiaban_month))createtable基本工资(zhiwuvarchar(10)notnullprimarykey,jibengongzifloatdefault1500,)createtable月工资(emp_novarchar(8)notnull,department_idchar(4)notnull,jibengongzifloatdefault1500,--基本工资zhufangbutiefloat,--住房补贴gz_monthvarchar(10)notnull,jaban_jiangjinfloat,--奖惩kaoqin_gongzifloat,--津贴gonghuihuifeifloat,--工会会费zhfgjjinfloat,--住房公积金yanglaobaoxianfloat,--养老保险wagecountasjibengongzi+zhufangbutie+jaban_jiangjin+kaoqin_gongzi+gonghuihuifei+zhfgjjin+yanglaobaoxianconstrainte_gprimarykey(emp_no,gz_month))3.插入数据insert员工values('20070101','狄一','男','1985-1-1','2007-1-1','01','部长','团员','否','1234567890')insert员工values('20070102','狄二','女','1985-1-2','2007-1-2','01','员工','党员','否','1234567891')insert部门values('01','人事部','狄一','20')insert部门values('02','财务部','狄六','10')insert考勤values('20070101','200905','0',0)insert考勤values('20070101','200906','2',-60)insert津贴values('20070101','2000905','05',15)insert津贴values('20070101','2000906','0',0)insert基本工资values('员工',1500)insert基本工资values('组长',2000)insert月工资values('20070101','01',2000,0,'2000905',0,15,0,0,0)insert月工资values('20070102','01',1500,0,'2000905',-30,0,0,0,0)4.创建、绑定默认值createdefaultgongzi_defaas0execsp_bindefaultgongzi_defa,'考勤.kaoqin_gongzi'execsp_bindefaultgongzi_defa,'津贴.jaban_jiangjin'execsp_bindefaultgongzi_defa,'月工资.gonghuihuifei'exe