为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 工资管理系统数据库设计报告(数据库课程设计)模板

工资管理系统数据库设计报告(数据库课程设计)模板

2019-01-06 3页 doc 619KB 71阅读

用户头像 个人认证

橙子到此一游

暂无简介

举报
工资管理系统数据库设计报告(数据库课程设计)模板数据库课程设计报告设计题目:工资管理系统学院:数学与计算机学院专业:计算机科学与技术(软件工程)班级:软件12指导老师:李竹林组员:徐振国(02)张奇卫(03)小组成员及分工 组员 分工 编写代码及测试运行 概念设计 物理结构设计 需求分析 需求分析 需求分析 需求分析目录41.引言41.1编写目的41.2项目背景41.3参考资料52.需求分析52.1功能的分析、52.2顶层图52.3数据流程图62.4数据字典分析73.数据库的概念设计84.数据库的逻辑设计95.数据库与数据表的设计——物...
工资管理系统数据库设计报告(数据库课程设计)模板
数据库课程设计设计题目:工资管理系统学院:数学与计算机学院专业:计算机科学与技术(软件工程)班级:软件12指导老师:李竹林组员:徐振国(02)张奇卫(03)小组成员及分工 组员 分工 编写代码及测试运行 概念设计 物理结构设计 需求分析 需求分析 需求分析 需求分析目录41.引言41.1编写目的41.2项目背景41.3参考资料52.需求分析52.1功能的分析、52.2顶层图52.3数据图62.4数据字典分析73.数据库的概念设计84.数据库的逻辑设计95.数据库与数据表的设计——物理结构设计95.1数据库与数据表的设计125.2数据的完整性设计136.数据库操作与实施结果——数据库对象的设计136.1建数据库——工资管理库136.2建表166.3创建视图166.4触发器176.5建立索引187.运行和维护187.1简单查询197.2复杂查询207.3数据库的用户与权限管理227.4数据库的备份227.5数据的导出与导入238总结工资管理系统分析和设计1.引言1.1编写目的随着科学的进步,一些公司不断发展壮大急需一套完整的工资管理系统帮助企业的财务主管部门提高工作效率,实现企业工资管理的系统化、化和自动化。本系统实现对人员信息、薪资福利、员工社保信息的维护和查询,并能迅速准确地完成考勤的分类汇总,生成工资等。能够使单位实现工资管理的自动化,无疑将给企业管理部门带来很大的方便。真正实现企业高效、科学、现代化的员工管理。有利于财务部门对员工工资的管理,减轻人事部们的任务,提高公司效率,节约人力资源从而降低了企业成本。1.2项目背景我们对数据库技术有了初步的了解和具体的应用;因此,做此分析,由各小组成员合作做出一个项目。让我们对学到的知识系统的结合在一起;考察学生学以致用的能力。由此考察学生的动手能力和合作的精神;以打分的形式作为一次考察。1.3参考资料老师发放的软件工程文档模板。网络下载有关的资料说明和一些部门的工资管理系统范例。2.需求分析2.1功能的分析、工资管理系统主要完成的功能有:(1)人员信息管理:企业员工信息(包括员工基本信息、教育经历、个人简历、岗位变更、离职登记、离退休信息等)的维护和查询。(2)考勤管理:管理员工的出勤情况(包括加班、请假、休假等),并提供查询和分类统计功能。(3)薪资福利管理:管理员工的薪资和福利(包括当月工资、个人所得税、发放工资历史、员工奖励、员工惩罚等)。(4)社会保障管理:管理员工的社保信息(包括单位参保信息、养老保险、医疗保险、住房公积金等),生成社会保险台帐。(5)系统管理:包括代码管理、参数设置、权限设置、更改密码等。2.2顶层图SHAPE\*MERGEFORMAT2.3数据流程图2.4数据字典分析数据字典是系统中各类数据描述的集合,是进行详细的数据收集和数数据分析所获得的主要成果。SHAPE\*MERGEFORMAT3.数据库的概念设计分析前面的系统功能要求,需要一个表来存储和管理员工信息,使系统能够接受员工原始的各项数据,以实现数据录入、查询或统计员工信息等功能。员工是本系统的一个实体。为了能实现查询和统计部门内员工情况等功能,必须有一个表来存储和管理所有部门的信息。部门也是一个实体。工资是以员工工作情况来制定的。需要建立一个表来记录各种工资、津贴、扣款的信息。它主要为各种查询和统计功能提供工资数据。工资也是一个实体。考勤管理是为了实现对员工考勤的管理,并实现对员工的进行查询和分类汇总的功能,因此,考勤也是一个实体。奖惩是以员工受到的奖励和惩罚所决定的,需建立一个表来记录各种奖励和惩罚。它主要是为各种查询提供数据。社保信息是为提供基本的查询功能而设定的一个实体,岗位变更是为记录员工在本部门或不同部门的职位变化,并提供查询的功能。员工简历是为了提供员工在过去的情况而设定的一个实体。据此可以绘出工资管理系统数据库的E-R图如下:4.数据库的逻辑设计将数据库的概念模型转变为关系模型:实体转变为关系模式的有:因为部门和员工1:N的关系,且员工和其他的实体也是1:N的关系,所以个关系模式为:部门(部门名称,部门人数,部门负责人)员工(员工编号,姓名,性别,年龄,学历,政治面貌,毕业学校,所学专业,出生日期,部门名称,退休信息,)工资(工资ID,员工编号,基本工资,岗位工资,工龄工资,加班工资,个人所得税,缺勤扣款,其他应扣款,其他应加款,应发工资,实发工资,工资年月)考勤(考勤ID,员工编号,加班,请假,休假,日期,出勤天数)岗位变更(ID,员工编号,初始岗位,现在岗位,变更日期)离职信息(ID,员工编号,离职时间,离职原因,批准人)简历(ID,员工编号,,获奖情况,社会实践)奖惩(奖惩ID,员工编号,奖罚日期,奖罚原因,解除日期)工资历史(ID,员工编号,发放金额,发放日期)社保信息(ID,员工编号,养老保险,医疗保险,住房公积金,参保信息)用户信息(员工编号,密码,权限)带下划线的属性为个关系模式的外码,字体为粗体的属性为各关系模式的主码。5.数据库与数据表的设计——物理结构设计5.1数据库与数据表的设计员工信息数据表的定义 字段 字段名 数据类型 长度 1 姓名 Varchar 8 2 性别 char 2 3 年龄 int 4 员工编号 Varchar 10 5 部门名称 Varchar 15 6 毕业院校 Varchar 30 7 政治面貌 Varchar 8 8 所学专业 Varchar 40 9 学历 Varchar 10 10 出身日期 Varchar 15 11 退休信息 Varchar 30其中“员工编号”是表的主键,唯一标识。“部门名称”是外键。“员工编号”将记录员工的编号,在员工信息表中增加这一列时,虽然增加了数据冗余,但可以再查询每个员工信息是,提高系统的性能。因为员工信息表的记录数相对固定,相比之下,增加这个冗余的列对于整个系统来说是有利的。通过它,系统将引用到工资信息。此表取名为“员工”。岗位变更数据表的定义: 字段 字段名称 数据类型 长度 1 员工编号 varchar 10 3 初始岗位 varchar 20 4 变更日期 varchar 20 5 现在岗位 varchar 20 6 ID int 其中“员工编号”是主键,此表取名为岗位变更。简历表: 字段 字段名称 数据类型 长度 1 员工编号 varchar 10 2 ID int 3 获奖情况 varchar 50 4 社会实践情况 varchar 100此表取名为简历。离职信息: 字段 字段名称 数据类型 长度 1 员工编号 varchar 10 2 ID int 3 离职日期 varchar 20 4 离职原因 varchar 40 5 批准人 varchar 8此表取名为离职信息。奖惩表: 字段名 数据类型 长度 允许空 主键 奖惩ID int Notnull 是 员工编号 varchar 9 Nonull  否 奖惩日期 varchar 15 Null 否 奖惩原因 varchar 15 Null 否 解除日期 varchar 15 Null 否 员工工资基本表 字段名 数据类型 长度 允许空 主键 工资ID Int Notnull 是 员工编号 varchar 9 Notnull 否 基本工资 decimal 5 Notnull 否 个人所得税 decimal 5 Notnull 否 缺勤扣款工资 decimal 5 Null 否 加班工资 decimal 5 null 否 工龄工资 decimal 5 Notnull 否 其他应减款 decimal 5 Notnull 否 其他应增款 decimal 5 Notnull 否 岗位工资 decimal 5 Notnull 否 应发工资 decimal 5 否 实发工资 decimal 5 否 日期 varchar 4 Nonull 否发放工资历史 字段名 数据类型 长度 允许空 主键 ID varchar 9 Null 是 员工编号 varchar 10 Notnull 否 发放金额 decimal 9 Notnull 否 发放日期 varchar 15 Notnull 否考勤表 字段名 数据类型 长度 允许空 主键 日期 varchar 12 notnull 否 员工编号 varchar 25 Notnull 否 加班 decimal 40 Null 否 休假 decimal 40 Null 否 请假 decimal 40 Null 否 出勤天数 int 4 Notnull 否 考勤ID Int Notnull 是社保信息 字段名 数据类型 长度 允许空 主键 ID INT NOTNULL 是 员工编号 varchar 10 Null 否 社保信息 varchar 20 Null 否 参保信息 varchar 20 Null 否 医疗保险 varchar 20 Null 否 住房公积金 varchar 20 Null 否 养老保险 varchar 20 Null 否用户信息表 字段名 数据类型 长度 允许空 主键 员工编号 varchar 10 Notnull 是 密码 Varchar 9 Notnull 否 权限 Int 2 Notnull 否部门 字段名 数据类型 长度 允许空 主键 部门名称 varchar 10 Notnull 是 部门人数 int 9 Notnull 否 部门负责人 varchar 15 Notnull 否5.2数据的完整性设计给每个表实施主键约束。主键约束、非空约束员工:员工编号为主键,所以此项非空部门:部门编号为主键,所以此项非空其余的正如上面的设计实施CHECK约束员工表中建立一个检查约束,即员工性别不是男的就是女的CHECK(性别IN(‘男’,‘女’))考勤表中建立一个对于出勤天数天数的检查约束,即出勤天数在0-20之间CHECK(出勤天数>=0and出勤天数<=20)(3)外键约束FK_员工_部门FOREIGNKEY(部门名称)REFERENCES部门(部门名称)FK_工资_员工FOREIGNKEY(员工编号)REFERENCES员工(员工编号)FK_岗位变更_员工FOREIGNKEY(员工编号)REFERENCES员工(员工编号)FK_简历_员工FOREIGNKEY(员工编号)REFERENCES员工(员工编号)FK_离职_员工FOREIGNKEY(员工编号)REFERENCES员工(员工编号)FK_奖惩_员工FOREIGNKEY(员工编号)REFERENCES员工(员工编号)FK_工资历史_员工FOREIGNKEY(员工编号)REFERENCES员工(员工编号)FK_考勤_员工FOREIGNKEY(员工编号)REFERENCES员工(员工编号)FK_社保_员工FOREIGNKEY(员工编号)REFERENCES员工(员工编号)(4)惟一约束每一个表的主键都需要定义为惟一性:对于工资历史表员工编号也要惟一约束。(5)强制约束对INSERT和UPDATE操作强制约束,表明以后对员工表中的部门名称的添加和更新操作都会检查部门表中是否存在与此相应的内容。6.数据库操作与实施结果——数据库对象的设计6.1建数据库——工资管理库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,FOREIGNKEY(部门名称)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员工(员工编号));Createtable岗位变更(IDintprimarykeyidentity,员工编号varchar(10)notnull,初始岗位varchar(20),变更日期varchar(20),现在岗位varchar(20),FOREIGNKEY(员工编号)REFERENCES员工(员工编号));CREATETABLE工资(工资IDintprimarykeyidentity,员工编号varchar(10)notnull,基本工资decimalnotnull,个人所得税decimalnotnull,缺勤扣款decimal,加班工资decimal,工龄工资decimalnotnull,其他应减款decimal,其他应增款decimal,岗位工资decimalnotnull,应发工资decimal,实发工资decimal,工资年月varchar(15),FOREIGNKEY(员工编号)REFERENCES员工(员工编号));CREATETABLE奖惩(奖惩IDintprimarykeyidentity,员工编号varchar(10)notnull,奖惩日期varchar(15),奖惩原因varchar(15),解除日期varchar(15)FOREIGNKEY(员工编号)REFERENCES员工(员工编号));CREATETABLE工资历史(IDintprimarykeyidentity,员工编号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,员工编号varchar(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员工_工资ASSELECT员工.姓名,工资.*from员工,工资where员工.员工编号=工资.员工编号;6.4触发器(1)当考勤表添加一条记录,工资表中的“加班工资”“考勤扣款”自动更新createtriggerinsert_考勤on考勤afterinsertasbegindeclare@new_numintdeclare@new_num1intdeclare@new_datevarcharselect@new_num=(select加班frominserted)select@new_num1=(select请假frominserted)select@new_date=(select日期frominserted)update工资set加班工资=@new_num*100,缺勤扣款=@new_num1*100where员工编号in(select员工编号frominserted)End;(2)当考勤表添加一条记录,考勤表中的出勤天数自动添加Createtriggerinsert_考勤2On考勤ForinsertAsbeginupdate考勤set出勤天数=20-休假-请假where员工编号in(select员工编号frominserted)end;(3)当工资表中添加一条新的记录,“应发工资”和“实发工资”自动填充createtriggerinsert_1on工资forinsert,updateasbeginupdate工资set应发工资=基本工资+岗位工资+工龄工资+加班工资+其他应增款-缺勤扣款-其他应减款,实发工资=基本工资+岗位工资+工龄工资+加班工资+其他应增款-缺勤扣款-其他应减款-个人所得税where员工编号in(select员工编号frominserted)End;(4)当工资表中添加一条新的记录,表“工资历史”的内容自动填充createtriggerinsert_2on工资afterinsertasbegindeclare@bbvarchar(10)declare@ccdecimal(12,4)declare@ddvarchar(15)select@bb=员工编号frominsertedselect@cc=实发工资from工资select@dd=工资年月frominsertedInsertinto工资历史values(@bb,@cc,@dd)End;(5)当考勤表的触发器触发工资表进行update时,工资表中的实发工资改变,使“工资历史”表的发放金额自动改变createtriggerinsert_3on工资afterupdateasbegindeclare@new_aadecimaldeclare@datevarchar(15)set@new_aa=(select实发工资frominserted)set@date=(select工资年月frominserted)update工资历史set发放金额=@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建立索引为提高检索性能,为表创建符合索引,其索引项为员工编号、姓名。Createindex员工编号_姓名_indOn员工(员工编号,姓名);7.运行和维护7.1简单查询(1)员工基本信息情况,代码如下:(2)员工考勤情况,代码如下(3)员工的基本工资设定,代码如下(4)按照基本工资和考勤,产生的工资,代码如下select*from工资;7.2复杂查询(1)企业内部财务部的工资查询,代码如下:select员工.员工编号,员工.姓名,实发工资from员工,工资where员工.员工编号=工资.员工编号and部门名称='财务部';(2)企业工资报表,能查询单个员工的工资select员工.员工编号,姓名,工资年月,基本工资,岗位工资,工龄工资,加班工资,缺勤扣款,其他应减款,其他应增款,应发工资,实发工资from工资,员工where员工.员工编号=工资.员工编号and姓名like'张%';(3)每个部门的工资情况,按月统计select部门名称,avg(实发工资)from工资,员工where员工.员工编号=工资.员工编号groupby部门名称;7.3数据库的用户与权限管理(1)数据库的用户管理GZGL库的用户dbo用户属性数据库登陆文件夹Sa登陆属性建立新用户:用户名U1,密码1234(登陆名login1)Createloginlogin1withpassword=’1234’;UseGZGL;CreateuserU1forlogin1;(2)用户权限管理系统权限管理对象权限管理,设置权限将员工表的录入、查询授予给U1用户GRANTSELECT,INSERTONTABLE员工TOU1;7.4数据库的备份对GZGL库进行备份单击备份右键进行备份7.5数据的导出与导入1)数据的导出8总结经过这段时间的努力,我们组在老师的帮助下,基本完成本次的课程设计,基本达到了工资管理系统的要求。经过这次数据库课程设计给我们留下了很大的印象,明白了流程是一切的根本,架构是骨骼。实践比一切的空谈和理论更能学到东西。在做这个数据库开始无论遇到什么困难,我们都没有一丝的放弃念头。也体会到,在设计过程中一定要慎重,仔细,来不得半点马虎。需求分析是整个课程设计的中心,考虑全面,分析彻底。才会为后来的设计打下良好的基础。否则,前功尽弃,甚至不能完成任务。做实例过程中要注意一说明书中数据项类型,数据长度等一致,不能像平时在纸上作业。最后,通过这次课程设计让我们学到了很多,强化了动手能力,加强了合作意识,为以后找工作奠定了一定的基础。工资管理系统员工系统管理员工资查询注册登记信息维护打印报表名字:员工基本信息表描述:保存员工的基本信息定义:性别+姓名+年龄+部门+员工编号+毕业院校+所学专业+政治面貌名字:简历表描述:保存员工的求职信息定义:获奖情况+社会实践情况名字:离职退休信息表描述:保存员工的离职相关信息定义:离职原因+离职日期+工龄名字:部门表描述:部门信息定义:部门编号+部门名称+部门人数+部门负责人名字:社保信息描述:保存员工社保信息定义:参保信息+医疗保险+住房公积金+养老保险名字:员工考勤表描述:记录员工的考勤情况定义:包括日期、员工编号、加班、休假、请假名字:岗位变更表描述:保存员工岗位变更的相关信息定义:变更日期+初始岗位+现在岗位名字;员工工资基本表描述:保存员工基本信息定义:包括员工ID,工资发放日期,工资组成的各个方面名字:奖励绩效表描述:存储员工奖励信息定义:包括奖惩时间,奖惩原因,奖惩工资情况名字:员工考勤表描述:记录员工的考勤情况定义:包括日期、员工编号、加班、休假、请假名字:发放工资历史描述:发放工资情况信息定义:包括发放工资历史记录名字:社保信息描述:保存员工社保信息定义:参保信息+医疗保险+住房公积金+养老保险名字:部门表描述:保存部门信息定义:部门编号+部门名称+部门人数+部门负责人8
/
本文档为【工资管理系统数据库设计报告(数据库课程设计)模板】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索