1、数据库类课程设计系统开发报告学 号: 姓 名: 邢小迪 题 目: 公司员工薪资管理 指引教师: 王红梅 提交时间: 6月01日 计算机科学与应用系 目 录一 绪论二 员工薪资管理系统概述1l 现状分析1l 系统目的2l 系统特点3三 员工薪资管理系统数据库设计3l 需求分析 3l 数据库物理构造分析 4l 数据库概念构造设计 6l 数据库逻辑构造设计9四 员工薪资管理系统数据库功能模块创立12五 总结21l 体会21l 参照文献22一 绪论 随着计算机技术飞速发展和经济体制改革不断进一步,老式公司管理办法、手段以及工作效率已不能适应新发展需要,无法较好地完毕员工工资管理工作。提高公司公司管理水
2、平重要途径是更新管理者思想,增强对管理活动科学结识。基于SQLserver数据库技术建立一种通用工资管理系统,该系统为提供了查询、增长记录、删除等功能,功能比较齐全,并对工资进行了记录如津贴管理、报表记录等。基本上能满足管理员和公司规定。 本次数据库课程设计重要设计如下: 原理分析、程序设计过程、程序实现和程序调试以及数据库设计。 需求分析、概要构造设计、逻辑构造设计、物理构造设计和数据库实行和维护。二 员工薪资管理系统概述1、现状分析 随着公司人员数量增长,公司工资管理工作也变得越来越复杂。初期工资记录和发放都是使用人工方式解决纸质材料,不但耗费财务人员大量时间且不易保存,往往由于个人因素抄
3、写不慎或计算疏忽,浮现工资发放错误现象。初期工资管理多采用纸质材料和具备较强时间限制。随着国内国民经济建设蓬勃发展和具备中华人民共和国特色社会主义市场经济体制迅速完善,各个行业都在积极使用当代化手段,不断改进服务质量,提高工作效率,这些都在很大限度上给公司提出越来越严峻挑战,对公司体系无论是在行政职能、公司管理水平以及优质服务上都提出更高规定。建设一种科学高效信息管理系统是解决这一问题必由之路。公司内部财务管理是该公司运用当代化技术创造更多更高经济效益重要因素之一。工资管理作为公司内部一种财务管理也是如此,由于公司职工人数较多,每一位职工详细实际状况也不尽相似,各项工资条款发放,如果没有一种完
4、整管理系统对公司和员工工作都带来许多不便。基于以上因素,公司工资管理系统使用电脑安全保存、迅速计算、全面记录,实现工资管理系统化、规范化、自动化。2、系统目的 员工薪资管理系统重要目是运用计算机对员工各种工资信息进行寻常管理,如查询、修改、添加、删除以及存储等,迅速精确地完毕各种工资信息记录计算和汇总工作,针对系统服务对象详细规定,设计了公司工资管理系统。公司工资管理系统重要有如下几大功能: (1)对单位人员变动进行解决。一种单位职工不会是一成不变,总是在不断变化:有调出、有调入、也有职工在本单位内部调动。因而,设计系统是应考虑到这些状况。 (2)对职工工资进行计算、修改。可以对职工工资档案进
5、行个别、某些和批量修改,同步,能对各职工工资进行计算,即计算基本工资、岗位工资及实发金额等。 (3)查询记录功能。规定即可以单项查询,例如查看某个职工工资状况等;也可以多项查询,例如某个部门所有员工工资信息。 (4)对顾客管理功能。一种系统应用有管理员和普通顾客,她们对系统权限受到限制。3、系统特点 (1) 本系统使工资管理基本实现了信息化,系统设计各种查询规定代替了本来了人工查询,即节约了人力,又减轻了员工工作量,最重要是由计算机操作,可以提高数据精确性,避免人为错误,以便管理。 (2) 本系统设立了系统数据备份功能,定期系统备份可以在数据库受到意外或故意破坏状况下,系统得以恢复,减少损失。
6、 (3) 本系统界面设计简洁明了,采用了流行菜单设计,对于不是计算机专业管理人员,只需阅读操作阐明书,就能以便使用本系统。三 员工薪资管理系统数据库设计1、 需求分析 本系统定位于中小型单位,暂时考虑单机环境下实现; 本系统采用会员式管理,每个属于该单位职工均有一种属于自己顾客名和密码,通过该顾客名和密码就可以登陆系统执行基于自己权限范畴内操作,系统功能应涉及员工基本信息输入输出与修改、各部门基本信息输入修改、员工工资基本状况、总工资计算、记录分析。员工可以通过此系统查询自己本月基本工资,福利,奖金以及出去失业保险可住房公积金后工资。该工资管理系统重要是由基本资料、工资登记、工资查询、系统管理
7、几种某些构成,重要用于单位工资发放管理。(1)基本资料涉及员工基本资料和部门基本资料:员工基本资料:可以输入该员工编号、姓名、性别、出生日期、位于哪个部门、所处职业。部门基本资料:可以输入部门编号、名称 。(2)工资登记涉及工资登记和清数据:可以录入员工本月基本工资、奖金福利、失业保险和住房公积金,可以清除此前数据。(3)工资查询涉及员工工资汇总查询。(4)分类查询涉及按部门查询和按日期查询。2、数据库物理构造分析2.1 设计方略由于该系统重要用于员工工资管理,其中工资录入、计算、扣除与查询,人员增删减是重要功能,因此应用程序重要就是实现这几种功能。2.2 系统总体构造图员工工资管理系统员工信
8、息录入部门信息录入员工工资查询员工总工资计算系统管理员工子系统登录验证部门信息修改工资记录个人资料工资查询2.3系统详细设计阐明 员工基本信息表员工创立; 部门基本信息表科室创立; 员工工资基本信息表工资创立3、 数据库概念构造设计数据库概念设计是整个数据库设计核心。依照顾客需求设计数据库概念,数据模型。咱们一方面要将现实世界中客观对象一方面抽象为不依赖任何详细机器信息构造,这种信息构造不是DBMS支持数据模型,而是概念级模型。然后再把概念模型转换为详细机器上DBMS支持数据模型。概念模型是对现实世界抽象和概括。它真实,充分地反映了现实世界中事物和事物之间联系,能满足顾客对数据解决规定。由于其
9、简洁、明晰、独立于机器,很容易理解,因而可以用概念模型和不熟悉计算机顾客互换意见,使顾客能积极参加数据库设计工作。概念模型易于变动,还很容易向各种数据模型转换。概念模型基本概念涉及重要有7个,分别为实体、属性、码、域、实体型、实体集、联系。ER图是概念模型最惯用表达办法,在ER图中:1)用长方形表达实体型,在框内写上实体名。2)用菱形表达实体间联系,菱形框内写上联系名,用无向边把菱形分别与关于实体相连,在无向边旁标上联系类型。若实体间联系也具备属性,则把属性和菱形也用无向边连上。 员工实体关系图(图1) 员工员工号姓 名性 别职 业所属部门年龄 部门实体关系图(图2)部 门部门编号名 称部 门
10、部门编号名 称 工资实体关系图(图3)奖励工资住房公积金福利补贴失业保险基本工资工资日期 部门员工实体关系图(图4)部 门部门员工员 工 员工工资实体关系图(图5)员工员工工资工资4、数据库逻辑构造设计 4.1 依照上述概念模型设计得出ER图,咱们可以得出系统中涉及重要实体有3个,其构造如下: 1、员工(员工工号,姓名、性别、出生日期、部门代码和职业) 2、部门(部门代码,部门名称) 3、工资(员工工号,姓名,日期,基本工资,奖励工资,福利补贴,住房公积金,失业保险) 4.2 实体间联系工资管理系统中实体之间有6个联系,其关系如下: 1、具备1关系:员工和奖金关系是1:N,N个职位相似员工具备
11、相似奖金基数。 2、工薪关系:员工和工资单关系是1:N,每个员工每月均有一张工资单。 3、属于关系:员工和部门关系是N:1,一种部门可以有各种员工。 4、聘任关系:员工和职业关系是N:1,一种职务可以聘任各种员工。 5、设立关系:部门和职业关系是M:N,一种部门可以设立各种职务,相似职务也可以设立在各种部门。 依照以上逻辑构造分析咱们可以懂得:一种部门有各种员工,每个员工均有工资,工资又由基本工资等构成,其关系模式为:员工编号(主键)姓名性别出生日期部门代码 ( 外键)职业部门号(主键)部门名称员工工号(主键)姓名基本工资福利补贴奖励工资失业保险住房公积金日期表、视图汇总视图/表名类型阐明员工
12、基本表集中保存员工基本信息科室基本表集中存储单位各部门信息工资基本表存储员工工资基本信息4.3 完整性约束: 基本表员工 基本表科室 基本表工资四 员工薪资管理系统数据库功能模块创立1 建立员工表,工资表,科室表-USE ygxz-GO-CREATE TABLE 科室-(部门代码k char (10) PRIMARy KEY,- 部门名称char (30) NOT NULL)-GO -CREATE TABLE 员工-(员工工号y char (10) PRIMARy KEY,- 姓名y char(10) not null,- 性别 char(2) constraint Y3 check (性别i
13、n (男,女),- 出生日期datetime,- 部门代码y char (10)foreign key (部门代码y) references 科室(部门代码k), - 职业char (20)-GO-CREATE TABLE 工资-(- 员工工号g char (10)primary key ,-constraint Y1 check (员工工号g between 1110000 and 1111111),-foreign key(员工工号g) references 员工(员工工号y),- 姓名g char(10),- - 基本工资money,- 福利补贴money,- 奖励工资money,- 失
14、业保险money,- 住房公积金money,- 日期datetime ,- constraint c1 check (基本工资+福利补贴+奖励工资-失业保险-住房公积金=3000)-GO 2 录入员工表,工资表,科室表数据然后查询表USE ygxzGOINSERT 科室VALUES(0001,经理室)INSERT 科室VALUES(0002,财务科)INSERT 科室VALUES(0003,技术科)INSERT 科室VALUES(0004,销售科)GO SELECT *FROM 科室USE ygxzGOINSERT 员工VALUES (1110001,张毅,男,1991-01-01,0003,
15、工程师)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-02,0002,会计)NSERT 员工VALUES (1110007,王梦,女,1992-04-02,
16、0002,助理睬计)NSERT 员工VALUES (1110008,邢梦,女,1992-04-02,0002,助理睬计)INSERT 员工VALUES (1110009,武阳,男,1992-05-02,0002,助理睬计)INSERT 员工VALUES (1110010,无双,男,1993-05-02,0001,副经理)INSERT 员工VALUES (1110011,霸气,男,1992-05-02,0001,秘书)SELECT *FROM 员工USE ygxzGOINSERT 工资VALUES (1110001,张毅,200,300,100,240,-05-15)INSERT 工资VALUE
17、S (1110002,张尔,200,300,100,240,-05-15)INSERT 工资VALUES (1110003,张三,1800,200,200,100,240,-05-15)INSERT 工资VALUES (1110004,李四,1800,200,200,100,240,-05-15)INSERT 工资VALUES (1110005,李梦,1800,200,200,100,240,-05-15)INSERT 工资VALUES (1110006,李飞,2500,200,400,100,240,-05-15)INSERT 工资VALUES (1110007,王梦,2100,200,40
18、0,100,240,-05-15)INSERT 工资VALUES (1110008,邢梦,2100,200,400,100,240,-05-15)INSERT 工资VALUES (1110009,武阳,2100,200,400,100,240,-05-15)INSERT 工资VALUES (1110010,无双,2700,100,300,200,240,-05-15)INSERT 工资VALUES (1110011,霸气,200,400,100,140,-05-15)INSERT 工资VALUES (1110012,吴淑敏,2200,200,400,100,240,-05-15)INSERT
19、工资VALUES (1110013,吴飞扬,2250,100,400,100,240,-05-15)INSERT 工资VALUES (1110014,邢小迪,2750,200,400,100,440,-05-15)INSERT 工资VALUES (1110015,朱鸿儒,2100,200,300,100,240,-05-15)INSERT 工资VALUES (1110016,熊朝辉,2100,200,300,100,240,-05-15)INSERT 工资VALUES (1110017,吴飞扬,2100,200,300,100,240,-05-15)INSERT 工资VALUES (11100
20、18,杨亚迪,2140,200,300,100,240,-05-15)INSERT 工资VALUES (1110019,李敏,2100,200,300,100,240,-05-15)INSERT 工资VALUES (1110020,郭佳,2440,200,300,100,240,-05-15)GO SELECT * FROM 工资3 运用触发器删除表中信息create trigger del_ygon 员工instead of deleteasbegindelete 工资where 员工工号g in (select 员工工号y from deleted) delete 员工where 员工工号
21、y in (select 员工工号y from deleted) end delete 员工where 员工工号y=1110003goSELECT *FROM 工资 SELECT *FROM 员工I4 视图查询表中信息create view Y01( 员工工号y,姓名y,性别,职业,部门名称,出生日期,基本工资,福利补贴,奖励工资,失业保险,住房公积金)asselect 员工工号y,姓名y,性别,职业,部门名称,出生日期,基本工资,福利补贴,奖励工资,失业保险,住房公积金from 员工,工资,科室where 员工工号y=员工工号g;查询职工总人数select count(distinct 员工
22、工号y) 职工总人数from Y01-查询部门总数-select count(distinct 部门名称) as 科室-from y015 存储过程创立1)、创立存储过程查询每个员工实际发放工资USE ygxzGOCREATE PROCEDURE 员工工号y_实际工资员工工号y char(10)=%ASBEGIN SELECT 员工工号y,姓名y,部门代码y,职业,基本工资+福利补贴+奖励工资-失业保险-住房公积金as 实际工资,日期FROM 员工,工资WHERE员工工号y=员工工号g and 员工工号g=员工工号yEND执行存储过程员工工号y_实际工资execute 员工工号y_实际工资11
23、100112)、创立存储过程查询每个员工扣除工资-USE ygxz-GO-CREATE PROCEDURE 员工工号y_扣除工资-员工工号y char(10)=%-AS-BEGIN-SELECT 员工工号y,姓名y,部门代码y,职业,失业保险+住房公积金as 扣除工资,日期-FROM 员工,工资-WHERE 员工工号y=员工工号g and 员工工号g=员工工号y-END-执行存储过程员工工号y_扣除工资-execute 员工工号y_扣除工资11100113)、创立存储过程查询各部门人数USE ygxzGOCREATE PROCEDURE 部门_人数部门代码 char(10)=%ASBEGINs
24、elect 部门名称,count(*) as 总人数from 员工,科室where 部门代码k= 部门代码y and 部门代码y=部门代码group by 部门名称;END执行存储过程部门_人数 execute 部门_人数0003 4)、创立存储过程查询各职业人数USE ygxzGOCREATE PROCEDURE 职业_人数职业 char(10)=%ASBEGINselect 职业,count(*) as 总人数from 员工where 职业=职业group by 职业END执行存储过程职业_人数execute 职业_人数销售专人5)、创立存储过程按部门查询工资USE ygxzGOCREAT
25、E PROCEDURE 部门_工资部门代码 char(10)=%ASBEGINselect 员工工号y,姓名g,部门名称,职业,基本工资+福利补贴+奖励工资-失业保险-住房公积金as 实际工资from 员工,工资,科室where 部门代码k=部门代码y and 员工工号y=员工工号g and 部门代码y like 部门代码end执行存储过程部门_工资execute 部门_工资00026)、创立存储过程按职业查询工资USE ygxzGOCREATE PROCEDURE 职业_工资职业 nchar(20)=%ASBEGINselect 员工工号y,姓名g,职业,基本工资+福利补贴+奖励工资-失业保
26、险-住房公积金as 实际工资from 员工,工资,科室where 员工工号y=员工工号g and 部门代码k=部门代码y and 职业=职业end执行存储过程职业_工资execute 职业_工资销售专人五 总结1、 体会本次课程设计给我体会有如下几点:一、看似简朴,其实否则此前没有过课程设计经验,作为第一次课程设计课,我抱着试试看态度去写,一开始看了只有这样几种模块是心里挺高兴,但是当我真真正正地去把一种操作写成功时,诸多意想不到状况发生了。有时候会为了一种操作不能调试成功而整个晚上都不能去安心做其她作业。二、 冷静沉着、兢兢业业编程是一种很繁琐过程,要考虑到诸多错误转移状况,在这期间会有诸多
27、此前不曾想过问题浮现,次数多了,不免会有觉得做不下去感觉。但是我从中发现,只要一步一步调试、静下心来看待问题,再复杂再微小问题都会迎刃而解,当一种程序被调试出来时,那时高兴相比与任何困难都值得。三、 立足程序、回归课本在着手写程序时觉得思路一片混乱,无意间浮现问题会不懂得怎么解决。这时,需要回归课本,课本是前人总结经验,几乎所有状况都会有解决办法。只有把课本“吃透”,在遇到问题是才会反映快。最后我要感谢我同窗同窗,在本次课程设计过程中与她们探讨深究,使我受益颇多,在此,我表达衷心感谢. 2、参照文献1 申时凯,戴祖诚等 数据库原理与技术(SQLserver)清华大学出版社,2 王珊,萨师煊 数据库系统概论M 高等教诲出版社,3 郑阿奇等 SQLserver实用教程M 电子工业出版社,