1、数据库课程设计人力资源管理系统数据库的设计与实现数据库课程设计-人力资源管理系统数据库的设计与实现课程设计题目:人力资源管理系统数据库的设计与实现 专 业:信息工程专业 班 级:1222301 学 号: 201220230122 姓 名:曾广明 指导教师: 吴建东 黄笑娟 2013年1月17日 一、实验题目:人力资源管理系统数据库的设计与实现 二、实验时间及地点: 1、时间:1月6号至9号。 2、地点:东华理工大学核工楼303。 三、实验目的: 通过本次课程设计让学生能够综合运用所学的关系数据库原理知识解决人力资源管理系统数据库的设计与实现的实际问题,进一步掌握数据库原理的相关理论和数据库的设
2、计实现过程,进一步提高学生的分析问题和解决问题的能力以及学生的动手能力。 四、课程设计要求: 1(进行系统功能需求分析 2. 数据库设计分析阶段,进行详细的数据库需求分析,进行概念数据库的设计,画出数据库的E-R图(局部和整体E-R图) 3. 设计出详细的逻辑数据库结构,将各个实体和联系转化为相应的二维表即关系模式,指定各个关系的主关键字和外部关键字,并对各个关系的约束加以限定 4. 通过企业管理器或是查询分析器实现各个二维关系(建议最好用SQL代码实现),要求建立相关的索引 5. 根据系统功能需求设计相应的查询视图 6. 要求根据系统功能需求建立存储过程 7. 根据功能需求建立相应的触发器以
3、保证数据的一致性 8. 通过建立用户和权限分配实现数据库一定的安全性,考虑数据库的备份与恢复(此内容选作) 五、实现思路: 描述:设计一个人力资源管理系统(至少包括员工、部门、职称三个表)。实现下列功能: 1(员工人事信息维护(包括信息录入,修改和删除等); 2(部门信息维护(包括信息录入,修改,删除); 1(职称信息维护; 2(按职称统计人员数量 3(按部门查询人员信息 2 2、处理对象: 1. 员工基本信息(employee):包括员工工号,姓名,性别,年龄,学历,住址,电话,出生年月 2(公司部门综合信息(department):包括部门编号,部门名称,员工工号 3.公司人员职称信息(p
4、osition):包括员工工号,员工职位,所属部门 3、概念设计模型: 1、局部E-R图: 各实体关系E-R图: 员工 部门 所属 员工 职称 当任 员工局部E-R图: 员工号 姓名名 性别 电话 员工 年龄 出生年月 学历 住址 3 工资局部E-R图: 所属部门 职位 职称 员工号 null 部门局部E-R图: 部门号 员工号 部门名称 部门 4 2、整体E-R图: 员工号 姓名名 性别 员工 电话 年龄 出生年月 学历 住址 当任 所属 null 职位 部门 职称 员工号 职位 部门号 员工号 所属部门门 3、系统流程图: 用户 发出查询内容 发出修改信息 判断查询内容 判断修改内容 在员
5、工基本信息中处理 在员工职称信息中处理 在员工基本信息中处理 在员工职称信息中处理 显示查询结果 存储修改数据 5 4、关系模式: 员工:employee(eno,ename,sex,age,edu,address,tel,birth) 职称;position(eno,pjob,pdepartment) 员工工号,员工职位,所属部门 部门:department(eno,dno,position) 六、实验过程: 1、表的建立: (1)、员工表的建立: create table employee ( eno char(20) not null constraint ename PRIMARY K
6、EY, -主键约束 ename char(10) NOT NULL, sex char(2) NOT NULL, age int NOT NULL, edu char(10), address char(50), tel char(20), birth datetime NOT NULL, ) (2)职称表的建立: 6 Create table position( eno char(20) not null PRIMARY KEY foreign key references employee(eno), -主键和外键约束 pjob char(8) not null, pdepartment
7、char(10) , )(3)、部门表的建立: create table department ( eno char(20) not null PRIMARY KEY foreign key references employee(eno), dno char(20) NOT NULL, position char(20) 7 ) 2、视图的建立: (1)、员工及部门信息视图: create view view_employee as select employee.eno as 员工号,ename as 姓名,sex as 性别,age as 年龄, edu as 学历,address as
8、 住址,tel as 联系电话,birth as 出生年月, position as 职位,dno as 部门号 from employee,department where employee.eno=department.eno 8 2、创建索引: create unique clustered index ix_eno on employee(eno desc) create unique clustered index ix_sno on salary(eno desc) create unique clustered index ix_dno on department(eno des
9、c) 4、存储过程的建立: (1)、插入员工信息: create proc input_employee ( 员工号 char(20), 姓名 char(20), 性别 char(2), 年龄 int, 学历 char(10), 住址 char(50), 电话 char(20), 生日 datetime, ) as 9 insert into employee values(员工号,姓名,性别,年龄,学历,住址,电话,生日) (2)、插入职称信息: create proc input_position ( 员工号 char(20), 职位 char(10), 所属部门 char(20) ) a
10、s insert into position values(员工号,职位,所属部门) 10 (3)、插入部门信息: create proc input_department ( 员工号 char(20), 部门号 char(20), 职务 char(20) ) as insert into department values(员工号,部门号,职务) 11 (4)、更改员工信息: create procedure update_employee ( 员工号 char(5), 姓名 char(20), 性别 char(2), 年龄 int, 学历 char(10), 住址 char(50), 电话
11、 char(20), 生日 datetime ) as if EXISTS(select * from employee where eno=员工号) BEGIN update employee set ename=姓名,sex=性别,age=年龄,edu=学历,address=住址,tel=电话,birth=生日 where 员工号=employee.eno END else print 没有找到该员工,请核对是否存在 12 (5)、更改部门信息: create proc update_department ( 员工号 char(20), 部门号 char(20), 职务 char(20)
12、) as if EXISTS(select * from department where eno=员工号) BEGIN update department set dno=部门号,position=职务 where 员工号=department.eno END else print 没有找到该员工,请核对是否存在 13 (7)、删除员工所有信息: create procedure delete_info ( 员工号 char(20) ) as delete from employee where eno=员工号 delete from salary where eno=员工号 delete
13、from department where eno=员工号 5、触发器的建立: 6、创建一个触发器,向employee中插入一条记录,自动显示employee表中的记录 create trigger ChuFa on employee for insert as select* 14 from employee 6、系统调试与结果: (1)、简单查询 、(2)使用多表查询鼬的职位 (3)使用子查询,查询与鼬相同学历的人的名字,性别,年龄 15 (4)将employee表中的员工年龄全部加一岁 (5)按职称统计人员数量 (6)在employee中添加一条记录(95008,长门,男,25,博士,china,6533344,1994-2-1) 16 七、实验总结 通过本次实验,加深的了对关系数据库的原理及应用的认识: 1. 主键是多张二维表之间联系的关键。找对主键,能使表及存储过程,触发器的建立变得更加简单和规范。 2. 在删除表的同时,也相应删除了先前绑定的触发器。 3. 做好前期准备工作,能让建表等工作更容易。在需要做赋值等运算时,声明几个变量会使代码简单许多。 八、心得体会: 通过本次人力资源管理系统数据库课程设计,让我了解了很多知识上的不足。锻炼了上机操作的能力。明白了建一个数据库系统是一个非常复杂的问题,要考虑许多问题,一定要想的周全。拓展了我的知识,收获颇丰 17
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1