您好,欢迎访问三七文档
东方学院实验(实训)报告项目名称工资管理系统数据库分析与设计所属课程名称数据库原理及应用项目类型设计、综合型实验(实训)日期2014.5—2014.6班级12信息2班,金融信息学号12204001031220400105122040011012204001221220400125122040012712204001391220400143姓名黄德灿方骏涛林津津郑逸群孙鲁霖张笑戴林洁,陈怡文一、需求分析1.信息要求工资管理是一项琐碎、复杂而又十分细致的工作,一般不允许发生差错。手工进行工资发放工作,需要反复地进行抄写、计算,不仅花费财务人员大量的时间,而且往往由于抄写不慎,出现张冠李戴,或者由于计算机的疏忽,出现工资发放错误的现象。同时工资的发放具有较强的时间限制,必须严格按照单位规定的时间完成计算和发放工作。正是工资管理的这种重复性、规律性、时间性,使得工资管理计算机化成为可能。计算机进行工资发放工作,不仅能够保证工资核算正确无误、快速输出,而且还可以利用工资数据库对有关工资的各种信息进行统计,服务于财务部门其他方面的核算和财务处理。本例按照一般企业都采用的工资计算公式,即根据员工的职务工种来确定基本工资,根据出工情况来扣除缺勤费,根据加班情况发放津贴来生成一个员工的当月工资。2.功能要求1、员工档案1)对员工进行统一编号,将每一位员工的部门信息、职称信息等保存在员工档案记录中。2)对新聘用的员工,将其信息加入到员工档案记录中;对于解聘的员工,将其信息从员工档案记录中删除。3)当员工的信息发生变动时,修改员工档案记录中相应的属性。2、员工考勤管理1)登记员工本月因迟到、早退、旷工扣减的工资3、员工加班管理1)登记员工本月加班获得的加班薪酬4、员工工资计算及管理1)根据各员工加入公司时间不同,定时对员工工资进行计算。2)结合员工基本工资,扣除工资及加班情况,对工资进行结算。5、管理1)员工可以登录系统查询自己的扣除工资、加班情况、本月工资及工资发放时间,也可以更改自己的登录密码。2)管理员可以查询和管理所有信息,可以更改自己的登录密码。3.安全性与完整性要求安全与保密要求:此系统可以分为用户和管理员,用户可以浏览自己的考勤加班情况、月工资金额及发放时间,但不能修改自己的信息,凡要修改都需通过管理员去修改。管理员主要管理系统的各种信息。二、数据库结构设计1.概念结构设计根据系统需求分析,可以得出工资管理系统数据库的概念模型(信息模型),用E-R图表示的工资管理系统的概念模型。最后,对设计出的数据模型进行规范化处理,使数据模型满足第三范式。1、员工实体图图1.员工实体图员工ygageygsexygnamefxdatebmidzcidjrdateygmmygid2、管理员实体图图2.管理员实体图3、部门实体图图3.部门实体图4、职称实体图部门表ygnamebmnamebmid职称表zcjbgzzcnamezcidmmglynameglyid管理员图4.职称实体图5、加班记录实体图图5.加班实体图6、考勤记录实体图图6考勤实体图考勤扣除工资kcgzkqyearygidkqmonth加班记录jbxcjbyearygidjbmonth7、工资记录实体图图7.工资实体图工资记录ygidzcjbgzyearkcgzjbxczgzmonth全E-R图:图8.实体联系图11n11111nn11nn11部门员工属于领导职位考勤管理加班管理职称考勤扣除工资加班薪酬工资基本工资扣除工资加班薪酬管理员担任1n2.逻辑结构设计将管理系统的E-R图转换为关系数据库的数据模型,其关系模式为:1)员工(员工编号,姓名,年龄,性别,所在部门编号,职称编号,加入公司时间,发薪时间,登录密码)员工编号为主码,所在部门编号、职称编号为外码2)管理员(管理员编号,姓名,密码)管理员为主码3)部门(部门编号,部门名称,经理人姓名)部门编号为主码4)职称(职称编号,职称名,基本工资)职称编号为主码5)加班记录(员工编号,年份,月份,加班薪酬)员工编号为主码,加班时长、加班薪酬为外码6)考勤扣除工资(员工编号,年份,月份,扣除工资)员工编号、考勤日期为主码,考勤类型、扣除工资为外码7)工资记录(员工编号,基本工资,扣除工资,加班薪酬,总工资,年份,年月)工资编号为主码,员工编号、发薪日期为外码。几范式?3.数据库结构的详细设计员工表列名数据类型描述备注ygidChar(8)员工编号主键ygnameVarchar(20)姓名不为空ygageInt年龄ygsexChar(2)性别“男”或“女”bmidChar(3)所在部门编号不为空,外码zcidChar(3)职称编号不为空,外码jrdatedate加入公司时间不为空fxdatedate发薪日期不为空ygmmChar(20)登录密码不为空管理员列名数据类型描述备注glyidChar(8)管理员编号主键glynameVarchar(20)管理员名不为空mmChar(20)密码不为空部门表列名数据类型描述备注bmidChar(3)部门编号主键bmnameVarchar(20)部门名称不为空ygnameVarchar(20)经理人姓名不为空职称表列名数据类型描述备注zcidChar(3)职称编号主键zcnameVarchar(20)职称名不为空zcjbgzmoney基本工资不为空加班记录列名数据类型描述备注ygidChar(8)员工编号主键jbyearint加班年份主键jbmonthint加班月份主键jbxcmoney加班薪酬考勤扣除工资列名数据类型描述备注ygidChar(8)员工编号主键kqdateint考勤年月主键kqmonthint考勤月份主键kcgzmoney扣除工资工资记录列名数据类型描述备注ygidChar(8)员工编号主码zcjbgzmoney基本工资不为空,外码kcgzmoney扣除工资jbxcmoney加班薪酬zgzmoney总工资不为空yearint年份主码monthint月份主码三、物理设计1.数据库物理设计原理对员工表在属性列ygid(员工编号)上建立索引,对部门表在属性列bmname(部门名称)和ygname(经理人姓名)上建立索引,对职称表在属性列zcname(职称名)上建立索引,对加班记录在属性列ygid(员工编号)和jbyear(加班年份)和jbmonth(加班月份)上建立索引,对考勤扣除工资在属性列ygid(员工编号)和kqyear(考勤年份)和kqmonth(考勤月份)上建立索引,对工资表在属性列ygid(员工编号)上建立索引,2.数据库的建立2.1表的简历createtable员工表(ygidchar(8)primarykey,ygnamevarchar(20)notnull,ygageint,ygsexchar(2)check(ygsexin('男','女')),bmidchar(3)notnull,zcidchar(3)notnull,jrdatedatenotnull,fxdatedatenotnull,ygmmchar(20)notnull,foreignkey(bmid)references部门表(bmid),foreignkey(zcid)references职称表(zcid),)createtable管理员(glyidchar(8)primarykey,----------管理员编号glynamevarchar(20)notnull,-----------管理员姓名mmchar(20)notnull,----------密码)createtable部门表(bmidchar(3)primarykey,bmnamevarchar(20)notnull,ygnamechar(20)notnull,)createtable职称表(zcidchar(3)primarykey,zcnamevarchar(20)notnull,zcjbgzmoneynotnull,)createtable加班记录(ygidchar(8),----------员工编号----------员工编号----------员工姓名----------年龄----------性别----------部门编号----------职称编号----------加入公司日期----------发薪日期----------登录密码----------部门编号----------部门名----------经理人姓名----------职称编号----------职称名----------基本工资jbyearint,----------加班年份jbmonthint,----------加班月份jbxcmoney,----------加班薪酬foreignkey(ygid)references员工表(ygid),primarykey(ygid,jbyear,jbmonth))createtable考勤扣除工资(ygidchar(8),kqyearint,kqmonthint,kcgzmoney,foreignkey(ygid)references员工表(ygid),primarykey(ygid,kqyear,kqmonth),)createtable工资记录(ygidchar(8),zcjbgzmoneynotnull,kcgzmoney,jbxcmoney,zgzmoneynotnull,yearint,monthint,foreignkey(ygid)references员工表(ygid),primarykey(ygid,year,month),)2.2索引createindex员工_索引on员工表(ygid);createindex部门_索引on部门表(bmname,ygname);createindex职称_索引on职称表(zcname);createindex加班记录_索引on加班记录(ygid,jbyear,jbmonth);createindex扣资_索引on考勤扣除工资(ygid,kqyear,kqmonth);createindex工资_索引on工资记录(ygid);2.3触发器----------员工编号----------考勤日期----------考勤类型----------扣除工资----------员工编号----------基本工资----------扣除工资----------加班薪酬----------总工资----------发薪年份----------发薪月份1)考勤扣除工资表中增加一条本月员工扣除资金,则工资记录中扣除工资相应改变createtrigger工资记录_kcgzon考勤扣除工资afterinsertasupdate工资记录setkcgz=inserted.kcgzfrom工资记录,insertedwhere工资记录.ygid=inserted.ygidand工资记录.year=inserted.kqyearand工资记录.month=inserted.kqmonth2)加班记录表中增加一条本月员工加班薪酬,则工资记录中加班薪酬相应改变createtrigger工资记录_jbxcon加班记录afterinsertasupdate工资记录setjbxc=inserted.jbxcfrom工资记录,insertedwhere工资记录.ygid=inserted.ygidand工资记录.year=inserted.jbyearand工资记录.month=inserted.jbmonth3)当工资记录中更新本月员工加班薪酬或扣除工资,则工资记录中总工资相应改变createtrigger工资记录_zgzon工资记录afterupdateasif(UPDATE(kcgz)orUPDATE(jbxc))beginupdate工资记录setzgz=zcjbgz+jbxc-kcgzfrom工资记录end3.数据库的运行和维护3.1运行需求1、硬件接口1)服务器端:PIII400主频、256M内
本文标题:工资管理系统
链接地址:https://www.777doc.com/doc-7116161 .html