工资管理系统数据库设计报告(数据库课程设计报告)_第1页
工资管理系统数据库设计报告(数据库课程设计报告)_第2页
工资管理系统数据库设计报告(数据库课程设计报告)_第3页
工资管理系统数据库设计报告(数据库课程设计报告)_第4页
工资管理系统数据库设计报告(数据库课程设计报告)_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、据库课程设计报告设计题目:工资管理系统学院:数学与计算机学院专业:计算机科学与技术(软件工程)班级:软件12指导老师:竹林组员:振国(02)奇卫(03)z.小组成员及分工组员分工编写代码及测试运行概念设计物理结构设计需求分析需求分析需求分析需求分析6.2 建表 173目录1. 引言51.1 编写目的51.2 项目背景51.3 参考资料52. 需求分析62.1 功能的分析、62.2 顶层图62.3 3数据流程图62.4 数据字典分析73. 数据库的概念设计94. 数据库的逻辑设计115. 数据库与数据表的设计物理结构设计125.1 数据库与数据表的设计125.2 数据的完整性设计166. 数据库

2、操作与实施结果数据库对象的设计176.1 建数据库工资管理库176.3 创建视图226.4 触发器236.5 建立索引267. 运行和维护267.1 1简单查询267.2 复杂查询287.3 数据库的用户与权限管理297.4 数据库的备份327.5 数据的导出与导入328. 总结33工资管理系统分析和设计1引言1.1 编写目的随着科学的进步,一些公司不断发展壮大急需一套完整的工资管理系统帮助企业的财务主管部门提高工作效率,实现企业工资管理的系统化、规化和自动化。本系统实现对人员信息、薪资福利、员工社保信息的维护和查询,并能迅速准确地完成考勤的分类汇总,生成工资报表等。能够使单位实现工资管理的自

3、动化,无疑将给企业管理部门带来很大的便。真正实现企业高效、科学、现代化的员工管理。有利于财务部门对员工工资的管理,减轻人事部们的任务,提高公司效率,节约人力资源从而降低了企业成本。1.2 项目背景a. 我们对数据库技术有了初步的了解和具体的应用;因此,做此分析,由各小组成员合作做出一个项目。让我们对学到的知识系统的结合在一起;考察学生学以致用的能力。b. 由此考察学生的动手能力和合作的精神;以打分的形式作为一次考察记录。1.3 参考资料a. 老师发放的软件工程文档模板。b. 网络下载有关的资料说明和一些部门的工资管理系统例。2.1功能的分析、工资管理系统主要完成的功能有:(1)人员信息管理:企

4、业员工信息(包括员工基本信息、教育经历、个人简历、岗位变更、离职登记、离退休信息等)的维护和查询。(2)考勤管理:管理员工的出勤情况(包括加班、请假、休假等),并提供查询和分类统计功能。(3)薪资福利管理:管理员工的薪资和福利(包括当月工资、个人所得税、发放工资历史、员工奖励、员工惩罚等)。(4)社会保障管理:管理员工的社保信息(包括单位参保信息、养老保险、医疗保险、住房公积金等),生成社会保险台帐。(5)系统管理:包括代码管理、参数设置、权限设置、更改密码等。352.2顶层图(工资管、人理系统j工资考厂/注册登记员工2.3数据流程图k言息维护打印加系统管理员2.4数据字典分析数据字典是系统中

5、各类数据描述的集合,是进行详细的数据收集和数数据分析所获得的主要成果。名字:员工基本信息表描述:保存员工的基本信息定义:性别+姓名+年龄+部门+员工编号+毕业院校+所学专业+政治面貌名字:简历表描述:保存员工的求职信息定义:获奖情况+社会实践情况名字:离职退休信息表描述:保存员工的离职相关信息定义:离职原因+离职日期+工龄名字:岗位变更表描述:保存员工岗位变更的相关信息定义:变更日期+初始岗位+现在岗位名字;员工工资基本表描述:保存员工基本信息定义:包括员工ID,工资发放日期,工资组成的各个方面名字:员工考勤表里ifeB考勤情况州的必槌号、加班、休假、请假定义:包括奖惩时间,奖惩原因,奖惩工资

6、情况名字:社保信息描述:保存员工社保信息定义:参保信息+医疗保险+住房公积金+养老保险名字:发放工资历史描述:发放工资情况信息定义:包括发放工资历史记录名字:员工考勤表描述:记录员工的考勤情况定义:包括日期、员工编号、加班、休假、请假名字:社保信息描述:保存员工社保信息定义:参保信息+医疗保险+住房公积金+养老保险3 .数据库的概念设计分析前面的系统功能要求,需要一个表来存储和管理员工信息,使系统能够接受员工原始的各项数据,以实现数据录入、查询或统计员工信息等功能。员工是本系统的一个实体。为了能实现肯询和统计部门员工情况等功能,必须后一个表来存储和管理所后部门的信名字:部门表息。部门也是卜筋卷

7、?保存部门信息工资是以员定义:部门编号+部门名称+部门人数+部门负责人工工作情况来制定的。需要建立一个表来记录各种工资、津贴、扣款的信息。它主要为各种查询和统计功能提供工资数据。工资也是一个实体。考勤管理是为了实现对员工考勤的管理,并实现对员工的进行查询和分类汇总的功能,因此,考勤也是一个实体。奖惩是以员工受到的奖励和惩罚所决定的,需建立一个表来记录各种奖励和惩罚。它主要是为各种查询提供数据。社保信息是为提供基本的查询功能而设定的一个实体,岗位变更是为记录员工在本部门或不同部门的职位变化,并提供查询的功能。员工简历是为了提供员工在过去的情况而设定的一个实体。据此可以绘出工资管理系统数据库的E-

8、R图如下:4 .数据库的逻辑设计将数据库的概念模型转变为关系模型:实体转变为关系模式的有:因为部门和员工1:N的关系,且员工和其他的实体也是1:N的关系,所以个关系模式为:部门(部门名称,部门人数,部门负责人)员工(员工编号,姓名,性别,年龄,学历,政治面貌,毕业学校,所学专业,出生日期,部门名称,退休信息,)工资(工资ID,员工编号,基本工资,岗位工资,工龄工资,加班工资,个人所得税,缺勤扣款,其他应扣款,其他应加款,应发工资,实发工资,工资年月)考勤(考勤ID,员工编号,加班,请假,休假,日期,出勤天数)岗位变更(ID,员工编号,初始岗位,现在岗位,变更日期)离职信息(ID,员工编号,离职

9、时间,离职原因,批准人)简历(ID,员工编号,获奖情况,社会实践)奖惩(奖惩ID,员工编号,奖罚日期,奖罚原因,解除日期)工资历史(ID,员工编号,发放金额,发放日期)社保信息(ID,员工编号,养老保险,医疗保险,住房公积金,参保信息)用户信息(员工编号,密码,权限)带下划线的属性为个关系模式的外码,字体为粗体的属性为各关系模式的主码。5 .数据库与数据表的设计一一物理结构设计5.1 数据库与数据表的设计员工信息数据表的定义字段字段名数据类型长度1姓名Varchar82性别char23年龄int4员工编号Varchar105部门名称Varchar156毕业院校Varchar307政治面貌Var

10、char88所学专业Varchar409学历Varchar1010出身日期Varchar1511退休信息Varchar30其中“员工编号”是表的主键,唯一标识。“部门名称”是外键。“员工编号”将记录员工的编号,在员工信息表中增加这一列时,虽然增加了数据冗余,但可以再查询每个员工信息是,提高系统的性能。因为员工信息表的系统记录数相对固定,相比之下,增加这个冗余的列对于整个系统来说是有利的。通过它,将引用到工资信息。此表取名为“员工”岗位变更数据表的定义:字段字段名称数据类型长度1员工编号varchar103初始岗位varchar204变更日期varchar205现在岗位varchar206IDi

11、nt其中“员工编号”是主键,此表取名为岗位变更。简历表:字段字段名称数据类型长度1员工编号varchar102IDint3获奖情况varchar504社会实践情况varchar100此表取名为简历。离职信息:字段字段名称数据类型长度1员工编号varchar102IDint3离职日期varchar204离职原因varchar405批准人varchar8此表取名为离职信息。奖惩表:字段名数据类型长度允空主键奖惩IDintNotnull是员工编号varchar9Nonull否奖惩日期varchar15Null否奖惩原因varchar15Null否解除日期varchar15Null否员工工资基本表字段

12、名数据类型长度允空主键工资IDIntNotnull是员工编号varchar9Notnull否基本工资decimal5Notnull否个人所得税decimal5Notnull否缺勤扣款工资decimal5Null否加班工资decimal5null否工龄工资decimal5Notnull否其他应减款decimal5Notnull否其他应增款decimal5Notnull否岗位工资decimal5Notnull否应发工资decimal5否实发工资decimal5否日期varchar4Nonull否发放工资历史字段名数据类型长度允空主键IDvarchar9Null是员工编号varchar10Notnu

13、ll否发放金额decimal9Notnull否发放日期varchar15Notnull否考勤表字段名数据类型长度允空主键日期varchar12notnull否员工编号varchar25Notnull否加班decimal40Null否休假decimal40Null否请假decimal40Null否出勤天数int4Notnull否考勤IDIntNotnull是社保信息字段名数据类型长度允空主键IDINTNOTNULL是员工编号varchar10Null否社保信息varchar20Null否参保信息varchar20Null否医疗保险varchar20Null否住房公积金varchar20Null否

14、养老保险varchar20Null否用户信息表字段名数据类型长度允空主键员工编号varchar10Notnull是密码Varchar9Notnull否权限Int2Notnull否部门字段名数据类型长度允空主键部门名称varchar10Notnull是部门人数int9Notnull否部门负责人varchar15Notnull否5.2 数据的完整性设计6 1)给每个表实施主键约束。主键约束、非空约束员工:员工编号为主键,所以此项非空部门:部门编号为主键,所以此项非空其余的正如上面的设计7 2)实施CHECK约束 员工表中建立一个检查约束,即员工性别不是男的就是女的CHECK(性另ijIN('

15、;男','女') 考勤表中建立一个对于出勤天数天数的检查约束,即出勤天数在0-20之间CHECK(出勤天数=0and出勤天数二20)外键约束FK_员工_部门FOREIGNKEY(部门名称)REFERENCES部门(部门名称)FK_工资员工FOREIGNKEY(员工编号)REFERENCES员工(员工编号)FK_岗位变更员工FOREIGNKEY(员工编号)REFERENCES员工(员工编号)FK_简历员工FOREIGNKEY(员工编号)REFERENCES员工(员工编号)FK_离职员工FOREIGNKEY(员工编号)REFERENCES员工(员工编号)FK_奖惩员工FOR

16、EIGNKEY(员工编号)REFERENCES员工(员工编号)FK_工资历史_员工FOREIGNKEY(员工编号)REFERENCES员工(员工编号)FK考勤_员工FOREIGNKEY(员工编号)REFERENCES员工(员工编号)FK社保_员工FOREIGNKEY(员工编号)REFERENCES员工(员工编号)(4)惟一约束每一个表的主键都需要定义为惟一性:对于工资历史表员工编号也要惟一约束。(5)强制约束对INSERT和UPDATE操作强制约束,表明以后对员工表中的部门名称的添加和更新操作都会检查部门表中是否存在与此相应的容。6. 数据库操作与实施结果数据库对象的设计6.1 建数据库工资管

17、理库CreatedatabaseGZGL;6.2 建表Createtable员工(员工编号varchar(10)notnullprimarykey,姓名char(8)notnull,性别char(2)notnullcheck(性别in(男,女),年龄intnotnull,学历varchar(10)notnull,部门名称varchar(15)notnull,毕业院校varchar(30)notnull,政治面貌varchar(8)notnull,所学专业varchar(40)notnull,出生日期varchar(15)notnull,退休信息varchar(4)notnull,FOREIGN

18、KEY(部门名称)REFERENCES部门(部门名称);Createtable简历(IDintprimarykeyidentity,员工编号varchar(10)notnull,获奖情况varchar(50),社会实践情况varchar(100),FOREIGNKEY(员工编号)REFERENCES员工(员工编号);Createtable离职(IDintprimarykeyidentity,员工编号varchar(10)notnull,离职原因varchar(40),离职时间varchar(20),批准人varchar(8),FOREIGNKEY(员工编号)REFERENCES员工(员工编号)

19、;Createtable岗位变更(IDintprimarykeyidentity,员工编号varchar(10)notnull,初始岗位varchar(20),变更日期varchar(20),现在岗位varchar(20),FOREIGNKEY(员工编号)REFERENCES员工(员工编号);CREATETABLE工资(工资IDintprimarykeyidentity,员工编号varchar(10)notnull,基本工资decimalnotnull,个人所得税decimalnotnull,缺勤扣款decimal,加班工资decimal,工龄工资decimalnotnull,其他应减款dec

20、imal,其他应增款decimal,岗位工资decimalnotnull,应发工资decimal,实发工资decimal,工资年月varchar(15),FOREIGNKEY(员工编号)REFERENCES员工(员工编号);CREATETABLE奖惩(奖惩IDintprimarykeyidentity,员工编号varchar(10)notnull,奖惩日期varchar(15),奖惩原因varchar(15),解除日期varchar(15)FOREIGNKEY(员工编号)REFERENCES员工(员工编号);CREATETABLE工资历史(IDintprimarykeyidentity,员工编

21、号varchar(10),发放金额decimal,发放日期varchar(20),FOREIGNKEY(员工编号)REFERENCES员工(员工编号);Createtable考勤(考勤IDintprimarykeyidentity,员工编号varchar(10)notnull,加班int,休假int,请假int,日期varchar(15),出勤天数20-请假-休假intCHECK(出勤天数>=0and出勤天数<=20),FOREIGNKEY(员工编号)REFERENCES员工(员工编号);Createtable社保(IDintprimarykeyidentity,员工编号varch

22、ar(10)notnull,参保信息varchar(20),医疗保险decimal,住房公积金decimal,养老保险decimal,FOREIGNKEY(员工编号)REFERENCES员工(员工编号));Createtable部门(部门名称varchar(15)primarykey,部门人数int,部门负责人varchar(15);Createtable用户信息(员工编号varchar(10)primarykey,密码varchar(9)notnull,权限intnotnull);6.3 创建视图查询员工工资情况建立一个视图,反映员工姓名及工资情况。Createview员工_工资ASSELE

23、CT员工.姓名,工资.*from员工,工资where员工.员工编号=工资.员工编号6.4 触发器(1) 当考勤表添加一条记录,工资表中的“加班工资”“考勤扣款”自动更新createtriggerinsert_考勤on考勤afterinsertasbegindeclarenew_numintdeclarenew_num1intdeclarenew_datevarcharselect new_num=(select加班 from inserted)select new_num1=(select请假 from inserted)select new_date=(selectfrom inserted

24、)update工资set加班工资=new_num*100,缺勤扣款 =new_num1*100 where员工编号in(select员工编号frominserted)End;(2) 当考勤表添加一条记录,考勤表中的出勤天数自动添加Createtriggerinsert_考勤2On考勤ForinsertAsbeginfromupdate考勤set出勤天数=20-休假-请假where员工编号in(select员工编号inserted)end;(3) 当工资表中添加一条新的记录,“应发工资”和“实发工资”自动填充createtriggerinsert_1on工资forinsert,updateasb

25、eginupdate工资set应发工资=基本工资+岗位工资+工龄工资+加班工资+其他应增款-缺勤扣款-其他应减款,实发工资=基本工资+岗位工资+工龄工资+加班工资+其他应增款-缺勤扣款-其他应减款-个人所得税where员工编号in(select员工编号frominserted)End;(4) 当工资表中添加一条新的记录,表“工资历史”的容自动填充createtriggerinsert_2on工资afterinsertasbegindeclarebbvarchar(10)declareccdecimal(12,4)declareddvarchar(15)selectbb=员工编号frominse

26、rtedselectcc=实发工资from工资selectdd=工资年月frominsertedInsertinto工资历史values(bb,cc,dd)End;(5) 当考勤表的触发器触发工资表进行update时,工资表中的实发工资改变,使“工资历史”表的发放金额自动改变createtriggerinsert_3on工资afterupdateasbegindeclarenew_aadecimaldeclaredatevarchar(15)setnew_aa=(select实发工资frominserted)setdate=(select工资年月frominserted)update工资历史s

27、et发放金额=new_aawhere员工编号in(select员工编号frominserted)end;(6) 当员工表删除或增加一个员工时,对应的部门人数相应变化Createtriggerdelete_员工on员工afterdeleteasbeginupdate部门set部门人数=部门人数-1where部门名称in(select部门名称fromdeleted)end;createtriggerinsert_员工on员工afterinsertasbeginupdate部门set部门人数=部门人数+1where部门名称in(select部门名称frominserted)end;6.5建立索引为提

28、高检索性能,为表创建符合索引,其索引项为员工编号、姓名。Createindex员工编号_姓名_indOn员工(员工编号,姓名);(7) 运行和维护(8) 1简单查询(1)员工基本信息情况,代码如下:<1品工编号姓名件利年龄学历部门名称毕W院校政治面貌所学春伸出半日期退休信息1001张三男23本科财务洌经贾党员电子19卯年8月否2002张三男23本科财务的娃置党员电子1.9骊年8月否20D3张三里23本科西好的经要党同晅子iggn年g月否4004张三男23本科财务槃经贸党员电子199(1年8月否5OOE张三男23本科财务备经贸党员电子隼8月否(2)员工考勤情况,代码如下小t考勤.员工编号.

29、员工一姓名二员工.部门名称.加班,.请假,休假.出勤天数也口电考勤.员工where员工.员工编号考勤.员工牖号1员工骗号姓名部门名称加班请假休假出勤天数005张三财务部210ig一2004张三财务部21019(3)员工的基本工资设定,代码如下elect基本丁萱,工龄工资.卤位工贸力皿工1<基本工贫工龄工资岗位工谀1100010020021000100200310001002Q0410001002005100D100200(4)按照基本工资和考勤,产生的工资,代码如下select*from工资;IelectKiWfiMlfl*i工宽R员二摭号基本工资一、LF斤行泥铤勤用效加班工登工缸资其他

30、直底款F佗应惜氯中龙二流应汇工法力发工货Jn蜘5】期2V0而2QL1001Q切酬N102780M1M02口口LOD2DC3D0102Q2C01.41口3210-370003JDCD20000100102口200口1110I80U021JUU200001001020200L3JD1111J53100!3M0200D010010202E01310HW7.2复杂查询(i)企业部财务部的工资查询,代码如下:select员工.员工编号,员工.姓名,实发工资from员工,工资where员工.员工编号=工资.员工编号and部门名称=财务部'员工-员工遍号,员工.妹名,实察工薪_from员工,工摘wh

31、ere员工员E编号二工赞.员工编号|and部门名称-财务部、£员工编号姓名|实发工赞三三三三三长长长长长7 口 弓 W E?o _u o o O1 1 1 1 12- 2 1- 1- 1-1砺20043_003I-0025001(2)企业工资报表,能查询单个员工的工资select员工.员工编号姓名,工资年月,基本工资,岗位工资,工龄工资,加班工资,缺勤扣款,其他应减款,其他应增款,应发工资,实发工资from工资,员工where员工.员工编号=工资.员工编号and姓名like'%'U熠谭工R二编号.晤”黄”月.甚*二簧7即烫,吞定工资.特勒相款.其也应减款其祕增款应发率

32、Tar口勤f诵.民工uhetr自员工员工刷号-工务员工纲号<ri'l姓患口L“靴4:R工境号也落工瓷年月基本二笠精伫工再H酹工苴加冏二箔使勤F衰耳他宓相款耳-也应启书底食工帙品.发工费Lnrq米三如r年6月iodoson100*皿IDO10201410L21D2004柒三21.】年EU1001aooD02001D01U20U10I1210003米三2仇1早6月10002D0.DO00102013L0>M104DC2韭三割LIMHIODO2001D0nd1。/000L”。5on带三2QI1年白月1000POU划00in?n1310itn(3)每个部门的工资情况,按月统计select部门名称,avg(实

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论