学号:
课程设计
题目人力资源数据库设计
学院计算机科学与技术
专业计算机科学与技术
班级
姓名
指导教师
2009 年12 月18 日
课程设计任务书
学生姓名:专业班级:
指导教师:工作单位:计算机学院
题目:人力资源数据库设计
初始条件:
人力资源部门希望建立一个数据库来管理它的员工。
一个公司有几个部门,而一个员工属于一个部门。
这个部门指派一个经理来全面负责部门事务和部门员工。
当一个新员工进入公司时,需要他以前的工作经历和成绩。
公司设置了一系列职位,每个职位都有相关的等级和工资。
各个职位都会被分配给工作人员。
要求完成的主要任务:
1.根据上述的初始条件,进行调查分析并设计适当的属性。
设计一个人力资源
数据库,DBMS可选Ms SQL Server、Access、VFP等。
2.完成课程设计说明书,其格式遵守学校今年的新规定。
主要内容包括:需求
分析,概念设计,逻辑设计,物理实现等。
3.基于该数据库,最好实现一个或多个应用程序(自己确定功能),程序设计
语言(工具)任选。
这一项是选作,不作硬性要求。
时间安排:
本学期第20周:
1.消化资料、系统调查1天
2.系统分析1天
3.总体设计,实施计划2天
4.撰写报告1天
指导教师签名:年月日
系主任(或责任教师)签名:年月日
人力资源数据库设计
1.概述
人力资源部门希望建立数据库来管理员工。
由人力资源部门来指派各部门的经理,而该部门的员工是由经理来负责的,员工进入公司的时候不仅需要员工的基本信息,还需要员工以前的工作经历和相应的成绩。
每个员工只属于一个部门。
本系统要便于人力资源部门对各部门经理的任命,以及经理对本部门员工的调控。
而且要注意员工隐私信息的保护。
2.需求分析说明
本系统主要是开发一个人力资源管理的关系数据库。
主要针对人力资源部门,部门经理,以及普通员工三种用户。
需要对这三种用户进行详细的需求分析。
以及对不同的用户,要设置不同的权限,避免普通员工可以查看其他员工的隐私信息,或者部门经理管理其他部门的员工。
同时界面要有好,方便各种用户操作。
本数据库是人力资源管理系统,因此主要是围绕管理人员的需求来制作,同时也提供给普通员工查询操作。
我将使用人员主要分为三大类:人力资源管理部门、部门经理、普通员工。
实现方法:根据初始条件分析,明确所要设计的数据库在逻辑和物理上的架构,能有一个明确细致的需求分析文档,在其中体现分析所得到的开发和管理需求。
在需求分析的基础上,从中抽取出原始数据集的实体,然后,对实体进行概念分层和概念抽象,进行概念模型的设计。
在概念模型的基础上,运用E-R 方法,设计出整个系统的模式和子模式,并通过逻辑设计以及物理设计最终确定系统的数据库逻辑架构与物理布局。
在数据库的机构基础上,进行数据集的行为设计,并在此基础上,设计应用程序的布局、流程、以及视图集成,并将最终的应用程序投入实施。
3.概念结构设计
人力资源的管理主要反映在对员工信息的录入和删除。
本数据库主要涉及的实体有:部门,员工,职位,工作经历,工作成绩。
部门信息:
由于部门名称不会出现不同部门同名的情况,因此不需要额外为每个部门进行编号。
员工信息:
员工会出现同名的情况,所以需要对员工进行编号。
员工的ID不会进行加减乘除等算术运算,而且可能以0开头,因此使用CHAR类型。
工作经历:
由于员工的工作经历涵盖了很多内容,因此将员工经历看为实体。
并对经历进行编号,便于标示
工作成绩:
由于员工的工作经历所对应的成绩涵盖了很多内容,因此将员工经历看为实体。
为了便于搜索,对其进行编号
职位:
职位与工资以及登记挂钩,因此不能将职位当做属性。
在公司中不会出现不同职位同名的情况,因此无需对职位进行编号。
根据上述表,可以挖掘出实体:
部门:{部门名,部门经理}
员工:{员工ID,员工姓名,性别,进入公司时间}
工作经历:{经历ID,所属公司,职位,起始时间,结束时间}
工作成绩:{成绩ID,工作表现,出勤表现,奖惩记录,备注}
职位:{职位名,等级,工资}
E-R图设计:
(1)部门-员工模块
部门与员工之间的关系很简单,一个部门拥有多个员工,而一个员工只属于一个部门,因此其局部E-R图为:
(2)
一个员工可以兼任多个职位,而一个职位也可能有多个员工(比如一个研发团队有多个工程师),职位的相关属性有属性名,等级,工资。
它们之间存在这个聘任的关系:
(3)员工-工作经历模块
一个员工可能以前要有多个工作经历,也可能没有工作经历。
因此员工与工作经历存在拥有关系:
(4)工作经历-工作成绩模块
工作经历与成绩是一一对应的关系。
一段工作经历对应相应的成绩。
总体设计:
4.逻辑结构设计
E-R图向关系模型转化:对于部门与员工之间的“属于”(1:m)联系,将
其与员工端(m端)合并。
对于员工与职位之间的“聘任”(m:n)联系,将其转换为一个关系模式,各实体的码转换为关系的码
部门:{部门名,部门经理}
员工:{员工ID,员工姓名,性别,所属部门名,进入公司时间}
职位:{职位名,等级,工资}
对于员工和工作经历的“拥有”(1:m)联系,将其与工作经历端(m端)合并。
而对于工作经历和工作成绩的“对应”(1:1)联系,将其与工作经历端合并。
得到关系模式为:
职位聘任:{职位名,员工ID}
工作经历:{员工ID,经历ID,所属公司,职位,起始时间,结束时间,ID} 工作成绩:{成绩ID,工作表现,出勤表现,奖惩记录,备注}
5.物理结构设计
关系数据库存取方法
为了方便各部门经理对本部门员工进行操作,本数据库采用聚簇方法来存放员工信息,聚簇码为所属部门名。
为了提高某个属性(或属性组)的查询速度,把这个或这些属性上具有相同值的元组集中存放在连续的物理块中称为聚簇。
采用聚簇方法可以大大提高按相同部门进行查询的效率。
因为查询员工一般都根据员工ID来查询,所以需要对员工ID创建索引,
来减少查询所需时间。
确定数据库的存储结构
确定数据库的存储结构主要指确定关系、索引、聚簇、日志、备份等的存储安排和存储结构,确定系统配置参数等。
在数据库中,引进了分区的概念,一个数据库文件逻辑上由一个或者多个分区组成.分区是一个逻辑概念,一个分区物理上由一个或者多个物理文件组成,分区与物理文件的映射由数据库产品来管理,分区中至少有一个系统分区,数据字典存储在系统分区中,具有DBA权限的用户可以创建新的分区成为用户分区,并且可以为每个分区追加物理文件.
系统功能说明
首先进行登陆,选择自己的用户类型,登陆后,如果是人力资源管理部门,可以任命部门经理,添加删除部门,查询添加删除员工,聘任职位,修改职位工资。
如果是部门经理,则可以查询员工信息,添加删除员工,聘任员工。
如果是普通员工,只能查询员工信息。
系统调试登陆界面:
人力资源部门界面:
任命经理界面:
查询员工界面:
添加员工界面:
职位聘任界面:
工资修改界面:
部门经理界面:
部门经理的查询界面、处理员工信息界面与人力资源部门的相同。
普通员工进入数据后直接进入查询查询员工信息界面,不能执行其他操作。
6.总结
系统已解决的问题
系统完成了数据库基础构建工作,创建了各关系模式,题目所要的基本功能均已实现。
为了便于信息的保密,减少视图的创建,我将需要一定保密性的信息独立创建一个模式(比如没有把工作经历与员工基本信息合并)。
在此基础上,创建了一个简单的应用程序,方便各种用户登陆。
系统没有解决的问题
由于员工职业没有存放在员工模式中,因次查询员工基本信息的时候需要查询两个模式,增加了系统的开销,但是如果不怎么样做,员工职位合并到员工模式中,由于员工可能有多个职位,会造成员工信息冗余。
这个问题没有得到很好的解决。
此外应用程序没有做好,有很多功能都没有完善,比如查询员工信息只能通过员工ID进行查询。
进一步完善的设想与建议。
应用程序还有很多的改进空间,比如可以通过员工的各种信息来查找员工,对于应用程序的界面,也需要改的更漂亮。
该数据库的用户面也可以加大,比如各部门组成一个分公司,分公司再组成一个大公司,这样增加数据库的应用面。
7.参考文献
《数据库系统简明教程》,主编:王珊,出版社:高等教育出版社,出版或修订时间:2004.9
《数据库系统概论》,主编:杨开英,出版社:武汉理工大学出版社,出版或修订时间:2003.1
《数据库系统概论(第三版)》,主编:萨师宣、王珊,出版社:高等教育出版社,出版或修订时间:2000.2
《A First Course in Database Systems》,主编:Jeffrey D. Ullman, Jennifer Widom.,出版社:清华大学出版社,出版或修订时间:1998
本科生课程设计成绩评定表
班级:姓名:学号:
及格(60-69分)、60分以下为不及格
指导教师签名:
200 年月日。