数据库SQLserver工资管理系统或人力资源管理系统.docx

上传人:b****7 文档编号:10732064 上传时间:2023-02-22 格式:DOCX 页数:17 大小:140.89KB
下载 相关 举报
数据库SQLserver工资管理系统或人力资源管理系统.docx_第1页
第1页 / 共17页
数据库SQLserver工资管理系统或人力资源管理系统.docx_第2页
第2页 / 共17页
数据库SQLserver工资管理系统或人力资源管理系统.docx_第3页
第3页 / 共17页
数据库SQLserver工资管理系统或人力资源管理系统.docx_第4页
第4页 / 共17页
数据库SQLserver工资管理系统或人力资源管理系统.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

数据库SQLserver工资管理系统或人力资源管理系统.docx

《数据库SQLserver工资管理系统或人力资源管理系统.docx》由会员分享,可在线阅读,更多相关《数据库SQLserver工资管理系统或人力资源管理系统.docx(17页珍藏版)》请在冰豆网上搜索。

数据库SQLserver工资管理系统或人力资源管理系统.docx

数据库SQLserver工资管理系统或人力资源管理系统

课程设计报告

 

课程设计题目:

工资管理系统

 

专业:

软件工程

班级:

1121803

姓名:

张传伟

学号:

2

指导教师:

周华清

2012年12月5日

一、实验目的:

1.通过本次课程设计让学生能够综合运用所学的关系数据库原理知识解决并能设计一个实际问题,进一步掌握数据库原理的相关理论和数据库的设计实现过程,进一步提高学生的分析问题和解决问题的能力以及学生的动手能力。

2.掌握各种算法语言和各种应用,对SQL的功能数据定义,数据查询,数据操纵,数据控制进行全方面的了解。

3掌握数据库设计的任务,内容,特点,和方法步骤。

对SQLServer2000的高级应用进行系统的了解,学习Transact-SQL程序设计对存储结构,和触发器进行学习应用。

二、课程设计要求:

1.对各个系统进行系统功能需求分析

2.数据库设计分析阶段,进行详细的数据库需求分析,进行概念数据库的设计,画出数据库的E-R图

3.设计出详细的逻辑数据库结构,将各个实体和联系转化为相应的二维表即关系模式,指定各个关系的主关键字和外部关键字,并对各个关系的约束加以限定

4.通过企业管理器或是查询分析器实现各个二维关系。

5.根据系统功能需求设计相应的查询视图

6.要求根据系统功能需求建立存储过程

7.根据功能需求建立相应的触发器以保证数据的一致性

8.通过建立用户和权限分配实现数据库一定的安全性。

三.实验题目

工资管理系统数据库的设计与实现

描述:

设计一个工资管理系统,实现下列功能:

1.工资信息的维护(包括录入,修改和删除);

2。

工资信息的核算和统计;

3.工资信息的报表输出;

四.试验时间地点

星期

节次

1—2

软-301/303/305

软-301/303/305

3—4

软-301/303/305

软-301/303/305

5—6

软-301/303/305

软-301/303/305

软-301/303/305

7—8

软-301/303/305

9-10

11-12

五.实验思路

首先了解该实验的具体要求,进行系统需求分析收集数据库的信息和处理要求并加以规格化和分析;而后进行概念结构设计阶段,设计ER图统筹各种关系表达用户的要求;随后进行逻辑结构设计,将概念模型转化为某个DBMS所支持的数据模型,并加以优化;然后便是进行物理结构设计并且进行数据库的实施,编写代码,调试应用程序;最后进行数据库的运行与维护,对数据库进行性能测试转储恢复维护,并且整理文档,进行数据备份。

六.需求分析:

首先我国目前运用计算机管理工资系统虽然已经有了很大的发展,但还不成熟,还没有普及到各行各业,仍有上升发展的空间。

其次,运用数据库进行工资人员管理比成为以后发展的趋势,所以通过数据库进行有效的管理势在必行

七.ER图与关系模式

局部ER图:

全局ER图:

关系模式:

员工信息(员工号,姓名,性别,年龄)

部门信息(员工号,部门,职位)

工资信息(员工号,基本工资,奖金,罚金,最终工资)

八.表的信息

G表:

 

A表:

 

S表:

九.主要代码实现

createdatabasejob--创建数据库job

on

(name=job_data,

'D:

\jobdata.mdf',

size=20,

maxsize=50,

logon

(name=job_log,

'D:

\jobdata.ldf',

size=10,

maxsize=25,

usejob

createtableS--创建表S

(snochar(6),--员工编号

snchar(8),--员工姓名

sexchar

(2),--性别

ageint)--年龄

createtableA--创建表A

(snochar(6),

zwchar(16),--职务

deptchar(10))--所在部门

createtableG--创建表G

(snochar(6),

jbenint,--基本工资

jiangint,--奖金

faint,--罚金

gendint)--最终工资

 

createtriggerde_s--创建触发器de_s

onS

fordelete

as

declare@snochar(20)

declare@snchar(20)

declare@sexchar(20)

declare@ageint

select@sno=snofromdeleted

select@sn=snfromdeleted

select@sex=sexfromdeleted

select@age=agefromdeleted

deletefromSwheresno=@snoandsn=@snandsex=@sexandage=@age

execsp_helpde_s--执行查看触发器de_s

createtriggerde_a--创建触发器de_a

onA

fordelete

as

declare@snochar(20)

declare@zwchar(20)

declare@deptchar(20)

select@sno=snofromdeleted

select@zw=zwfromdeleted

select@dept=deptfromdeleted

deletefromAwheresno=@snoandzw=@zwanddept=@dept

execsp_helpde_a--查看触发器de_a

createtriggerin_s--创建触发器in_s

onS

forinsert

as

declare@snochar(20)

declare@snchar(20)

declare@sexchar(20)

declare@ageint

select@sno=snofromdeleted

select@sn=snfromdeleted

select@sex=sexfromdeleted

select@age=agefromdeleted

insertintoS(sno,sn,sex,age)

values(@sno,@sn,@sex,@age)

execsp_helpin_a--执行触发器in_s

createtriggerin_a--创建触发器in_a

onA

forinsert

as

declare@snochar(20)

declare@zwchar(20)

declare@deptchar(20)

select@sno=snofromdeleted

select@zw=zwfromdeleted

select@dept=deptfromdeleted

insertintoA(sno,zw,dept)

values(@sno,@zw,@dept)

execsp_helpin_a--执行触发器in_a

createtriggerin_g--创建触发器in_g

onG

forinsert

as

declare@snochar(20)

declare@jbenint

declare@jiangint

declare@faint

declare@gendint

select@sno=snofromdeleted

select@jben=jbenfromdeleted

select@jiang=jiangfromdeleted

select@fa=fafromdeleted

select@gend=gendfromdeleted

insertintoG(sno,jben,jiang,fa,gend)

values(@sno,@jben,@jiang,@fa,@gend)

execsp_helpin_g--查看触发器in_g

createtriggerup_s--创建触发器up_s

onS

forupdate

as

declare@sno1char(20)

declare@sn1char(20)

declare@sex1char(20)

declare@age1int

declare@sno2char(20)

declare@sn2char(20)

declare@sex2char(20)

declare@age2int

updateSsetsno=@sno1wheresno=@sno2

updateSsetsn=@sn1wheresn=@sn2

updateSsetsex=@sex1wheresex=@sex2

updateSsetage=@age1whereage=@age2

execsp_helpup_s--查看触发器up_s

createtriggerup_g--创建触发器up_g

onG

forupdate

as

declare@sno1char(20)

declare@jben1int

declare@jiang1int

declare@fa1int

declare@gend1int

declare@sno2char(20)

declare@jben2int

declare@jiang2int

declare@fa2int

declare@gend2int

updateGsetsno=@sno1wheresno=@sno2

updateGsetjben=@jben1wherejben=@jben2

updateGsetjiang=@jiang1wherejiang=@jiang2

updateGsetfa=@fa1wherefa=@fa2

updateGsetgend=@gend1wheregend=@gend2

execsp_helpup_g--查看触发器up_g

droptriggerde_s--删除触发器de_s

droptriggerde_a--删除触发器de_a

droptriggerin_s--删除触发器in_s

droptriggerin_a--删除触发器in_a

droptriggerin_g--删除触发器in_g

droptriggerup_s--删除触发器up_s

droptriggerup_g--删除触发器up_s

createprocedureinserts--创建存储过程inserts插入S表相关信息

@snochar(20),

@snchar(20),

@sexchar(20),

@ageint)

As

insertintoSvalues(@sno,@sn,@sex,@age)

execinserts@sno='0011',@sn='孙俪',@sex='女',@age='26'

createprocedureinserta--创建存储过程inserta插入A表相关信息

@snochar(20),

@zwchar(20),

@deptchar(20))

as

insertintoAvalues(@sno,@zw,@dept)

execinserta@sno='0011',@zw='人事经理',@dept='人事部'

createprocedureinsertg--创建存储过程insertg插入G表相关信息

@snochar(6),

@jbenint,

@jiangint,

@faint,

@gendint)

as

insertintoGvalues(@sno,@jben,@jiang,@fa,@gend)

execinsertg@sno='0011',@jben=5300,@jiang=2600,@fa=1300,@gend=6600

createprocedureupdates--创建存储过程updates修改S表相关信息

@snchar(20),

@ageint)

as

updateSsetage=@agewheresn=@sn

execupdates@age='34',@sn='周杰伦'

createprocedureupdateg--创建存储过程updateg修改G表相关信息

@snochar(20),

@jbenint,

@jiangint,

@faint,

@gendint)

as

updateGsetjben=@jben,jiang=@jiang,fa=@fa,gend=@gendwheresno=@sno

execupdateg@jben='3400',@jiang='2300',@fa='250',@gend='6450',@sno='0010'

createproceduredeletea--创建存储过程deletea删除A表相关信息

@snochar(20))

as

deletefromAwheresno=@sno

execdeletea@sno='0011'

createproceduredeletes--创建存储过程deletes删除S表相关信息

@snochar(20))

as

deletefromSwheresno=@sno

execdeletes@sno='0011'

dropprocedureinserts--删除存储过程inserts

dropprocedureinserta

dropprocedureinsertg

dropprocedureupdates

dropproceduredeletea

dropproceduredeletes

dropprocedureupdateg

--查看公司内工资超过5000的员工信息

selectS.sno,sn,dept,zw,gend

fromS,A,G

where(S.sno=A.snoandA.sno=G.sno)and(gend>=5000)

--查看公司人数

selectcount(*)

fromS

--创建视图显示

createviewsub_S--创建视图sub_s

as

selectsno,sn,sex,age

fromS

select*fromsub_S

createviewsub_A--创建视图sub_a

as

selectsno,zw,dept

fromA

select*fromsub_A

createviewsub_G--创建视图sub_g

as

selectsno,jben,jiang,fa,gend

fromG

select*fromsub_G

createviewincome

as

selectS.sno,sn,dept,zw,gend

fromS,A,G

where(S.sno=A.snoandA.sno=G.sno)and(gend>=5000)

select*frombigincome

createviewincome

as

selectS.sno,sn,sex,age,dept,zw,jben,jiang,fa,gend

fromS,A,G

where(S.sno=A.snoandA.sno=G.sno)

select*fromincome

dropviewsub_S--删除视图sub_s

dropviewsub_A

dropviewsub_G

dropviewbigincome

dropviewincome

十.实验总结

此系统要求的基本功能已实现,在功能的实现上本系统可能还存在很多欠缺的地方,序代码较为繁琐也是本程序有所欠缺的地方,如果能再完善一下的话,程序的一些功能可能很容易就能实现。

工资管理系统是一个非常典型的数据库管理系统,它主要进行工资管理及一些基本的数据管理.本系统包括:

工资管理、人员信息的更新、工资的删除、工资的修改。

工资管理系统是数据库应用的一个典型实例。

课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对我们的实际工作能力的具体训练和考察过程.

在这次的试验设计让我明白了许多原先不明买的地方,受益匪浅。

十一.试验心得

回顾起此次课程设计,至今我们仍感慨颇多,我做的是工资管理系统,从理论到实践,在三天的的日子里可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,才能提高自己的实际动手能力和独立思考的能力。

在设计的过程中难免会遇到过各种各样的问题,然而在遇到问题时通过自己的努力探索不仅学会了知识而且自己的水平也得到了提高。

在看了很多参考书之后,才发现,我们学的只是冰山一角,要想学好,还差得很远,通过这次课程设计懂得了,必须静心去学习去钻研。

在接下来的日子里我会努力学习专业知识,努力的去实现自己的目标做一名软件工程师!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1