《数据库课程设计报告--人事管理系统(共11页).doc》由会员分享,可在线阅读,更多相关《数据库课程设计报告--人事管理系统(共11页).doc(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上数据库课程设计报告人事管理系统班级: 序号: 姓名: 地球科学学院地信系2013-06-28一、概述1.1项目背景:90年代中期,由于Internet 的迅速普及,形成了集计算机,计算机网络、数据库、分布式计算等于一体的信息技术综合体,它打破了时间和地域的界限,使信息交流变得快捷、准确,为建立现代企业管理信息系统提供了充足的条件。随着企业的不断发展,企业的员工数量不断增加,纯文本手工的管理方式已经不能满足企业管理者的需求。与此同时,人事管理系统,属于ERP的一个部分。它单指汇集成功企业先进的人力资源管理理念、人力资源管理实践、人力资源信息化系统建设的经验,以信息技术实
2、现对企业人力资源信息的高度集成化管理,为中国企业使用的人力资源管理解决方案。1.2项目目的:核心目的在于将人力资源工作者从繁重的日常琐碎事务中解放出来,将更多地精力用于企业的人力资源职能管理和管理决策,保持企业的持续高效运营。 集中记录、监测和分析所有劳动力的技能和资格,提供决策分析。提高企业整体的科技含量与管理效率,加快企业的信息化建设。此系统是专门为中小型企业管理人事信息所开发的,以方便对员工进行管理。二、需求分析2.1、业务需求a系统操作简单,界面友好。 B支持多人操作,要求有权限分配功能。 2.2、用户需求 2.2.1、员工可以实现的功能: a.用户登录:登陆应用程序查看自己的信息 b
3、.修改密码:修改用户自己的密码 2.2.2、管理员实现的功能: a.用户注册:实现员工的注册,分配默认的帐户密码b.基本信息:统计与查询员工基本信息c.信息修改调动:调动修改员工的信息和部门信息。 d.系统管理:主要对用户的密码、管理权限的设置等。 2.3功能模块: (1)登陆模块 通过该模块员工输入用户名密码登录到软件界面,登陆有两种权限,一种是普通员工,一种是管理员,不同的权限,能操作的模块不同。(2)信息查询模块 这个查询模块员工与管理员都可以使用,查询信息包括员工信息查询与调动信息查询。员工信息查询包括查询所有员工信息,用姓名查询单个员工信息以及查询根据部门查询部门中包含哪些员工。(3
4、)信息管理模块 这个信息管理模块只有管理员能使用。对新聘用的员工,将其信息加入员工信息表中;对于解聘的员工,将其信息从员工信息表中删除。当员工的信息发生变动时,修改员工信息表中相应的属性。部门的增加,删除与编辑也属于这个模块。(4)用户管理模块 这个查询模块员工与管理员都可以使用,用来更改密码。管理员还可以用来设置用户权限和新增用户并为用户设置初始密码。三、概念结构设计3.1、各实体的E-R图 图1.用户权限表E-R图图2.员工基本信息表的实体E-R图 图3.部门表E-R图 图4.职务表E-R图图5.调动信息表E-R图图6.总的员工实体图四、数据库逻辑设计4.1.数据字典主要的数据流定义(1)
5、数据流名称:员工情况定义:员工情况=员工编号+员工姓名+性别+出生日期+年龄+民族+籍贯+政治面貌+学历+联系电话+入职时间+部门号+职位号数据来源:员工的信息。数据去向:员工信息表。数据流量:根据公司的具体情况来定。说明:要对每一位被聘用的新员工进行唯一编号。(2)数据流名称:调动情况定义:调动情况=员工编号+员工姓名+调动编号+员工编号+原部门号+现部门号+原职位号+现职位号+调动日期+调动原因数据来源:员工的部门调动,职位调动。来源于员工信息表的更新。数据去向:调动信息表。数据流量:根据公司的具体情况来定。说明:员工编号、调动日期和调动编号可以唯一确定一个调动情况。(3)数据流名称:部门
6、情况定义:部门情况=部门编号+部门名数据来源:部门的编号与名称。数据去向:部门表。数据流量:根据公司的具体情况来定。说明:部门编号是主码。(4)数据流名称:职位情况定义:职位情况=职位编号+职位名数据来源:职位的标号与名称。数据去向:职位表。数据流量:根据公司的具体情况来定。说明:职位编号是主码。(5)数据流名称:用户登陆定义:用户登陆=员工编号+密码+权限名(一般员工/管理员)数据来源:管理员录入员工编号、密码和权限。数据去向:登录表。数据流量:根据公司的具体情况来定。说明:不同的用户身份对应不同的操作权限,对应着不同的安全级别。4.2. 将人事管理系统的E-R图转换为关系数据库的数据模型,
7、其关系模式为:1员工资料(员工编号+姓名+性别+出生日期+民族+籍贯+学历+政治面貌+电话+入职时间+部门号+职位号),其中员工编号为主键。2职位(职位编号+职位名),其中职位编号为主键。3部门(部门编号+部门名),其中部门编号为主键。4调动记录(调动编号+原来部门+现在部门+原来职位+现在职位+调动日期+员工编号+调动原因),其中调动编号为主键,员工编号为外键。5员工拥有(员工编号+部门编号+职位编号+调动编号)。6员工从属(员工编号+部门编号+职位编号)7调动生成(调动编号+员工编号+岗位编号+部门编号)。五、物理设计数据库物理设计阶段的任务是根据具体计算机系统(DBMS和硬件等)的特点,
8、为给定的数据库系统确定合理的存储结构和存取方法。所谓的“合理”主要有两个含义:一个是要使设计出的物理数据库占用较少的存储空间,另一个对数据库的操作具有尽可能高的速度。主要体现在后者。4.1.建立视图为员工信息和调动信息创建视图,方便提取信息。4.2建立存储结构4.3.建立触发器;六、用T-SQL实现数据库设计部分create table 登录表 ( 员工编号 Char(4) primary key, 密码 varchar(20) not null, 权限名 char(12) not null, foreign key (员工编号) references 员工(员工编号) on delete c
9、ascade, )create table 员工 ( 员工编号 Char(4) primary key, 姓名 Char(10) not null,性别 Char(2) check(性别 in(男,女),出生日期 datetime,年龄 int not null,民族 VarChar(16) not null,籍贯 VarChar(16) not null,学历 VarChar(32) not null,政治面貌 char(10) not null,联系电话 VarChar(11) not null,入职时间 datetime not null, 职位号 Char(4),部门号 char(4)
10、, )create table 部门 ( 部门号 Char(4) primary key, 部门名 Char(10) not null, )create table 职位 (职位号 char(4) NOT NULL PRIMARY KEY,职位名 char(10) NOT NULL, )create table 职务调动 (调动编号 Char(4) not null primary key,员工编号 Char(4) not null,原部门号 Char(4),现部门号 Char(4),原职位号 Char(4),现职位号 Char(4),调动日期 datetime not null,调动原因 V
11、arChar(50), foreign key (员工编号) references 员工(员工编号) on delete cascade, )-*视图的创建*-1.创建用于查询员工信息的视图-use 人事管理系统gocreate view 员工信息表as select 员工编号,姓名,性别,出生日期,年龄,民族,籍贯,学历,政治面貌,联系电话,入职时间,部门名,职位名 from 员工,部门,职位 where 员工.部门号=部门.部门号 and 员工.职位号=职位.职位号 -2.创建用于查询员工调动情况的视图-use 人事管理系统gocreate view 员工调动情况图as select a.
12、部门名 as 前部门名称, b.部门名 as 后部门名称, 员工.员工编号 as 员工编号, 员工.姓名 as 员工姓名, x.职位名 as 前岗位名称, y.职位名 as 后岗位名称, 调动日期,调动原因from 职务调动,职位 x,职位 y,部门 a,部门 b,员工where 原部门号=a.部门号 and 现部门号=b.部门号 and 原职位号=x.职位号 and 现职位号=y.职位号 and 职务调动.员工编号=员工.员工编号-*存储过程的创建*-1.指定了员工号的员工信息查询-create proc em_info num char(4)as select * from 员工信息表 w
13、here 姓名=( select 姓名 from 员工 where num=员工.员工编号 )-2.指定了部门号的部门内部情况信息查询-create proc bm_info bnum char(4)as select 部门名,职位名,姓名,性别,出生日期,年龄,民族,籍贯,学历,政治面貌,联系电话,入职时间 from 员工信息表 where 部门名=( select 部门名 from 部门 where bnum=部门.部门号 )-*触发器的创建*-1.员工信息表中的调职- create trigger staff_update on 员工 for update as begin declar
14、e bh int,rq datetime set bh=(select count(*) from 职务调动)+1 set rq=GETDATE() insert into 职务调动(调动编号,员工编号,原部门号,现部门号,原职位号,现职位号,调动日期) select bh,a.员工编号,a.部门号,b.部门号,a.职位号,b.职位号,rq from deleted a,inserted b where a.员工编号=b.员工编号 end -drop trigger staff_update-2.新员工加入- create trigger reminder on 员工 for insert a
15、s begin declare str char(15) set str=新员工加入! print str end-3.旧员工离职- -drop trigger reminder2 create trigger reminder2 on 员工 for delete as begin declare str char(15) set str=旧员工离职! print str end七、软件设计7.1界面设计图7.登陆界面图8.主界面7.2.功能设计 图9.信息查询模块 图10.信息管理模块 图11.用户管理模块图12.员工信息查询图13.调动信息查询图14.员工信息管理图15.密码更改7.3.核
16、心代码:这个软件是用C#写的,也没有什么算法,只是较多的用到了窗体的控件,比如treeview控件,比如gridview控件。连接数据库是这里面比较复杂的。我创建了一个类用于连接数据库和引用数据库中的数据。namespace 人事管理系统.人事管理classclass dboperate SqlConnection conn = new SqlConnection(server=YTYL8KHHRGEC5JY;database=人事管理系统;uid=ryc;pwd=ryc55); public int OperateData(string strSql) conn.Open();/打开数据库连
17、接 SqlCommand cmd = new SqlCommand(strSql, conn);/创建命令对象 int i = (int)cmd.ExecuteNonQuery();/执行SQL命令 conn.Close();/关闭数据库连接 return i;/返回数值public void BindDataGridView(DataGridView dgv, string sql) SqlDataAdapter sda = new SqlDataAdapter(sql, conn);/创建数据适配器对象 DataSet ds = new DataSet();/创建数据集对象 sda.Fil
18、l(ds);/填充数据集 dgv.DataSource = ds.Tables0;/绑定到数据表 ds.Dispose();/释放资源public DataSet GetTable(string sql) SqlDataAdapter sda = new SqlDataAdapter(sql, conn); DataSet ds = new DataSet(); sda.Fill(ds);ds.Dispose();return ds;八、实验心得这次数据库实习是自己一个人做的,选择这个课题也是因为对这个人事管理系统比较感兴趣,在网上搜了很多的资料,包括一个公司有哪些部门职位等等。也明白了一个人事管理系统可以做什么。搜完资料就是开始编数据库了,创建了五个表,登录表刚开始比较头疼,因为权限问题我学的不太明,但涉及到这个系统,权限是必须的,所以后来我只是使用了C#中的语言给用户赋予权限,而不是使用数据库语言。而且写触发器也给我造成了很大的难题,更改员工信息的部门职位信息可以在部门调动表中形成相应的记录,老师原来有在课堂上讲过,在这里就用到了,觉得非常的方便。总之学到了很多东西。专心-专注-专业