当前位置:文档之家› 人事管理系统

人事管理系统

人事管理系统1.简要的系统需求分析人事管理系统是非常通用的管理信息系统,是企事业单位实现办公自动化的前提和基础。

一个公司要正常运作必定有一个健全的人事管理系统,来管理员工的信息,包括员工编号、姓名、性别、民族工资及奖惩考勤情况。

除此之外,系统还供员工查询个人和公共信息,管理员对员工信息进行更改或删除,管理公司的人事变更和管理,大大提高公司内部员工管理的工作效率。

1.1业务分析(1)部门管理:对公司的部门进行编号,将每一个部门的部门号、部门名称、部门描述和部门负责人信息统一保存在部门信息档案中。

当新增或去除某个部门时,将其信息添加到部门信息档案或或从中删除。

当部门信息发生变化时,修改对应和相关的属性值。

(2)员工信息管理:对公司里的所有员工进行统一编号;将每一位员工的信息录入到员工信息档案中。

对新聘用的员工,将其信息加入到员工信息档案中;对于解雇的员工,将其信息从信息档案中删除。

当员工的信息发生变动时,修改员工信息档案中相应的属性。

同时供员工自己查询使用。

其下还包含有个人家庭关系和个人呢工作学习的经历,各放在一张表格中。

(3)员工职务调动管理:同样对公司员工的职务进行统一编号;登记员工调动前后的具体职务,以及调动时间。

(4)奖惩管理:根据每个员工的编号登记奖惩原因和奖惩金额及奖惩月份。

(5)考勤管理:根据员工编号,登记员工每个月的全勤,出差,请假时日和加班迟到早退信息。

(6)工资管理:对所有员工的每笔工资进行编号,记录工资记录表。

1.2功能需求分析(1)一般用户可以查询个人信息和修改自己的登录密码;(2)管理员可以查询所有员工的信息并可以做添加、修改、删除的操作。

2.概念设计ER模型设计3.逻辑结构设计将ER模型转化为关系模型(1)部门(部门编号+部门名称+部门简介+部门负责人);PS:部门编号为主码(2)员工信息(员工编号+姓名+性别+民族+生日+政治面貌+文化程度+婚姻状况+籍贯+身份证号+工作证号+办公电话+手机号码+部门编号+职务+状态+工资+备注)Ps:员工编号为主码,部门编号为外码(3)职务调动信息(调动编号+员工编号+调动前职务+调动后职务+调动日期+批复部门号)PS:调动编号为主码,员工编号为外码(4)奖惩信息(奖惩编号+员工编号+奖励事由+奖励金额+处罚事由+处罚金额)PS:奖惩编号为主码+员工编号为外码(5)考勤信息(考勤月份+员工编号+全勤天数+出差天数+病假天数+事假天数+旷工天数+迟到时间+早退时间+…)PS:考勤月份为主码,员工编号为外码(6)工资信息(工资编号+员工编号+基本工资+奖励金额+处罚金额+考勤月份)PS:工资编号为主码,员工编号和考勤月份为外码(7)管理员信息(用户名+密码+用户类型)PS:用户名为主码;4.数据库的物理设计(1)具体表的结构设计部门:员工:员工调动:考勤:工资:用户管理:家庭关系:工作经历:5.T-SQL命令方式创建数据库文件、表、索引、联系和主键、外键等约束(1)创建数据库create database HrSysALTER DATABASE HrSySADD FILE(NAME=HrSys_dat2,FILENAME='C:\Program Files\Microsoft SQLServer\MSSQL\Data\HrSys_dat2.ndf'SIZE=5MB,MAXSIZE=100MB,FILEGROWTH=5MB)LOG ON(NAME='HrSys_LOG',FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL\Data\HrSys_log.ldf',SIZE=3,MAXSIZE=20,FILEGROWTH=1)(2)创建表use HrSyscreate table部门(部门编号int primary key,部门名称varchar(40)not null,部门职能描述varchar(400),部门负责人编号char(4)not null,)create table员工(员工编号char(4)primary key,姓名varchar(50)not null,性别char(2),民族varchar(40),生日varchar(20),政治面貌varchar(40),文化程度varchar(40),婚姻状况varchar(20),籍贯varchar(60),身份证号varchar(20),办公电话varchar(30),手机号码varchar(40),部门编号int not null,职务varchar(20),状态tinyint,工资decimal(9,2))create table考勤(考勤编号int primary key,考勤月份datetime not null,员工编号char(4)not null,全勤天数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),)create table员工调动(调动编号char(2)primary key,员工编号char(4)not null,调动前职务varchar(20),调动后职务varchar(20),调动日期char(10),批复部门编号int)create table工资(工资编号char(3)primary key,员工编号char(4)not null,基本工资money,考勤月份datetime not null,奖励金额money,处罚金额money,)alter table工资add总共资as基本工资+奖励金额-处罚金额create table用户管理(用户名varchar(40)PRIMARY KEY,密码varchar(40)NOT NULL,用户类型tinyint NOT NULL)insert into Users values('Admin','8888',1)create table奖惩(奖惩编号char(10)primary key,员工编号char(4)not null,奖励事由varchar(200),奖励金额smallint,处罚事由varchar(200),处罚金额smallint,)reate table家庭关系(家庭编号char(2)primary key,员工编号char(4)not null,姓名varchar(50)not null,性别char(2),年龄tinyint,与本人关系varchar(20),工作单位varchar(40))create table工作经历(编号t inyint primary key,员工编号char(4)not null,开始日期Char(10),终止日期Char(10),学校/单位名称Varchar(50),职务V archar(20))(3)创建索引(4)修改表来创建外键关系和约束6.利用T-SQL命令增加、删除、修改数据(1)向表中增加属性列(2)修改、添加和删除数据例如:更新工资表的结果为7.利用T-SQL命令进行数据的检索和统计(1)投影和选择(2)多表连接选择在技术部或企划部的员工姓名和所在部门名称选择总共资在4000元以上的员工编号,姓名,职务,工资和考勤月份信息选择有信息存在员工表,家庭关系表,工资表的员工的编号、姓名、籍贯、家庭关系、与本人关系、基本工资信息(3)分组统计与HA VING统计每个部门的男女人数select部门编号,性别,count(*)as人数from员工group by部门编号,性别选择基本工资在2500以上的员工SELECT员工编号,avg(基本工资)FROM工资group by员工编号having avg(基本工资)>2500(4)子查询选择没有信息在家庭关系表中的员工信息SELECT*FROM员工WHERE not EXISTS(SELECT*FROM家庭关系WHERE家庭关系.员工编号=员工.员工编号)select员工编号,姓名,生日,籍贯,身份证号,职务,办公电话from员工where EXISTS(SELECT*FROM工作经历WHERE员工.员工编号=工作经历.员工编号)(5)查询结果保存select姓名,职务,办公电话,手机号码,调动前职务into B_INfofrom员工,员工调动where员工.员工编号=员工调动.员工编号select*from B_INfo8.利用SQL命令创建数据库视图(1)基于单表的建立视图员工常用信息CREATE VIEW员工常用信息(员工编号,姓名,职位,办公电话,手机号码,部门编号) ASSELECT员工编号,姓名,职务,办公电话,手机号码,部门编号FROM dbo.员工sp_helptext员工常用信息(2)包含多表连接的建立视图员工考勤信息,员工基本信息和2012年考勤情况CREATE VIEW员工考勤信息(员工姓名,职位,办公电话,旷工天数,事假天数,病假天数) ASSELECT姓名,职务,办公电话,旷工天数,事假天数,病假天数FROM dbo.员工, dbo.考勤WHERE(datename(yy,考勤月份)='2012')sp_helptext员工考勤信息(3)包含统计运算的建立视图view1,查询所有职工的职工号、姓名、部门名和2011年份工资,并按部门名顺序排列;create view view1asselect top 50 员工.员工编号,员工.姓名,部门.部门名称,工资.总工资from员工,部门,工资where year(考勤月份)='2011'order by部门名称sp_helptext view1建立视图view2,查询所有员工的员工编号、姓名和平均工资;create view view2asselect员工.员工编号,员工.姓名,avg(基本工资)as平均工资from员工,工资where员工.员工编号=工资.员工编号GROUP BY员工.员工编号,员工.姓名sp_helptext view2(4)利用SQL对视图进行查询9.对视图进行插入、删除、修改数据操作插入:删除:修改:10.编写一个自定义函数,将一个字符串作为自变量,返回颠倒顺序的字符串(2)带参数的函数,通过员工编号返回员工信息create function员工情况(@个人编号varchar(4)) returns tableasreturn(select姓名,职务,办公电话from员工where员工编号=@个人编号)select*from员工情况('4002')11. 编写利用游标进行数据处理的存储过程。

相关主题