人事管理系统.docx
- 文档编号:9185572
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:44
- 大小:3.69MB
人事管理系统.docx
《人事管理系统.docx》由会员分享,可在线阅读,更多相关《人事管理系统.docx(44页珍藏版)》请在冰豆网上搜索。
人事管理系统
人事管理系统
1.简要的系统需求分析
人事管理系统是非常通用的管理信息系统,是企事业单位实现办公自动化的前提和根底。
一个公司要正常运作必定有一个健全的人事管理系统,来管理员工的信息,包括员工编号、XX、性别、民族工资及奖惩考勤情况。
除此之外,系统还供员工查询个人和公共信息,管理员对员工信息进展更改或删除,管理公司的人事变更和管理,大大提高公司部员工管理的工作效率。
1.1业务分析
〔1〕部门管理:
对公司的部门进展编号,将每一个部门的部门号、部门名称、部门描述和部门负责人信息统一保存在部门信息档案中。
当新增或去除某个部门时,将其信息添加到部门信息档案或或从中删除。
当部门信息发生变化时,修改对应和相关的属性值。
〔2〕员工信息管理:
对公司里的所有员工进展统一编号;将每一位员工的信息录入到员工信息档案中。
对新聘用的员工,将其信息参加到员工信息档案中;对于辞退的员工,将其信息从信息档案中删除。
当员工的信息发生变动时,修改员工信息档案中相应的属性。
同时供员工自己查询使用。
其下还包含有个人家庭关系和个人呢工作学习的经历,各放在一表格中。
〔3〕员工职务调动管理:
同样对公司员工的职务进展统一编号;登记员工调动前后的具体职务,以及调动时间。
〔4〕奖惩管理:
根据每个员工的编号登记奖惩原因和奖惩金额及奖惩月份。
〔5〕考勤管理:
根据员工编号,登记员工每个月的全勤,出差,请假时日和加班迟到早退信息。
〔6〕工资管理:
对所有员工的每笔工资进展编号,记录工资记录表。
1.2功能需求分析
〔1〕一般用户可以查询个人信息和修改自己的登录密码;
〔2〕管理员可以查询所有员工的信息并可以做添加、修改、删除的操作。
2.概念设计
ER模型设计
3.逻辑构造设计
将ER模型转化为关系模型
〔1〕部门〔部门编号+部门名称+部门简介+部门负责人〕;PS:
部门编号为主码
〔2〕员工信息〔员工编号+XX+性别+民族+生日+政治面貌+文化程度+婚姻状况+籍贯+XX号+工作证号+办公+手机+部门编号+职务+状态+工资+备注〕Ps:
员工编号为主码,部门编号为外码
〔3〕职务调动信息〔调动编号+员工编号+调动前职务+调动后职务+调动日期+批复部门号〕PS:
调动编号为主码,员工编号为外码
〔4〕奖惩信息〔奖惩编号+员工编号+奖励事由+奖励金额+处分事由+处分金额〕PS:
奖惩编号为主码+员工编号为外码
〔5〕考勤信息〔考勤月份+员工编号+全勤天数+出差天数+病假天数+事假天数+旷工天数+迟到时间+早退时间+…〕PS:
考勤月份为主码,员工编号为外码
〔6〕工资信息〔工资编号+员工编号+根本工资+奖励金额+处分金额+考勤月份〕PS:
工资编号为主码,员工编号和考勤月份为外码
〔7〕管理员信息〔用户名+密码+用户类型〕PS:
用户名为主码;
4.数据库的物理设计
〔1〕具体表的构造设计
部门:
编号
字段名称
数据构造
约束条件
1
部门编号
int
Notnullprimarykey
2
部门名称
varchar(40)
Notnull
3
部门职能描述
Varchar(400)
null
4
部门负责人编号
Char(3)
Notnull
员工:
编号
字段名称
数据构造
约束条件
1
员工编号
Char(4)
Notnullprimarykey
2
XX
Varchar(50)
Notnull
3
性别
Char
(2)
null
4
民族
varchar(40)
null
5
生日
datetime
null
6
政治面貌
varchar(40)
null
7
文化程度
varchar(40)
null
8
婚姻状况
varchar(20)
null
9
籍贯
varchar(60)
null
10
XX号
varchar(20)
null
11
办公
varchar(30)
null
12
手机
varchar(30)
null
13
部门编号
int
null
14
职务
varchar(20)
null
15
员工状态〔1-在职,2-兼职,3,试用,4-离职,5-退休〕
tinyint
null
员工调动:
编号
字段名称
数据构造
约束条件
1
调动编号
Char
(2)
Notnullprimarykey
2
员工编号
Char(4)
Notnull
3
调动前职务
Varchar(20)
Null
4
调动后职务
Varchar(20)
null
5
调动日期
Datetime
Null
6
批复部门编号
int
Notnull
奖惩:
编号
字段名称
数据构造
约束条件
1
奖惩编号
Char
(2)
Notnullprimarykey
2
员工编号
Char(4)
Notnull
3
奖励事由
Varchar(200)
Null
4
奖励金额
smallint
Null
5
处分事由
Varchar(200)
Null
6
处分金额
smallint
null
考勤:
编号
字段名称
数据构造
约束条件
1
考勤编号
Char(3)
Notnullprimarykey
2
考勤月份
Datetime
Notnull
3
员工编号
int
Notnull
4
全勤天数
Decimal(4,1)
Null
5
出差天数
Decimal(4,1)
Null
6
病假天数
Decimal(4,1)
Null
7
事假天数
Decimal(4,1)
Null
8
旷工天数
Decimal(4,1)
Null
9
法定休假天数
Decimal(4,1)
Null
10
迟到时间〔分〕
Tinyint
Null
11
早退时间(分)
Tinyint
Null
12
一类加班天数〔法定节假日加班〕
Int
Null
13
二类加班天数〔周六或周日加班〕
Int
Null
14
三类加班天数〔日常加班〕
Int
Null
工资:
编号
字段名称
数据构造
约束条件
1
工资编号
Char(3)
Notnullprimarykey
2
员工编号
Char(4)
Notnull
3
根本工资
money
Null
4
考勤月份
Datetime
Notnull
5
奖励金额
money
Null
6
处分金额
money
null
用户管理:
编号
字段名称
数据构造
约束条件
1
用户名
Varchar(40)
Notnullprimarykey
2
密码
Varchar(40)
Notnull
3
用户类型〔1-系统管理员,2-普通用户
tinyint
Notnull
家庭关系:
编号
说明
数据构造
约束条件
1
编号
tinyint
Notnullprimarykey
2
员工编号
int
Notnull
3
XX
Varchar(50)
Null
4
性别
Char
(2)
Null
5
年龄
tinyint
Null
6
与本人关系
Varchar(20)
Null
7
工作单位
Varchar(40)
null
工作经历:
编号
说明
数据构造
约束条件
1
编号
tinyint
Notnullprimarykey
2
员工编号
int
Notnull
3
开场日期
Char(10)
null
4
终止日期
Char(10)
null
5
学校/单位名称
Varchar(50)
null
6
职务
Varchar(20)
null
5.T-SQL命令方式创立数据库文件、表、索引、联系和主键、外键等约束
〔1〕创立数据库
createdatabaseHrSys
ALTERDATABASEHrSyS
ADDFILE
(
NAME=HrSys_dat2,
FILENAME='C:
\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\HrSys_dat2.ndf'
SIZE=5MB,
MAXSIZE=100MB,
FILEGROWTH=5MB
)
LOGON
(
NAME='HrSys_LOG',
FILENAME='C:
\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\HrSys_log.ldf',
SIZE=3,
MAXSIZE=20,
FILEGROWTH=1
)
〔2〕创立表
useHrSys
createtable部门
(
部门编号intprimarykey,
部门名称varchar(40)notnull,
部门职能描述varchar(400),
部门负责人编号char(4)notnull,
)
createtable员工
(
员工编号char(4)primarykey,
XXvarchar(50)notnull,
性别char
(2),
民族varchar(40),
生日varchar(20),
政治面貌varchar(40),
文化程度varchar(40),
婚姻状况varchar(20),
籍贯varchar(60),
XX号varchar(20),
办公varchar(30),
手机varchar(40),
部门编号intnotnull,
职务varchar(20),
状态tinyint,
工资decimal(9,2)
)
createtable考勤
(
考勤编号intprimarykey,
考勤月份datetimenotnull,
员工编号char(4)notnull,
全勤天数Decimal(4,1),
出差天数Decimal(4,1),
病假天数Decimal(4,1),
事假天数Decimal(4,1),
旷工天数Decimal(4,1),
法定休假日Decimal(4,1),
迟到时间Tinyint,
早退时间Tinyint,
法定假日加班Decimal(4,1),
周末加班Decimal(4,1),
日常加班Decimal(4,1),
)
createtable员工调动
(
调动编号char
(2)primarykey,
员工编号char(4)notnull,
调动前职务varchar(20),
调动后职务varchar(20),
调动日期char(10),
批复部门编号int
)
createtable工资
(
工资编号char(3)primarykey,
员工编号char(4)notnull,
根本工资money,
考勤月份datetimenotnull,
奖励金额money,
处分金额money,
)
altertable工资
add总共资as根本工资+奖励金额-处分金额
createtable用户管理
(
用户名varchar(40)PRIMARYKEY,
密码varchar(40)NOTNULL,
用户类型tinyintNOTNULL
)
insertintoUsersvalues('Admin','8888',1)
createtable奖惩
(
奖惩编号char(10)primarykey,
员工编号char(4)notnull,
奖励事由varchar(200),
奖励金额smallint,
处分事由varchar(200),
处分金额smallint,
)
reatetable家庭关系
(
家庭编号char
(2)primarykey,
员工编号char(4)notnull,
XXvarchar(50)notnull,
性别char
(2),
年龄tinyint,
与本人关系varchar(20),
工作单位varchar(40)
)
createtable工作经历
(
编号tinyintprimarykey,
员工编号char(4)notnull,
开场日期Char(10),
终止日期Char(10),
学校/单位名称Varchar(50),
职务Varchar(20)
)
〔3〕创立索引
〔4〕修改表来创立外键关系和约束
6.利用T-SQL命令增加、删除、修改数据
〔1〕向表中增加属性列
〔2〕修改、添加和删除数据
例如:
更新工资表的结果为
7.利用T-SQL命令进展数据的检索和统计
〔1〕投影和选择
〔2〕多表连接
选择在技术部或企划部的员工XX和所在部门名称
选择总共资在4000元以上的员工编号,XX,职务,工资和考勤月份信息
选择有信息存在员工表,家庭关系表,工资表的员工的编号、XX、籍贯、家庭关系、与本人关系、根本工资信息
〔3〕分组统计与HAVING
统计每个部门的男女人数
select部门编号,性别,count(*)as人数from员工
groupby部门编号,性别
选择根本工资在2500以上的员工
SELECT员工编号,avg(根本工资)FROM工资
groupby员工编号
havingavg(根本工资)>2500
〔4〕子查询
选择没有信息在家庭关系表中的员工信息
SELECT*
FROM员工
WHEREnotEXISTS(SELECT*
FROM家庭关系
WHERE家庭关系.员工编号=员工.员工编号)
select员工编号,XX,生日,籍贯,XX号,职务,办公
from员工
whereEXISTS(SELECT*
FROM工作经历
WHERE员工.员工编号=工作经历.员工编号)
〔5〕查询结果保存
selectXX,职务,办公,手机,调动前职务
intoB_INfo
from员工,员工调动
where员工.员工编号=员工调动.员工编号
select*fromB_INfo
8.利用SQL命令创立数据库视图
〔1〕基于单表的
建立视图员工常用信息
CREATEVIEW员工常用信息(员工编号,XX,职位,办公,手机,部门编号)
AS
SELECT员工编号,XX,职务,办公,手机,部门编号
FROMdbo.员工
sp_helptext员工常用信息
〔2〕包含多表连接的
建立视图员工考勤信息,员工根本信息和2021年考勤情况
CREATEVIEW员工考勤信息(员工XX,职位,办公,旷工天数,事假天数,病假天数)
AS
SELECTXX,职务,办公,旷工天数,事假天数,病假天数
FROMdbo.员工,dbo.考勤
WHERE(datename(yy,考勤月份)='2021')
sp_helptext员工考勤信息
〔3〕包含统计运算的
建立视图view1,查询所有职工的职工号、XX、部门名和2021年份工资,并按部门名顺序排列;
createviewview1
as
selecttop50员工.员工编号,员工.XX,部门.部门名称,工资.总工资
from员工,部门,工资
whereyear(考勤月份)='2021'
orderby部门名称
sp_helptextview1
建立视图view2,查询所有员工的员工编号、XX和平均工资;
createviewview2
as
select员工.员工编号,员工.XX,avg(根本工资)as平均工资from员工,工资
where员工.员工编号=工资.员工编号
GROUPBY员工.员工编号,员工.XX
sp_helptextview2
〔4〕利用SQL对视图进展查询
9.对视图进展插入、删除、修改数据操作
插入:
删除:
修改:
10.编写一个自定义函数,将一个字符串作为自变量,返回颠倒顺序的字符串
〔2〕带参数的函数,通过员工编号返回员工信息
createfunction员工情况(个人编号varchar(4))
returnstable
as
return(selectXX,职务,办公
from员工
where员工编号=个人编号)
select*from员工情况('4002')
11.编写利用游标进展数据处理的存储过程。
并在存储过程中应用事务的概念。
自己确定过程的具体要求,然后编写出来。
〔1〕利用游标读取员工表中的每一行数据:
declarecur_员工cursor
globalscrolldynamic
for
select员工编号,XX,职务,文化程度,籍贯,XX号,手机
from员工
opencur_员工
fetchnextfromcur_员工
whilefetch_status=0
begin
fetchnextfromcur_员工
end
〔2〕创立带参数的存储过程,从表员工,家庭关系,工资的连接中返回输入的员工XX的员工编号、XX、籍贯、婚姻状况、根本工资、家人XX、与自己的关系、工作单位信息。
createprocyg_infoXXvarchar(20)as
select员工.员工编号,员工.XX,籍贯,婚姻状况,根本工资,家庭关系.XX,与本人关系,工作单位
from员工innerjoin家庭关系on员工.员工编号=家庭关系.员工编号
join工资on家庭关系.员工编号=工资.员工编号
where员工.XXlikeXX
execyg_info'礼貌'
12.编写一个实现修改表的触发器,实现完整性控制。
(1)更新员工表信息
useHrSys
CREATETRIGGERworkeridON员工
FORUPDATE
AS
IF(update(员工编号))
BEGIN
DECLAREBHOCHAR(4),BHNCHAR(4)
SELECTBHO=员工编号FROMDELETED
SELECTBHN=员工编号FROMINSERTED
UPDATE工资
SET工资.员工编号=BHN
WHERE工资.员工编号=BHO
UPDATE考勤
SET考勤.员工编号=BHN
WHERE考勤.员工编号=BHO
UPDATE奖惩
SET奖惩.员工编号=BHN
WHERE奖惩.员工编号=BHO
UPDATE工作经历
SET工作经历.员工编号=BHN
wHERE工作经历.员工编号=BHO
UPDATE员工调动
SET员工调动.员工编号=BHN
WHERE员工调动.员工编号=BHO
UPDATE家庭关系
set家庭关系.员工编号=BHN
WHERE家庭关系.员工编号=BHO
END
UPDATEdbo.员工
SET员工编号='1012'
WHERE员工编号='1002'
〔2〕删除员工编号
CREATETRIGGERYGDEL
ONdbo.员工
FORDELETE
AS
BEGIN
DECLAREBHCHAR(4)
SELECTBH=员工编号FROMDELETED
IFEXISTS(SELECT*FROM部门WHERE部门负责人编号=BH)
UPDATEdbo.部门
SET部门负责人编号=NULL
WHERE部门负责人编号=BH
End
deletefrom员工
where员工编号='2001'
13.设置效劳器身份验证模式。
用命令创立假设干不同验证模式的登录账户。
〔1〕在控制面板了面创立用户
〔2〕创立Windows身份验证和SQLServer的登录账户
14.将局部登录赋予效劳器角色。
然后撤消。
execsp_addsrvrolemember'四叶草','sysadmin'
execsp_addsrvrolemember'ZY-20210929TQYO\满天星','dbcreator'
execsp_helpsrvrolemember'sysadmin'
execsp_helpsrvrolemember'dbcreator'
撤销效劳器角色成员:
execsp_dropsrvrolemember'四叶草','sysadmin'
execsp_dropsrvrolemember'ZY-20210929TQYO\满天星','dbcreator'
15.将局部登录映射到你的数据库中成为用户。
useHrSys
go
createuser[四叶草]fromlogin[四叶草]
createuser[ZY-20210929TQYO\满天星]fromlogin[ZY-20210929TQYO\满天星]
16.创立自定义角色、架构。
〔1〕创立自定义角色
createrole[role1]
createrole[role2]
createrole[role3]authorization[四叶草]
〔2〕创立自定义架构
createschemasc1
createschemasc2authorization[四叶草]
createschemasc3
//把sc2的所有权转让给ZY-20210929TQYO\满天星,它就可以直接使用sc2下的表
alterauthorization
onschema:
:
sc2
to[ZY-20210929TQYO\满天星]
17.通过角色给用户授权。
useHrSys
GRANTupdateON员工TOrole1
GRANTSELECTON工资TOrole1
EXECsp_addrolemember'role1','四叶草'
用户四叶草获得对员工表的更新和对工资表的查询权限
GRANTupdateON部门TOrole2
GRANTSELECTON考勤TOrole2
EXECsp_addrolemember'role2','ZY-20210929TQYO\满天星'
用户满天星获得对部门表的更新和对考勤表的查询权限,连接数据库效劳器后可以看到HrSys数据库中的部门表和考勤表
execsp_helprolemember'role1'
execsp_helprolemember'role2'
18.直接给用户授权,验证其获得权限前后的操作差异。
例如:
赋予用户user1对部门表插入和对员工表查询的权限,那么在用户user1下可以看到HrSys数据库中的表部门和员工表,可以队员工表进展插入却不可以进展查询;而在员工表上可以查询而不能进展其他操作,授权是局部的权利,被授权者只
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 人事管理系统