资源描述
人力资源管理系统的数据库设计与实现
组成员及所完成的工作:
周宇晴所完成工作:ER图的绘制,数据库的物理设计, 数据库上机实现,数据库中数据的装载
张雨薇所完成工作:ER图的绘制,ER图到关系模式的转换,数据库上机实现,数据库的运行,作业的组织整理上传
刘琴所完成工作:数据库需求分析,ER图的绘制,数据库上机实现 ,数据库中数据的审核
一. 需求分析
人力资源管理系统(Human Resources Management System,HRMS)包括人事日常事务、薪酬、招聘、培训、考核以及人力资源的管理也指组织或社会团体运用系统学理论方法,对企业的人力资源管理方方面面进行分析、规划、实施、调整,提高企业人力资源管理水平,使人力资源更有效的服务于组织或团体目标.
(1)数据检索
a。查询职工基本信息及所属部门:
输入:工号
输出:职工姓名,部门名称,性别,出生年月,籍贯,进入单位时间,身份证号
b.查询职工的调动情况
输入:调动编号
输出:工号,调动日期,调动原因
c.查询职工的考勤信息
输入:考勤编号
输出:日期,出勤情况
d.查询职工工资信息
输入:工资编号
输出:工资发放日期,基本工资,奖金
e。查询培训信息
输入:培训编号
输出:完成情况、工号、培训内容信息
(2)数据插入
调动信息表的插入
(3)数据修改
a.职工部门修改:某职工部门变化时,输入该该职工工号及需修改的属性值,完成对职工部门的修改.
b。职工文化程度的修改:某职工文化程度变化时,输入该职工工号及需修改的属性值,完成对职工文化程度的修改。
(4)数据统计与查询
a.显示职工全部信息及其工资信息。
b。显示职工考勤情况及调动信息.
本数据库只包含了人力资源系统中的一些基本信息.
建立此数据库的主要目的就是为了更好的能对数据库进行操作,包括数据库的建立,设计数据库的概念模型、绘制ER图、ER图转换成关系模式、数据库模式的建立(即为数据库及其基本表的建立)、数据的录入以及完成一些简单的关系运算表达式的表达和相关的Select 查询语句的使用。
c。系统结构简述:
本系统包括五个实体:职工基本信息;考勤信息;所属部门;调动信息;工资信息;
注:各个基本表中关键字已在关系模式中说明
d. 该数据库需要进行如下数据处理:
二.职工
对应
考勤信息
1
n
对应
m
n
所属部门
部门
1
n
领取
1
1
工资xinxixinxui
参加
培训
ER图
调动信息
员工
工号
姓名
性别
出生年月
身份证号
文化程度
进入单位时间
考勤信息
工号
日期
出勤情况
调动信息
调动编号号号
工号
调动日期
调动情况
考勤编号
籍贯
部门
部门编号
部门名称
部门电话
部长
工资
工号
奖金
工资发放日期
基本工资
三.关系模式
系统中的实体有:职工基本信息;考勤信息;所属部门;工资;调动信息
关系模式如下:
职工基本信息(工号,姓名,性别,出生年月,进入单位时间,籍贯,文化程度,身份证号,部门编号)
说明:员工编号格式为[0-9] [0-9] [0—9] [0—9] [0—9] [0-9] [0-9] [0—9] [0-9] [0—9] ,性别的取值为:男或女
调动信息(调动编号,工号,调动日期,调动情况)
部门 (部门编号,部门名称,部门电话,部长)
考勤信息(考勤编号,日期,工号,出勤情况)
说明:考勤编号格式为[0—9] [0—9] [0—9] [0-9] [0—9] [0-9] [0—9] [0—9] [0—9] [0-9]
工资(工号,工资发放日期,基本工资,奖金)
培训 (培训编号,完成情况,培训名称,培训内容信息)
四、物理设计
表1 职工表
字段名
类型
特殊属性
工号
char(10)
主键
部门编号
char(4)
外键
姓名
char(8)
Not null
出生年月
datetime
性别
char(2)
Not null
文化程度
char(10)
身份证号
char(18)
Not null
进入单位时间
datetime
籍贯
char(5)
Not null
表2 调动信息表
字段名
类型
特殊属性
调动编号
char(10)
主键
工号
char(10)
外键
调动日期
datetime
Not null
调动情况
char(50)
Not null
表3 部门表
字段名
类型
特殊属性
部门编号
char(4)
主键
部门名称
char(10)
Not null
部门电话
char(20)
Not null
部长
char(8)
表4考勤信息表
字段名
类型
特殊属性
考勤编号
char(10)
主键
工号
char(10)
外键
日期
datetime
Not null
出勤情况
char(4)
Not null
表5工资表
字段名
类型
特殊属性
工号
char(10)
主键
工资发放日期
datetime
Not null
基本工资
int
Not null
奖金
int
表6 培训表
字段名
类型
特殊属性
培训编号
char(10)
主键
培训内容信息
char(50)
培训名称
char(10)
Not null
表七
五、系统实现(
数据库、基本表的建立在查询分析器中使用T-SQL语言:
数据库名称为:人力资源管理系统数据库
1。数据库的建立:
CREATE DATABASE 人力资源管理系统数据库
ON PRIMARY
( NAME=人力资源管理系统数据库_data,
FILENAME=’E:\\人力资源管理系统数据库_data。mdf’,
SIZE=10,
MAXSIZE=100,
FILEGROWTH=2
)
LOG ON
( NAME=人力资源管理系统_log,
FILENAME=' E:\ \人力资源管理系统_Log.LDF',
SIZE=5,
MAXSIZE=50,
FILEGROWTH=2)
2.数据表的建立
USE 人力资源管理系统
GO
CREATE TABLE 部门
(部门编号 char(4) primary key,
部门名称 char(10) not null,
部门电话 char(11) not null
部长 char(8) )
Go
CREATE TABLE 职工
(工号 char(10) primary key,
姓名 char(8)not null,
部门编号 char(4) not null references 部门表(部门编号),
出生年月 datetime not null,
性别 char(2) not null,
文化程度 char(10),
身份证号 char(18) not null,
籍贯 char(50) not null,
进入单位时间 datetime
)
Go
CREATE TABLE 调动信息
(调动编号 char(10) primary key,
工号 char(10) not null references 员工(工号),
调动日期 datetime not null,
调动原因 char(50) not null,
)
Go
CREATE TABLE 考勤信息
(考勤编号 char(10) primary key,
日期 int not null,
出勤情况 char(4) not null,
工号 char(10) not null references 员工(工号))
Go
CREATE TABLE 工资
(工号 char(10) primary key,
工资发放日期 datetime Not null,
基本工资 int Not null,
奖金 int,
)
3.数据的输入
仅以人力资源管理表为一个数据为例,其他数据及其他数据表数据的输入略。
Insert into职工
Values(‘3013207' ‘3013' ‘张悦’ ‘1983—9’ ‘女’ ‘高中' ‘120224198309293021' ‘2010。10' ‘天津')
Values(‘3012205’ ‘3012’ ‘李艳' ‘1983—1' ‘女’ ‘高中’ ‘120224198309296452’ ‘2010。10’ ‘天津’)
Values(‘3013216' ‘3013’ ‘赵伟’ ‘1982—9’ ‘女’ ‘高中' ‘120224198309297567’ ‘2010。10' ‘天津’)
Values(‘3012217' ‘3012' ‘林翔' ‘1985-3’ ‘女’ ‘高中' ‘120224198309299785’ ‘2010.10’ ‘天津’)
Values(‘3011208' ‘3011’ ‘云霄’ ‘1973—2’ ‘女' ‘高中’ ‘120224198309293961' ‘2010.10' ‘天津’)
Values(‘3011209’ ‘3011' ‘韩丹' ‘1986-4’ ‘女' ‘高中’ ‘120224198309293045' ‘2010。10' ‘天津')
Values(‘3015210’ ‘3015’ ‘钱雪' ‘1989—5’ ‘女' ‘高中’ ‘120224198309290985’ ‘2010。10’ ‘天津’)
Values(‘3013213’ ‘3013’ ‘袁飞’ ‘1987—9’ ‘女’ ‘高中’ ‘120224198309292462’ ‘2010.10' ‘天津')
Values(‘3014211' ‘3014’ ‘赵明' ‘1988—6’ ‘女' ‘高中' ‘120224198309299775’ ‘2010。10' ‘天津')
Values(‘3016207’ ‘3016' ‘李辉’ ‘1981-7' ‘女’ ‘高中’ ‘120224198309292463’ ‘2010.10’ ‘天津')
Insert into 部门
Values(‘3011’‘宣传部’‘20671111’‘云霄')
Values(‘3012'‘管理部'‘20672222'‘林翔’)
Values(‘3013’‘策划部’‘20673333'‘赵伟’)
Values(‘3014'‘广告部’‘20674444’‘赵明’)
Values(‘3015’‘技术部’‘20675555’‘钱雪’)
Values(‘3016’‘组织部’‘20676666’‘李辉’)
Values(‘1'‘3013207’‘2013年5月1日’‘生病不适合’)
Values(‘2'‘3013205’‘2013年3月28日'‘生病’)
Values(‘3'‘3013216’‘2014年1月1日'‘人事变动’)
Values(‘4’‘3012217’‘2014年2月2日'‘私事')
Values(‘5’‘3011208’‘2014/12/8’‘人事调整’)
Values(‘6’‘3011209'‘2012年3月2日’‘人事变动’)
Values(‘7’‘3015210'‘2013年3月8日'‘分娩’)
Values(‘8’‘3013213’‘2011年7月8日’‘人员变动’)
Values(‘9’‘3014211'‘2013年3月28日'‘人员变动')
Values(‘10’‘3016207’‘2013年4月5日’‘人事变动’)
4。索引的创建
a。职工表:按职工号降序排列
CREATE INDEX 职工_职工号 ON职工(工号desc)
b。职工表:按年龄升序排列
CREATE INDEX 职工_出生年月 ON职工(出生年月)
c。部门表:按部门号升序排列,聚集索引
CREATE CLUSTERE INDEX 部门_部门号 ON部门(部门号)
d.调动信息表:按调动日期降序排列
CREATE CLUSTERE INDEX 调动信息_调动日期 ON调动信息(调动日期)
5。视图的创建
a。职工调动视图:显示调动职工调动编号及所在部门信息
CREATE VIEW 职工调动视图
AS
SELECT 工号,姓名,调动编号,部门编号,部门电话
FROM 职工表 JOIN 调动信息表
ON 职工表。工号=调动信息表。工号
JOIN 部门表 ON 职工表。部门编号=部门表.部门编号
b.工资视图:显示
CREATE VIEW 工资视图
AS
SELECT 工号,姓名
c. 平均奖金视图:显示所有职工的工号及平均奖金。
Create view 平均奖金视图
As
Select 工号,avg(奖金_元)as平均奖金_元
From 工资表
Group by 工号
d.调动时间与调动原因视图:显示调动时间、调动原因及工号。
Create view 调动时间与调动原因
As
Select 调动信息。调动时间,调动信息.调动原因,工号
From 职工inner join调动时间on调动信息。调动时间=调动信息.调动时间
Inner join 调动原因on 调动信息.调动原因=调动信息。调动原因
Order by 工号
FROM 工资表
CREATE PROCEDURE 调动信息表的插入
@调动编号 char(10),
@工号 char(10),
@调动日期 char(5),
@调动情况 char(50)
AS INSERT INTO 调动信息表
VALUES (@调动编号,@工号,@调动日期,@调动原因)
CREATE PROCEDURE 职工部门的修改 @部门编号 char(4)
AS
update 部门编号
SET 部门编号=@部门编号
CREATE PROCEDURE 职工文化程度的修改 @文化程度 char(10)
AS
update 文化程度
SET 文化程度=@文化程度 ( 目测有点问题)
第7页
展开阅读全文