人事管理系统数据库课程设计报告.docx

上传人:b****3 文档编号:4983203 上传时间:2022-12-12 格式:DOCX 页数:25 大小:599.03KB
下载 相关 举报
人事管理系统数据库课程设计报告.docx_第1页
第1页 / 共25页
人事管理系统数据库课程设计报告.docx_第2页
第2页 / 共25页
人事管理系统数据库课程设计报告.docx_第3页
第3页 / 共25页
人事管理系统数据库课程设计报告.docx_第4页
第4页 / 共25页
人事管理系统数据库课程设计报告.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

人事管理系统数据库课程设计报告.docx

《人事管理系统数据库课程设计报告.docx》由会员分享,可在线阅读,更多相关《人事管理系统数据库课程设计报告.docx(25页珍藏版)》请在冰豆网上搜索。

人事管理系统数据库课程设计报告.docx

人事管理系统数据库课程设计报告

 

数据库课程设计报告

题目:

人事管理系统

学生姓名:

吴深深

学号:

2

班级:

1421801Z

指导老师:

李荣

关系数据库原理课程设计报告

人事管理系统

一、需求分析

1.1系统概述

1.1.1研究背景

人事管理系统是企业管理系统中必不可少的重要组成部分,它的内容对企业的决策者和管理者来说都是至关重要的,所以人事管理系统应该为用户提供充足的信息和快捷的查询手段。

但一直以来人们使用传统手工的方式管理文件档案,这种管理管理方式存在着很多缺点,如:

效率低,保密性差,时间一长将堆积大量的文件,这个查找、更新、维护带来了不少的困难。

随着科学技术的不断提升,计算机科学日渐成熟,其功能已经为人们深刻认识,它已经进入人类的各个领域并且发挥着越来越重要的作用。

1.1.2意义及开发目的

座位计算机应用的一部分,使用计算机对人事档案信息进行管理,具有着手工管理无法所无法比拟的优点。

例如:

检索迅速、查询方便、可靠性高、储存量大、保密性好、寿命长、成本低等。

这些优点能够极大的提高人事档案的管理效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。

从微观上讲,建立一套人事管理信息系统能够加快人事工作的速度,提高工作效率,从而加强了管理的信息化手段,提高了本单位的经济效益。

从宏观上讲,顺应了社会的信息化、社会化潮流,缩短了整个社会化大生产的周期。

因此,开发这样一套管理信息系统软件成为很有必要的事情。

1.2具体分析

1.2.1功能需求分析

系统功能的基本要求:

Ø员工各种信息的输入,包括员工的基本信息、学历信息、婚姻状况信息、职称等。

Ø员工各种信息的修改;

Ø对于转出、辞职、辞退、退休员工信息从员工表中删除,信息转入离职员工表;

Ø按照一定的条件,查询、统计符合条件的员工信息:

至少应该包括按学历、婚姻状况、岗位、参加工作时间等关键字查询各自的员工信息;

Ø对查询、统计的结果打印输出。

1.2.2数据需求分析

1. 员工基本情况。

包括的数据项有员工号、员工姓名、性别、身份证号、政治面貌、联系电话、部门、岗位、婚姻状态、工作时间、学历信息。

 

2. 工作部门信息。

包括的数据项有部门号、部门名称。

 

3. 员工职称信息。

包括的数据项有职称号、职称名称。

 

4. 员工婚姻状况。

包括的数据项有员工号、爱人代号、爱人姓名、工作单位、政治面貌、工作职称。

 

5. 员工学历信息。

包括的数据项有员工号、学位证书编号、学历、专业、毕业时间、毕业

1.2.3运行环境

本系统是在windows10系统下,用SQLServer2014开发设计完成,可以供VS,VB6.0,Eclipse等集成开发工具开发软件时连接数据库使用。

1.3用户需求

1.3.1调查用户需求 

企业部门需求 

员工基本信息处理:

 员工基本信息的录入 

员工基本信息的处理包括插入,删除以及修改 员工基本信息的查询 

统计功能:

 

按学历、婚姻状况、岗位、参加工作时间等统计各自的员工信息  

1.3.2分析用户需求 

在调查完了用户需求之后,就要开始分析用户需求。

在此,我们采用自顶向 下的结构化分析方法(SA 方法)。

首先,定义全局概念结构的框架。

 

经分析之后,本系统要用到七个基本表:

员工表、职称信息表、学历信息表、支撑岗位对应表、员工部门对应表、婚姻信息表、部门信息表。

1局部E-R图

2全局E-R图

三、逻辑结构设计

3.1关系模式转换

将E-R图转换为关系模式如下:

员工(工号,姓名,姓名,性别,身份证号,政治面貌联系电话)

部门(部门号,部门名称)

职称(职称号,职称名)

员工部门(员工号,部门号,工作时间)

职称岗位(工号,职称号,岗位)

婚姻(工号,婚姻状态,爱人姓名,爱人工作单位,爱人政治面貌,爱人工作职称)

学历(学位证编号,工号,最高学历,毕业时间,专业,毕业院校)

3.2表格数据结构

表1:

员工基本信息表empoyee

Char(8)

主键、非空

工号

Char(20)

非空

姓名

Char

(2)

可空

性别

Char(18)

可空

身份证号

int

非空

年龄

Char(11)

可空

手机

Char(10)

可空

政治面貌

表2:

部门表department

Char(6)

主键、非空

部门号

Char(10)

非空

部门名称

表3:

职称表professional

Char(8)

主键、非空

职称号

Char(20)

非空

职称名

表四:

职称岗位对应表e_p

Char(8)

主键、外键、非空

工号

Char(8)

主键、外键、非空

职称号

Char(20)

可空

岗位

表五:

员工部门对应表e_d

Char(8)

主键、外键、非空

工号

Char(6)

主键、非空

部门号

Datatime

可空

工作时间

表六:

婚姻表marriage

Char(8)

主键、外键、非空

工号

Char

(2)

非空、(是,否)

是否结婚

Char(20)

可空

爱人名字

Char(20)

可空

爱人工作单位

Char(10)

可空

爱人政治面貌

Char(20)

可空

爱人工作职称

表七:

学历信息表school

Char(8)

主键、非空

学位证编号

Char(8)

外键、非空

工号

Char(6)

Check()

最高学位

datetime

可空

毕业时间

Char(20)

可空

主修专业

Char(20)

可空

毕业院校

各个表格的关系图

create table employee--员工基本信息表

e_no char(8) not null primary key,--员工号 

e_name char(20),--员工姓名

e_sex char

(2)check(e_sexin('男','女')),--性别

e_id char(18),--身份证号

e_ageintcheck(e_age>=18ande_age<=65),--员工年龄

e_phone char(11),--联系电话 

e_zzmm char(10)--政治面貌 

此表格的部分数据如下:

 

create table 离职员工表--员工基本信息表

e_no char(8) not null primary key,--员工号 

e_name char(20),--员工姓名

e_sex char

(2)check(e_sexin('男','女')),--性别

e_id char(18),--身份证号

e_ageintcheck(e_age>=18ande_age<=65),--员工年龄

e_phone char(11),--联系电话 

e_zzmm char(10)--政治面貌 

createtabledepartment--部门表

d_no char(6) not null primary key,--部门号

d_name char(10)--部门名称

部门表格及其数据:

createtablee_d--员工部门对应表

e_no char(8)notnullforeignkeyreferencesemployee(e_no),--工号

d_nochar(6)notnullforeignkeyreferencesdepartment(d_no),--部门编号

jobtimeint--工作年长

primarykey(e_no,d_no)

此表的表格数据及其部分数据:

 

createtableprofessional--职称表

p_nochar(8)notnullprimarykey,--职称号

p_namechar(20)--职称名

表格部分数据如下:

 

createtablee_p--职称岗位对应表

e_nochar(8)notnullforeignkeyreferencesemployee(e_no),--工号

p_nochar(8)notnullforeignkeyreferencesprofessional(p_no),--职称号

jobchar(20)--岗位

primarykey(e_no,p_no)

 

表格的部分数据如下:

 

create table marriage --员工婚姻对应表

e_no char(8) not nullforeignkeyreferencesemployee(e_no)primarykey,--员工号 

is_machar

(2)notnull,--是否已婚

l_name char(20),--爱人姓名 

l_company char(20),--工作单位 

l_zzmm char(10),--政治面貌 

l_p char(20),--工作职称 

) 

此表格的部分数据如下;

create table school --员工学历信息表

e_no char(8),--员工号

hest_degreechar(6)check(hest_degreein('本科','研究生','博士')),--最高学历

degree_no char(10) primary key,--最高学位证书编号 

majob char(20),--专业 

bydate datetime,--毕业时间 

byschool char(20),--毕业院校 

foreign key(e_no) references employee(e_no)

此表格的部分数据如下:

视图总纲如下:

go

createviewcomm_zzmm(e_name,e_no,e_zzmm,l_zzmm)--创建视图,查看员工及其爱人政治面貌

asselecte_name,employee.e_no,e_zzmm,l_zzmmfromemployee,marriage

whereemployee.e_no=marriage.e_noandmarriage.is_ma='是'

go

视图部分数据

go

createviewcomm_P_name(e_name,p_no,L_no)--创建视图,查看员工及其爱人的职称

asselecte_name,p_name,l_pfromemployee,professional,marriage,e_p

whereemployee.e_no=e_p.e_noande_p.p_no=professional.p_noandemployee.e_no=marriage.e_no

go

此视图相关数据:

go

createview工作信息--创建视图,查看在职员工的工作信息

asselecte_name,d_name,p_name,job,jobtimefromemployee,department,professional,e_p,e_d

whereemployee.e_no=e_p.e_noandemployee.e_no=e_d.e_noandprofessional.p_no=e_p.p_no

anddepartment.d_no=e_d.d_no

go

此视图相关信息:

go

createview学历--创建视图,查询学历相关信息

as

selecte_nameas姓名,hest_degreeas最高学历,majobas主修,byschoolas毕业院校fromschool,employee

whereemployee.e_no=school.e_no

go

go

createviewT_E_Department--创建视图,查看员工对应部门

asselecte_name,employee.e_no,d_namefromemployee,department,e_d

whereemployee.e_no=e_d.e_noande_d.d_no=department.d_no

go

go

createprocedureCount_D_sum(@d_namechar(10))--储存过程,录入部门名称,求人数

as

selectcount(*)as部门总人数frome_d

where(selectd_nofromdepartmentwhere@d_name=d_name)=e_d.d_no

go

execCount_D_sum'财务部'

go

createprocedureSeach_Higher_Age(@e_ageint)--储存过程,查询比录入数据大的年领

as

selecte_name,e_age,e_nofromemployee

wheree_age>=@e_age

orderbye_agedesc

go

execSeach_Higher_Age30

go

createproceduredelete_all(@e_nochar(8))--储存过程,帮助有多外键数据删除所有工号相关

as

deletefrome_pwheree_no=@e_no

deletefrommarriagewheree_no=@e_no

deletefromschoolwheree_no=@e_no

deletefrome_dwheree_no=@e_no

deletefromemployeewheree_no=@e_no

go

此储存过程与触发器共同使用方可看出效果,在下面会有举例。

go

createprocedureSeach_Marriage(@is_machar(20))--储存过程,按照婚姻状态查找员工

as

if(@is_ma='是')

begin

selecte_name,l_name,l_companyfromemployee,marriage

whereemployee.e_no=marriage.e_noandis_ma='是'

end

elseif(@is_ma='否')

begin

selecte_namefromemployee,marriage

wheremarriage.e_no=employee.e_noandis_ma='否'

end

else

begin

print'输入参数有误'

end

go

createtriggerInsert_Massageonmarriage--触发器,规范相关信息的输入

afterinsert

as

ifexists(select*frominsertedwheree_noin(selecte_nofromemployee))

print'添加成功!

'

else

begin

print'员工基本信息表中无此员工基本信息,拒绝插入!

'

rollback

end

go

 

以下触发器是对于转出、辞职、辞退、退休员工信息从员工表中删除,信息转入离职员工表并且删除相关表格的相关数据。

go

createtriggerfresh_massageonemployee

afterdelete

as

declare@e_no char(8) ,@e_name char(20),@e_sex char

(2),@e_id char(18),@e_ageint,@e_phone char(11),@e_zzmm char(10)

select@e_no=(selecte_nofromdeleted)

select@e_name=(selecte_namefromdeleted)

select@e_sex=(selecte_sexfromdeleted)

select@e_id=(selecte_idfromdeleted)

select@e_age=(selecte_agefromdeleted)

select@e_phone=(selecte_phonefromdeleted)

select@e_zzmm=(selecte_zzmmfromdeleted)

insertinto离职员工表

values(@e_no,@e_name,@e_sex,@e_id,@e_age,@e_phone ,@e_zzmm )

deletefrommarriagewheree_no=@e_no

deletefromschoolwheree_no=@e_no

deletefrome_pwheree_no=@e_no

deletefrome_dwheree_no=@e_no

go

我们可以看到,从员工表格中删除工号是DCG00004的员工。

此员工被转入离职信息表

五、课程设计心得体会

在此次为期一周的数据库课程设计过程中,感觉整个系统的设计过程就是一个逐步完善的过程,必须要不停地思考不停地探索。

刚开始的两天其实基本上毫无头绪,去图书馆去网上都查了资料,在脑海中先形成大致模块和思路,建立数据库的过程看似简单,实则不然。

要考虑到实体间的逻辑关系和数据关系模式的完整性问题,努力使之达到第三范式。

在对数据源的select,update,delect,查询属性进行配置的过程中,反反复复,不能确定,最后,只得静下心来,一步一步一点一点的配置,修改,最后终于全部成功,在这个反复的过程当中已将这些今本知识印于脑海之中,巩固了平时所学,顿时觉得有了成就感,也感受到了数据库知识的强大功能和作用。

想尽快学习到更多的数据库设计方面的知识,设计出更加完善实用性更强的系统。

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

当前位置:首页 > 自然科学 > 生物学

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

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