《数据库类课程设计》系统开发报告学号:111007133姓名:邢小迪题目:企业员工薪资管理指导教师:王红梅提交时间:2013年6月01日计算机科学与应用系目录一绪论二员工薪资管理系统概述·······························1现状分析········································1系统目标········································2系统特点········································3三员工薪资管理系统数据库设计·························3需求分析·······································3数据库物理结构分析····························4数据库概念结构设计····························6数据库逻辑结构设计····························9四员工薪资管理系统数据库功能模块的创建···········12五总结·············································21体会·········································21参考文献·····································221一绪论随着计算机技术的飞速发展和经济体制改革的不断深入,传统企业管理方法、手段以及工作效率已不能适应新的发展需要,无法很好地完成员工工资管理工作。提高公司企业管理水平的主要途径是更新管理者的思想,增强对管理活动的科学认识。基于SQLserver数据库技术建立一个通用工资管理系统,该系统为提供了查询、增加记录、删除等功能,功能比较的齐全,并对工资进行了统计如津贴管理、报表统计等。基本上能满足管理员和公司的要求。此次数据库课程设计的主要设计如下:原理分析、程序设计过程、程序实现和程序调试以及数据库的设计。需求分析、概要结构设计、逻辑结构设计、物理结构设计和数据库的实施和维护。二员工薪资管理系统概述1、现状分析随着企业人员数量增加,企业的工资管理工作也变得越来越复杂。早期的工资统计和发放都是使用人工方式处理纸质材料,不仅花费财务人员大量的时间且不易保存,往往由于个人的因素抄写不慎或计算疏忽,出现工资发放错误的现象。早期工资管理多采取纸质材料和具有较强的时间限制。随着我国国民经济建设2的蓬勃发展和具有中国特色的社会主义市场经济体制的迅速完善,各个行业都在积极使用现代化的手段,不断改善服务质量,提高工作效率,这些都在很大程度上给企业提出越来越严峻的挑战,对企业体系无论是在行政职能、企业管理水平以及优质服务上都提出更高的要求。建设一个科学高效的信息管理系统是解决这一问题的必由之路。企业内部财务管理是该企业运用现代化技术创造更多更高的经济效益的主要因素之一。工资管理作为企业内部的一种财务管理也是如此,由于企业职工人数较多,每一位职工的具体实际情况也不尽相同,各项工资条款的发放,如果没有一个完整的管理系统对企业和员工的工作都带来许多的不便。基于以上原因,企业工资管理系统使用电脑安全保存、快速计算、全面统计,实现工资管理的系统化、规范化、自动化。2、系统目标员工薪资管理系统的主要目的是利用计算机对员工的各种工资信息进行日常的管理,如查询、修改、添加、删除以及存储等,迅速准确地完成各种工资信息的统计计算和汇总工作,针对系统服务对象的具体要求,设计了企业工资管理系统。企业工资管理系统主要有以下几大功能:(1)对单位人员的变动进行处理。一个单位的职工不会是一成不变的,总是在不断的变化:有调出、有调入、也有职工在本单位内部调动。因此,设计系统是应考虑到这些情况。(2)对职工的工资进行计算、修改。可以对职工的工资档案进3行个别、部分和批量修改,同时,能对各职工的工资进行计算,即计算基本工资、岗位工资及实发金额等。(3)查询统计功能。要求即可以单项查询,比如查看某个职工的工资情况等;也可以多项查询,比如某个部门所有的员工的工资信息。(4)对用户管理功能。一个系统的应用有管理员和普通用户,他们对系统的权限受到限制。3、系统特点(1)本系统使工资管理基本实现了信息化,系统设计的各种查询要求代替了原来了人工查询,即节省了人力,又减轻了员工的工作量,最重要的是由计算机操作,可以提高数据的准确性,避免人为的错误,方便管理。(2)本系统设置了系统数据备份功能,定期的系统备份可以在数据库受到意外的或有意的破坏的情况下,系统得以恢复,减少损失。(3)本系统的界面设计简洁明了,采用了流行的菜单设计,对于不是计算机专业的管理人员,只需阅读操作说明书,就能方便的使用本系统。三员工薪资管理系统数据库设计1、需求分析本系统定位于中小型单位,暂时考虑单机环境下的实现;4本系统采用会员式管理,每个属于该单位的职工都有一个属于自己的用户名和密码,通过该用户名和密码就可以登陆系统执行基于自己权限范围内的操作,系统功能应包括员工基本信息的输入输出与修改、各部门的基本信息输入修改、员工工资的基本情况、总工资的计算、统计分析。员工可以通过此系统查询自己本月的基本工资,福利,奖金以及出去失业保险可住房公积金后的工资。该工资管理系统主要是由基本资料、工资登记、工资查询、系统管理几个部分组成的,主要用于单位工资发放管理。(1)基本资料包括员工基本资料和部门的基本资料:员工基本资料:可以输入该员工的编号、姓名、性别、出生日期、位于哪个部门、所处的职业。部门基本资料:可以输入部门的编号、名称。(2)工资登记包括工资登记和清数据:可以录入员工本月的基本工资、奖金福利、失业保险和住房公积金,可以清除以前的数据。(3)工资查询包括员工工资汇总查询。(4)分类查询包括按部门查询和按日期查询。2、数据库物理结构分析2.1设计策略由于该系统主要用于员工的工资管理,其中工资的录入、计5算、扣除与查询,人员的增删减是主要功能,所以应用程序主要就是实现这几个功能。2.2系统总体结构图2.3系统详细设计说明员工工资管理系统员工信息录入部门信息录入员工工资查询员工总工资计算系统管理员工子系统登录验证部门信息修改工资统计个人资料工资查询6①员工基本信息表[员工]的创建;②部门基本信息表[科室]的创建;③员工工资基本信息表[工资]的创建3、数据库概念结构设计数据库概念设计是整个数据库设计的关键。根据用户需求设计数据库的概念,数据模型。我们首先要将现实世界中的客观对象首先抽象为不依赖任何具体机器的信息结构,这种信息结构不是DBMS支持的数据模型,而是概念级模型。然后再把概念模型转换为具体机器上DBMS支持的数据模型。概念模型是对现实世界的抽象和概括。它真实,充分地反映了现实世界中的事物和事物之间的联系,能满足用户对数据的处理要求。由于其简洁、明晰、独立于机器,很容易理解,因此可以用概念模型和不熟悉计算机的用户交换意见,使用户能积极参与数据库的设计工作。概念模型易于变动,还很容易向各种数据模型转换。概念模型的基本概念涉及的主要有7个,分别为实体、属性、码、域、实体型、实体集、联系。E-R图是概念模型最常用的表示方法,在E-R图中:1)用长方形表示实体型,在框内写上实体名。2)用菱形表示实体间的联系,菱形框内写上联系名,用无向边把菱形分别与有关实体相连,在无向边旁标上联系的类型。若实7体间的联系也具有属性,则把属性和菱形也用无向边连上。员工实体——关系图(图1)部门实体——关系图(图2)员工员工号姓名性别职业所属部门年龄部门部门编号名称部门部门编号名称8工资实体——关系图(图3)部门——员工实体关系图(图4)员工——工资实体关系图(图5)4、数据库逻辑结构设计奖励工资住房公积金福利补贴失业保险基本工资工资日期员工员工—工资工资部门部门—员工员工94.1根据上述概念模型设计得出的E—R图,我们可以得出系统中涉及的主要实体有3个,其结构如下:1、员工(员工工号,姓名、性别、出生日期、部门代码和职业)2、部门(部门代码,部门名称)3、工资(员工工号,姓名,日期,基本工资,奖励工资,福利补贴,住房公积金,失业保险)4.2实体间的联系工资管理系统中实体之间有6个联系,其关系如下:1、具有1关系:员工和奖金的关系是1:N,N个职位相同的员工具有相同的奖金基数。2、工薪关系:员工和工资单的关系是1:N,每个员工每个月都有一张工资单。3、属于关系:员工和部门的关系是N:1,一个部门可以有多个员工。4、聘用关系:员工和职业的关系是N:1,一个职务可以聘用多个员工。5、设置关系:部门和职业的关系是M:N,一个部门可以设置多个职务,相同的职务也可以设置在多个部门。根据以上逻辑结构分析我们可以知道:一个部门有多个员工,每个员工都有工资,工资又由基本工资等组成,其关系模式为:10员工编号(主键)姓名性别出生日期部门代码(外键)职业员工工号(主键)姓名基本工资福利补贴奖励工资失业保险住房公积金日期表、视图汇总视图/表名类型说明员工基本表集中保存员工的基本信息科室基本表集中存放单位各部门的信息工资基本表存放员工工资的基本信息4.3完整性约束:基本表[员工]部门号(主键)部门名称11基本表[科室]基本表[工资]12四员工薪资管理系统数据库功能模块的创建1建立员工表,工资表,科室表--USEygxz--GO--CREATETABLE科室--(部门代码kchar(10)PRIMARyKEY,--部门名称char(30)NOTNULL)--GO--CREATETABLE员工--(员工工号ychar(10)PRIMARyKEY,--姓名ychar(10)notnull,--性别char(2)constraintY3check(性别in('男','女')),--出生日期datetime,--部门代码ychar(10)foreignkey(部门代码y)references科室(部门代码k),--职业char(20))--GO--CREATETABLE工资--(--员工工号gchar(10)primarykey,--constraintY1check(员工工号gbetween'1110000'and'1111111'),--foreignkey(员工工号g)references员工(员工工号y),--姓名gchar(10),13----基本工资money,--福利补贴money,--奖励工资money,--失业保险money,--住房公积金money,--日期datetime,--constraintc1check(基本工资+福利补贴+奖励工资-失业保险-住房公积金=3000))----GO2录入员工表,工资表,科室表的数据然后查询表USEygxzGOINSERT科室VALUES('0001','经理室')INSERT科室VALUES('0002','财务科')INSERT科室VALUES('0003','技术科')INSERT科室VALUES('0004','销售科')GOSELECT*FROM科室14USEygxzGOINSERT员工VALUES('1110001','张毅','男','1991-01-01','0003','工程师')GOINSERT员工VALUES('1110002','张尔','男','1991-02-01','0003','工程师')INSERT员工VALUES('1110003','张三','男','1991-02-02','0003','助理工程师')INSERT员工VALUES('1110004','李四','女','1991-04-02','0003','助理工程师')NSERT员工VALUES('1110005','李梦','女','1992-04-02','0003','助理工程师')INSERT员工VALUES('1110006','李飞','女','1991-04-0