当前位置:文档之家› 人力资源管理人力资源管理系统数据库的设计与实现

人力资源管理人力资源管理系统数据库的设计与实现

(人力资源管理)人力资源管理系统数据库的设计与实现《关系数据库原理及应用》课程设计实验方案一、实验思路1.系统需求分析通过对某公司的实地调查,了解到该公司的人力资源管理仍停留于完全的人工管理阶段,没有标准的人事管理存档信息。

这种人工管理方式费时、费事、费力,导致工作效率底下。

开发出合适的人力资源管理系统,可方便人力资源的管理,提高该公司管理的效率。

I.需求分析阶段的目标(1)了解目前企业人力资源管理现状以及SQL2000的功能和特点。

(2)通过实地调查和问答-记录的方式了解企业人力资源管理的业务流程,且记录和处理关联数据。

(3)和指导教师交流个人想法,改正不合理的地方,为下面的概念设计和逻辑设计奠定基础。

II.需求分析阶段的任务(1)处理对象1.员工基本信息(employee):包括员工号,姓名,性别,年龄,学历,住址,电话,出生年月,部门编号,职位编号,2.员工工资信息(salary,basicsalary,additional):包括员工号,基本工资,补贴,应发工资,以及所交税。

3.公司部门职务信息(position,department):包括员工号,员工的职位和所属部门。

III.数据字典(1)数据项系统涉及的数据有项。

见下表。

(2)数据结构数据结构见下表:二、实验过程1.概念设计阶段I.概念模型设计(1)根据不同对象,分别画出其E-R图。

各实体间关系的E-R图,如下图所示:各实体间关系的E-R图员工基本信息的E-R图,如下图所示:员工基本信息的E-R图工资信息的E-R 图,如下图所示:工资信息的E-R 图职务信息和部门信息的E-R 图:E-R 图 补贴信息和基本工资信息的E-R 图: E-R 图(2) 各E-R 图中每个实体的属性如下:员工:employee(eno,ename,sex,age,edu,address,tel,birth,dno,pno)。

职位:position(pno,pname) 部门:department(dno,dname)员工工资:salary(eno,salary,realsal,addid,basicid,tax) 补贴:additional(addid,addmoney) 基本工资:basicsalary(basicid,basicsal)(3) 合且各E-R 图,消除属性冲突,命名冲突,结构冲突等3类冲突,得到初步E-R 图,再消除不必要的冗余,得到基本E-R 图,如下所示:人力资源管理基本E-R图II.新系统流程新系统流程图,如下图所示:2.逻辑设计阶段I.将E-R图转换为关系模型员工:employee(eno,ename,sex,age,edu,address,tel,birth,dno,pno)。

职位:position(pno,pname)部门:department(dno,dname)员工工资:salary(eno,salary,realsal,addid,basicid,tax)补贴:additional(addid,addmoney)基本工资:basicsalary(basicid,basicsal)II.数据库模式定义(1)员工(employee)基本信息表,用于记录员工的基本信息。

员工基本信息表(2)补贴(additional)信息表,记录不同等级的补贴钱数。

补贴信息表(3)基本工资(basicsalary)信息表,记录不同等级的基本工资钱数。

基本工资信息表(4)部门(department)信息表,记录部门名称。

部门信息表(5)职位(position)信息表,记录职位名称。

职位信息表(6)员工工资(salary)信息表,记录员工的工资情况。

员工工资信息表III.系统功能模块系统功能模块图3.数据库实施阶段I.建立数据库和数据表Createdatabaseemployee_management;(1)员工基本信息表的建立createtableemployee(enochar(20)PRIMARYKEY,pnamechar(10)NOTNULL,sexchar(2)NOTNULL,ageintNOTNULL,educhar(10),addresschar(50),telchar(20),birthdatetimeNOTNULL,pnochar(20)NOTNULL,dnochar(20)NOTNULL)(2)工资基本信息表的建立createtablesalary(enochar(20)PRIMARYKEY,salaryfloat,realsalfloat,addidchar(20)NOTNULL,basicidchar(20)NOTNULL)(3)部门信息表的建立createtabledepartment(dnochar(20)PRIMARYKEY,dnamechar(20)NOTNULL,)(4)职务信息表的建立createtableposition(pnochar(20)PRIMARYKEY,pnamechar(20)NOTNULL,)(5)补贴表的建立createtableadditional(addidchar(20)PRIMARYKEY,addmoneyfloatNOTNULL)(6)基本工资表的建立createtablebasicsalary(basicidchar(20)PRIMARYKEY,basicsalfloatNOTNULL)II.建立视图(1)员工信息视图:createviewview_employeeasselectenoas员工号,employee.pnameas姓名,sexas性别,ageas年龄,eduas学历,addressas住址,telas联系电话,birthas出生年月,position.pnameas职位,department.dnameas部门fromemployee,position,departmentwhereemployee.pno=position.pnoandemployee.dno=department.dno(2)工资信息视图:createviewview_salaryasselectemployee.pnameas姓名,salaryas应发工资,realsalas实发工资,addmoneyas补贴,basicsalas 基本工资,taxas税fromsalary,additional,basicsalary,employeewheresalary.addid=additional.addidandbasicsalary.basicid=salary.basicidandemployee.eno= salary.eno(3)全部信息视图:createviewview_allinfoasselectemployee.enoas员工号,employee.pnameas姓名,sexas性别,ageas年龄,eduas学历,addressas住址,telas联系电话,birthas出生年月,position.pnameas职位,department.dnameas 部门,salaryas应发工资,realsalas实发工资,addmoneyas补贴,basicsalas基本工资,taxas税fromsalary,additional,basicsalary,employee,position,departmentwhereemployee.pno=position.pnoandemployee.dno=department.dnoandsalary.addid=addi tional.addidandbasicsalary.basicid=salary.basicidandemployee.eno=salary.enoIII.数据入库员工信息采取用Excel导入的方式录入数据。

这种录入方式方便快捷,适合大量数据的录入。

IV.创建各功能的存储过程(1)存储过程:插入员工信息createprocedureinput_employee(@员工号char(20),@姓名char(20),@性别char(2),@年龄int,@学历char(10),@住址char(50),@电话char(20),@生日datetime,@职位号char(20),@部门号char(20))asinsertintoemployeevalues(@员工号,@姓名,@性别,@年龄,@学历,@住址,@电话,@生日,@职位号,@部门号)(2)存储过程:插入工资信息createprocedureinput_salary(@员工号char(20),@补贴号char(20),@基本工资号char(20),@税float)asinsertintosalaryvalues(@员工号,0,0,@补贴号,@基本工资号,@税)(3)存储过程:更新员工信息createprocedureupdate_employee(@员工号char(5),@姓名char(20),@性别char(2),@年龄int,@学历char(10),@住址char(50),@电话char(20),@生日datetime,@职位号char(20),@部门号char(20))asifEXISTS(select*fromemployeewhereeno=@员工号)BEGINupdateemployeesetpname=@姓名,sex=@性别,age=@年龄,edu=@学历,address=@住址,tel=@电话,birth=@生日,pno=@职位号,dno=@部门号where@员工号=employee.enoENDelseprint'不存于的员工'(4)存储过程:更新工资信息createprocedureupdate_salary(@员工号char(20),@补贴号char(20),@基本工资号char(20),@税float)asifEXISTS(select*fromemployeewhereeno=@员工号)BEGINupdatesalarysetaddid=@补贴号,basicid=@基本工资号,tax=@税where@员工号=salary.enoENDelseprint'不存于的员工'(5)存储过程:指定员工号删除信息createproceduredelete_info(@员工号char(5))asdeletefromemployeewhereeno=@员工号deletefromsalarywhereeno=@员工号V.创建触发器(1)触发器:计算应发工资和实发工资createtriggersalcalonsalaryforinsert,updateasDECLARE@bscsalfloatdeclare@additionalfloatselect@additional=addmoneyfromadditionalwhereaddidin(selectaddidfrominseted) select@bscsal=basicsalfrombasicsalarywherebasicidin(selectbasicidfrominserted) updatesalarysetrealsal=@additional+@bscsalwhereaddidin(selectaddidfrominserted)VI.创建和绑定规则(1)创建规则:性别限定createrulesex_ruleas@sex='男'or@sex='女'(2)创建规则:年龄限定createruleage_ruleas@age<=99and@age>=0(3)创建规则:工资限定createrulesalary_ruleas@salary>0(4)绑定规则sp_bindrulesex_rule,'employee.sex'sp_bindruleage_rule,'employee.age'sp_bindrulesalary_rule,'additional.addmoney'sp_bindrulesalary_rule,'basicsalary.basicsal'4.系统的调试和测试I.查见各表的基本数据(借助视图查询)(1)查见员工信息:查见员工信息(2)查见工资信息:查见工资信息II.检测各存储过程的功能(1)验证存储过程:input_salary(插入基本工资信息)存储过程:input_salary(插入基本工资信息) (2)验证存储过程:input_employee(插入员工基本信息)存储过程:input_employee(插入员工基本信息) (3)验证存储过程:update_employee(修改员工基本信息)存储过程:update_employee(修改员工基本信息) (4)验证存储过程:update_salary(修改基本工资信息)存储过程:update_salary(修改基本工资信息) (5)验证存储过程:delete_info(指定员工号删除员工信息)存储过程:delete_info(指定员工号删除员工信息)三、实验总结通过本次实验,加深的了对关系数据库的原理及应用的认识:1.主键是多张二维表之间联系的关键。

相关主题