学校的人力资源管理系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

学校的人力资源管理系统(总17页)
--本页仅作为文档封面,使用时请直接删除即可--
--内页可以根据需求调整合适字体及大小--
数据库原理及应用课程设计
设计报告
题目:学校人力资源管理系统
学号: 3
学生姓名: 方新运
指导教师:余建国
提交时间:
目录
第1章需求分析 (1)
需求调查 (1)
系统功能分析 (1)
第2章面向对象分析和设计 (2)
第3章逻辑结构设计 (3)
局部E-R图 (3)
类和对象向关系模式转换 (4)
第4章数据库物理结构设计 (5)
存取方法设计 (5)
存储结构设计 (5)
物理设计 (5)
第5章数据库完整性设计 (12)
主键 (12)
参照完整性设计 (12)
Check约束 (13)
触发器设计 (13)
第7章数据库存储过程设计 (14)
创建存储过程 (14)
总结 (15)
参考文献: (15)
学校人力资源管理系统
第1章需求分析
需求调查
通过对各个用户的调查,该学校人力资源管理系统有如下需求:
1)家庭管理:实现学校教职工家庭信息管理包括父母,子女等信息。

2)学历管理:实现学校教职工学历信息管理,包括教职工从小学到大学的学
校情况。

3)基本信息:实现显示教职工基本信息及邮箱信息的记录。

4)奖惩管理:实现在教职工奖惩情况记录。

5)部门管理:包含最基本的部门名、部门总人数信息。

系统功能分析
1)家庭管理:用于记录和管理职工的父母子女等亲属的名字。

2)学历管理:用于记录教职工从小到大所在学校的名称。

3)个人基本管理:用于记录职工的姓名性别工号出生年月电子邮件职称号等
信息。

4)奖惩管理:用于记录职工奖惩情况。

5)部门管理:对各部门和人数进行管理。

第2章面向对象分析和设计
类和对象设计如下:
第3章逻辑结构设计
局部E-R图
图3-1
图3-2 图3-3
图3-4
图3-5
类和对象向关系模式转换
个人基本信息(姓名、工号、性别、出生年份、电子邮件、职称号、所属部门)
职称(姓名、职称号、人数)
部门(人数、部门名)
家庭关系(工号、姓名、父、母、妻(夫)、子女1、子女2、子女3)学历信息(姓名、工号、小学、初中、高中、本科、研究生、博士)
奖惩(姓名、工号、奖励、惩罚、日期)
第4章数据库物理结构设计
4.1存取方法设计
数据库系统是多用户共享的系统,对同一个关系要建立多条存储路径才能满足多用户的多种应用要求。

对于教务管理系统来说,为了提高某些属性(如:学生学号,教职工号,课程号,学生成绩,选课信息等)的查询速度,可以选择聚簇存取的方法,即把这些属性上具有相同值的元组集中放在连续的物理块上。

这样在查询某个学院或是查询某个专业或某学年等的学生成绩或选课等时就会大大提高查询速度。

因此,该系统中选择聚簇存取方法。

存储结构设计
教务管理系统是一个大型复杂的计算机网络信息系统,采用基于浏览器/服务器(B/S),客户端/服务器(C/S)混合的应用体系结构来建设教务管理系统。

数据库管理系统采用Microsoft 公司推出的SQL Server 2000 或以上版本,并用SQL进行数据库的建立和数据库中数据的维护和查询。

物理设计
实现该设计的环境为Windows XP Professional + MS SQL Server 2005 或以上版本。

1、建立学校人力资源管理系统数据库
create database 学校人力资源管理系统 on primary (
name=学校人力资源管理系统,
filename='d:\学校人力资源管理\学校人力资源管理系统数据文件.mdf', size=5, maxsize=10, filegrowth=1)
log on (
name=学校人力资源管理日志文件,
filename='d:\学校人力资源管理\学校人力资源管理日志文件.ldf',
size=3, maxsize=10, filegrowth=1)
2、建立个人基本信息表
USE [学校人力资源管理系统]
GO
/****** Object: Table [dbo].[个人基本信息] Script Date:
01/03/2015 20:32:39 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[个人基本信息](
[姓名] [char](10) NULL,
[工号] [char](10) NOT NULL,
[性别] [char](10) NULL,
[出生年份] [char](10) NULL,
[电子邮件] [char](50) NULL,
[职称号] [char](10) NULL,
[所属部门] [char](10) NULL,
CONSTRAINT [PK_个人基本信息] PRIMARY KEY CLUSTERED
(
[工号] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
ALTER TABLE [dbo].[个人基本信息] WITH NOCHECK ADD CONSTRAINT [FK_个人基本信息_部门] FOREIGN KEY([所属部门])
REFERENCES [dbo].[部门] ([部门名])
GO
ALTER TABLE [dbo].[个人基本信息] NOCHECK CONSTRAINT [FK_个人基本信息_部门]
GO
ALTER TABLE [dbo].[个人基本信息] WITH NOCHECK ADD CONSTRAINT [FK_个人基本信息_职称1] FOREIGN KEY([职称号])
REFERENCES [dbo].[职称1] ([职称号])
GO
ALTER TABLE [dbo].[个人基本信息] NOCHECK CONSTRAINT [FK_个人基本信息_职称1]
GO
3、建立家庭关系表
USE [学校人力资源管理系统]
GO
/****** Object: Table [dbo].[家庭关系] Script Date:
01/03/2015 20:30:35 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[家庭关系](
[工号] [char](10) NULL,
[姓名] [char](10) NULL,
[妻(夫)] [char](10) NULL,
[父] [char](10) NULL,
[母] [char](10) NULL,
[子女1] [char](10) NULL,
[子女2] [char](10) NULL,
[子女3] [char](10) NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
ALTER TABLE [dbo].[家庭关系] WITH CHECK ADD CONSTRAINT [FK_家庭关系_个人基本信息] FOREIGN KEY([工号])
REFERENCES [dbo].[个人基本信息] ([工号])
GO
ALTER TABLE [dbo].[家庭关系] CHECK CONSTRAINT [FK_家庭关系_个人基本信息]
GO
4、建立学历信息表
USE [学校人力资源管理系统]
GO
/****** Object: Table [dbo].[学历信息] Script Date:
01/03/2015 20:28:28 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
CREATE TABLE [dbo].[学历信息](
[工号] [char](10) NULL,
[姓名] [char](10) NULL,
[小学] [nchar](20) NULL,
[初中] [nchar](20) NULL,
[高中] [nchar](20) NULL,
[本科] [nchar](20) NULL,
[研究生] [nchar](20) NULL,
[博士] [nchar](20) NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
ALTER TABLE [dbo].[学历信息] WITH NOCHECK ADD CONSTRAINT [FK_学历信息_个人基本信息] FOREIGN KEY([工号])
REFERENCES [dbo].[个人基本信息] ([工号])
GO
ALTER TABLE [dbo].[学历信息] CHECK CONSTRAINT [FK_学历信息_个人基本信息]
5、GO建立奖惩信息表
USE [学校人力资源管理系统]
GO
/****** Object: Table [dbo].[奖惩] Script Date: 01/03/2015 20:27:38 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[奖惩](
[姓名] [char](10) NULL,
[工号] [char](10) NULL,
[奖励] [nchar](50) NULL,
[惩罚] [nchar](50) NULL,
[日期] [nchar](10) NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
ALTER TABLE [dbo].[奖惩] WITH NOCHECK ADD CONSTRAINT [FK_奖惩_个人基本信息] FOREIGN KEY([工号])
REFERENCES [dbo].[个人基本信息] ([工号])
GO
ALTER TABLE [dbo].[奖惩] CHECK CONSTRAINT [FK_奖惩_个人基本信息] GO
6、建立职称信息表
SET ANSI_NULLS ON
GO
USE [学校人力资源管理系统]
GO
/****** Object: Table [dbo].[职称1] Script Date: 01/03/2015 20:24:24 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[职称1](
[职称号] [char](10) NOT NULL,
[职称名] [char](10) NULL,
[人数] [char](10) NULL,
CONSTRAINT [PK_职称1] PRIMARY KEY CLUSTERED
(
[职称号] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
7、建立部门表
USE [学校人力资源管理系统]
GO
/****** Object: Table [dbo].[部门] Script Date: 01/03/2015 20:25:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[部门](
[部门名] [char](10) NOT NULL,
[人数] [int] NULL,
CONSTRAINT [PK_部门] PRIMARY KEY CLUSTERED
(
[部门名] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
第5章数据库完整性设计
主键
5.2参照完整性设计
1、个人基本信息表中把职称号和所属部门设为外键
ALTER TABLE [dbo].[个人基本信息] WITH NOCHECK ADD CONSTRAINT [FK_个人基本信息_部门] FOREIGN KEY([所属部门])
REFERENCES [dbo].[部门] ([部门名])
GO
ALTER TABLE [dbo].[个人基本信息] NOCHECK CONSTRAINT [FK_个人基本信息_部门]
GO
ALTER TABLE [dbo].[个人基本信息] WITH NOCHECK ADD CONSTRAINT [FK_个人基本信息_职称1] FOREIGN KEY([职称号])
REFERENCES [dbo].[职称1] ([职称号])
GO
ALTER TABLE [dbo].[个人基本信息] NOCHECK CONSTRAINT [FK_个人基本信息_职称1]
GO
2、家庭关系中工号设计为外键
ALTER TABLE [dbo].[家庭关系] WITH CHECK ADD CONSTRAINT [FK_家庭关系_个人基本信息] FOREIGN KEY([工号])
REFERENCES [dbo].[个人基本信息] ([工号])
GO
ALTER TABLE [dbo].[家庭关系] CHECK CONSTRAINT [FK_家庭关系_个人基本信息]
GO
3、奖惩表中工号为外键
ALTER TABLE [dbo].[家庭关系] WITH CHECK ADD CONSTRAINT [FK_家庭关系_个人基本信息] FOREIGN KEY([工号])
REFERENCES [dbo].[个人基本信息] ([工号])
GO
ALTER TABLE [dbo].[家庭关系] CHECK CONSTRAINT [FK_家庭关系_个人基本信息]
GO
4、学历信息中工号设计为外键
ALTER TABLE [dbo].[学历信息] WITH NOCHECK ADD CONSTRAINT [FK_学历信息_个人基本信息] FOREIGN KEY([工号])
REFERENCES [dbo].[个人基本信息] ([工号])
GO
ALTER TABLE [dbo].[学历信息] CHECK CONSTRAINT [FK_学历信息_个人基本信息]
GO
Check约束
1、个人基本信息表中将性别进行check约束:check (性别in ('男','女')) 触发器设计
1、在个人信息表中建立删除职工信息触发器
USE [学校人力资源管理系统]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE trigger [dbo].[人数减少]
on [dbo].[个人基本信息]
for delete
AS
begin
declare @a char(50)
select @a=deleted.所属部门 from deleted
update 部门
set 部门.人数=部门.人数-1
where @a=部门.部门名
end
GO
2、在个人信息表中建立增加教职工触发器
USE [学校人力资源管理系统]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create trigger [dbo].[人数增加]
on [dbo].[个人基本信息]
for insert
AS
begin
declare @a char(50)
select @a=inserted.所属部门 from inserted
update 部门
set 部门.人数=部门.人数+1
where @a=部门.部门名+
-- left(@a,3)=班级.班级号
end
GO
第7章数据库存储过程设计创建存储过程
1.查询学校各部门各种职称的教职工数量
USE [学校人力资源管理系统]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [dbo].[查询部门人数]
@a char (50)
as
select 部门名,人数
from 部门
where 部门.部门名= @a
GO
总结
理论联系实际才能做好一件事,学习一门课程同样是这样。

通过16学时的数据库课程设计实习,受益匪浅,从中学到了许多新知识,这些知识是在课堂中不能学到或者说很难学到的。

并且对大型数据库设计这一门课程有了更深一步的理解。

在做课程设计中,可以把课堂上所学的理论知识和实践联系起来,在所要开发的系统中渐渐学会了融会贯通。

同样通过对SQLServer的应用,也使我们熟练和巩固了对SQL的理解。

这次课程设计,完成课题是《教务管理系统》,在学校人力资源管理系统的开发中采用了完整的数据库设计的全过程,从需求分析到概念结构设计,到逻辑结构设计,最后到数据库的实施和维护,每一步都认真的分析和实施。

当然,在本次课程设计的成果中还存在许多的不足之处,这就需要我们学习更多的知识,进行更深研究。

当然了,在建表过程中一开始没有用代码来实现,所以在构建数据库关系图的时候出现了不少的问题导致6张表重新建了好几次,不过最后仍然做了出来,收或还是蛮大的。

在这次实习中,我们完全投入到了开发系统的世界里。

结束后明白了理论和实践要想充分地结合,需要非常扎实的基本功。

这就说明学好基础知识是理论付诸实践的前提。

在开发教务管理系统中我学到了很多,希望在以后能充分利用实习的机会充实自己,用所学的理论知识充分去实践,在实践中又要努力去巩固理论知识。

只有这样,才能把一门课程甚至一门学科学精、学透。

参考文献:
1.王珊,萨师煊 .数据库系统概论[M]. 高等教育出版社,2006
2.郑阿奇等. SQLserver实用教程(第3版)[M] . 电子工业出版社,2009
3.赵乃真等. 信息系统设计与应用. 清华大学出版社,2005
18。

相关文档
最新文档