课程设计报告.docx

上传人:b****5 文档编号:5612754 上传时间:2022-12-29 格式:DOCX 页数:18 大小:308.68KB
下载 相关 举报
课程设计报告.docx_第1页
第1页 / 共18页
课程设计报告.docx_第2页
第2页 / 共18页
课程设计报告.docx_第3页
第3页 / 共18页
课程设计报告.docx_第4页
第4页 / 共18页
课程设计报告.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

课程设计报告.docx

《课程设计报告.docx》由会员分享,可在线阅读,更多相关《课程设计报告.docx(18页珍藏版)》请在冰豆网上搜索。

课程设计报告.docx

课程设计报告

课程设计报告

 

课程设计题目:

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

 

专业:

软件工程

班级:

10211117

姓名:

刘新

学号:

1021111704

指导教师:

赵薇

 

2011年11月21日

目录

1、实验题目·········································

2、实验时间、地点·····································

3、实验目的············································

4、实验要求······································

5、实现思路·········································

6、实现过程·······································

7、实验总结······································

8、心得体会········································

 

一、实验题目

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

设计一个人力资源管理系统。

实现下列功能:

1、员工人事信息维护(包括信息录入,修改和删除等);

2、员工工资信息维护(包括信息录入,修改,删除和实发工资计算等);

3、员工综合信息(包括人事信息和工资信息)查询;

二、实验时间、地点

实验时间:

2011年11月21至2011年11月24日

实验地点:

软件楼505

三、实验目的

通过本次课程设计让我们能够综合运用所学的关系数据库原理知识。

巩固我们用SQL建数据库、建表对表的约束、查询、表的插入、修改、删除等技能。

用户权限,角色的创建和回收。

引、视图、规则、默认的创建、修改、绑定删除。

同时储存过程、触发器对表进行更深的管理。

并能设计一个实际问题,进一步掌握数据库原理的相关理论和数据库的设计实现过程,进一步提高我们的分析问题和解决问题的能力以及我们的动手能力。

四、实验要求

1.对各个系统进行系统的功能需求分析

2.数据库设计分析阶段,进行校内关系的数据库需求分析,进行概念数据库的设计,画出数据库的E-R图(局部和整体E-R图)。

3.设计出详细的逻辑数据库结构,将各个实体和联系转化为相应的二维表,即关系模式,指定各个关系的主关键字和外部关键字,并对各个关系的约束加以限定。

4.通过企业管理器或是查询分析器实现各个二维关系(建议最好使用SQL代码实现),要求建立相关的索引。

5.根据系统功能需求设计相应的查询视图。

6.要求根据系统功能需求建立存储过程

7.根据功能需求建立相应的触发器以保证数据的一致性。

8.通过建立用户权限分配实现数据库的一定安全性。

五、实现思路

1、系统需求分析:

1)析人力资源管理活,明确用户的力资源管理目标:

调查组织机构的情况,包括该组织的部门组成情况,各部门的职务和任务;调查各部门的业务活动,包括各个部门输入输出的数据格式,加工处理这些数据的步骤、输入输出的部门等。

收集分析需求数据、确定系统边界。

明确系统的各种需求,包括人息求、处理需求、安全性和完整性的需求等。

2)、明确任务和要处理的对象:

1)人事信息维护(包括信息录入,修改和删除等);员工基本信息(employee):

包括员工号,姓名,性别,年龄,学历,住址,电话,出生年月

2)工资信息维护(包括信息录入,修改,删除和实发工资计算等);员工工资信息(pay,salary,additional):

包括员工号,基本工资,附加工质,应发工资,以及所交税,实发工资。

3)综合信息(包括人事信息和工资信息)查询;公司部门职务信息(class,workday,department):

包括员工号,员工的职位、部门、考勤信息和所属部门。

3)、数据字典

1)系统设计的数据项:

数据项名

类型

取值范围

长度

别名

含义说明

与其他数据的关系

eno

Char

0~1000000000

10

员工号

主键

En

Char

20

姓名

不许为空

Sex

Char

男、女

4

性别

男、女

Age

int

0~100

4

年龄

Edu

Char

10

教育程度

Addr

Char

40

地址

Tel

Char

15

电话

Birth

Smalldatetime

1900/1/1~2079/6/6

4

出生日期

默认1991、1、1

Sal

Float

8

应发工资

默认0

Addmoney+bscsal

Tax

Decimal

0~1

5

税率

0.15

Sal-(sal*tax)

Rlsal

Float

8

实发工资

默认0

Job

Char

20

职务

Cno

Char

10

部门号

主键

为职务外键

Cn

Char

30

部门名

不许为空

Tel

Char

15

部门电话

Addr

Char

40

部门地址

Bscsal

Float

1500~99999

8

基本工资

1500

Days

Int

0~31

4

出勤天数

0~31

addmoney

float

0.0~99999

8

附加工资

每天一百

2)用户信息所涉及的数据:

中文字段名

字段名

数据类型

长度

字段说明

用户帐号

liuxin

Char

21

密码

123

Char

20

权限

db_owner

Char

20

(1)数据结构

数据结构见下表:

数据结构编号

数据结构名

数据结构含义

组成

DS-1

employee

员工基本信息

eno,en,sex,age,edu,

addr,tel,birth,

DS-2

department

职位信息

Eno,job,cno

DS-3

class

部门信息

Cno,cn

DS-4

pay

员工工资信息

eno,sal,rlsal,tex

basicid,tax

DS-5

additional

补贴信息

enoddmoney

DS-6

salary

基本工资信息

Eno,bscsal

DS-7

workday

考勤信息

Eno,ays

六、实现过程

1.概念模型设计

员工基本信息的E-R图,如下图所示

 

基本工资和附加工资信息的E-R图,如下图所示

 

职务信息和考勤信息E-R图

部门信息E-R图

工资信息E-R图

2)全局E-R模型设计

 

3)系统流程

系统流程图,如下图所示:

2.逻辑设计阶段

将E-R图转换为关系模型

每个实体的属性如下:

员工:

employee(eno,ename,sex,age,edu,address,tel,birth)。

职位:

department(eno,job,cno)

部门:

class(cno,cn,tel,addr)

考勤:

workday(eno,days)

附加工资:

additional(eno,addmoney)

基本工资:

salary(eno,bscsal)

实发工资:

pay(eno,sal,rlsal,tax)

3.数据库实施

--创建和使用数据库

Createddatabase人力资源管理

use人力资源管理

--系统权限授予

execsp_addlogin'liuxin','123','人力资源管理',null

execsp_adduser'liuxin','liuxin','db_owner'

grantcreatetable

toliuxin

--对象权限的授予

grantselect

onemployee

topublic

1)表的建立

--志愿信息表创建

createtableemployee

enochar(10)primarykey,--将员工号定义为主键

enchar(20)notnull,

sexchar(4),--通过规则只能为男或女

ageint,--取值在0—100之间

educhar(10),

addrchar(40),

telchar(15),

birthsmalldatetime

--工资表的创建

createtablepay

(enochar(8)primarykey,

salfloat,--应发工资(通过触发器基本工资加上附加工资自动获得)

taxdecimal,--税率

rlsalfloat--实发工资(通过触发器基本工资加上附加工资减去缴税额自动获得)

--职位表的创建

createtabledepartment

enochar(8)primarykey,

jobchar(20),

cnochar(10)referencesclass(cno)—定义为部门表的外键

--部门表的创建

createtableclass

cnochar(10)primarykey,

cnchar(30)notnull,

telchar(15),

addrchar(40)

--基本工资

createtablesalary

enochar(10)primarykey,

bscsalfloat--基本工资默认为1500

--考勤表

createtableworkday

enochar(20)primarykey,

daysint–当插入天数时会自动计算出附加工资

--附加工资

createtableadditional

enochar(8)PRIMARYKEY,

addmoneyfloat--默认为0元,依据考勤天数自动获得,(每天一百元)

2)规则的创建

--创建规则:

性别限定

createrulesex_rule

as@sex='男'or@sex='女'

--创建规则:

年龄限定

createruleage_rule

as@age<=99and@age>=0

 

--绑定规则

execsp_bindrule'sex_rule','employee.sex'

execsp_bindrule'age_rule','employee.age'

3)默认的创建

createdefaultbirthday_def—默认出生日期的创建

as'1991-1-1'

createdefaultbasicsal_def—默认基本工资的创建

as'1500'

createdefaultadd_def—默认附加工资的创建

as'0'

createdefaultdays_def—默认出勤天数的创建

as'0'

createdefaulttax_def—默认税率的创建

as'0.15'

--默认的绑定

execsp_bindefaultadd_def,'additional.addmoney'

execsp_bindefaultbirthday_def,'employee.birth'

execsp_bindefaultdays_def,'workday.days'

execsp_bindefaulttax_def,'pay.tax'

execsp_bindefaultbasicsal_def,'salary.bscsal'

4)视图的创建

--员工信息视图:

包含员工的员工号、姓名、年龄、性别、学历、住址、联系电话、出生日期、职业部门

createviewview_employee

as

selectemployee.enoas员工号,employee.enas姓名,sexas性别,ageas年龄,eduas学历,employee.addras住址,employee.telas联系电话,birthas出生年月,department.jobas职位,as部门

fromemployee,department,class

whereemployee.eno=department.enoando=o

--工资信息视图:

包含了员工的姓名、应发工资、附加工资、基本工资、税率和实发工资

createviewview_pay

as

selectemployee.enas姓名,salas应发工资,rlsalas实发工资,addmoneyas附加工资,bscsalas基本工资,taxas税率

frompay,additional,salary,employee

whereemployee.eno=salary.enoandsalary.eno=pay.enoandpay.eno=additional.eno

--员工综合信息视图:

包含了员工的员工号、姓名、年龄、性别、学历、住址、联系电话、出生日期、职业部门、应发工资、附加工资、基本工资、税率和实发工资

createviewview_allinfo

as

selectemployee.enoas员工号,employee.enas姓名,sexas性别,ageas年龄,eduas学历,employee.addras住址,employee.telas联系电话,birthas出生年月,department.jobas职位,as部门,salas应发工资,rlsalas实发工资,addmoneyas附加工资,bscsalas基本工资,taxas税率,daysas考勤天数

fromsalary,additional,employee,pay,department,workday,class

whereemployee.eno=salary.enoandsalary.eno=pay.enoandpay.eno=additional.enoandadditional.eno=workday.enoandworkday.eno=department.enoando=o

5)存储过程的创建

--存储过程:

插入员工信息

同时保证了当在employee插入员工时,同时在salary,payadditional,workday,department表中也自动插入该员工号。

createprocedureinput_employee

@员工号char(10),

@姓名char(20),

@性别char(4),

@年龄int,

@学历char(10),

@住址char(40),

@电话char(15),

@生日smalldatetime

as

insertintoemployeevalues(@员工号,@姓名,@性别,@年龄,@学历,@住址,@电话,@生日)

insertintosalary(eno)values(@员工号)

insertintopay(eno)values(@员工号)

insertintoadditional(eno)values(@员工号)

insertintoworkday(eno)values(@员工号)

insertintodepartment(eno)values(@员工号)

--存储过程:

更新员工信息

createprocedureupdate_employee

@员工号char(10),

@姓名char(20),

@性别char(4),

@年龄int,

@学历char(10),

@住址char(40),

@电话char(15),

@生日smalldatetime

as

ifEXISTS(select*fromemployeewhereeno=@员工号)

BEGIN

updateemployee

seten=@姓名,sex=@性别,age=@年龄,edu=@学历,addr=@住址,tel=@电话,birth=@生日

where@员工号=employee.eno

END

else

print'不存在的员工'

--存储过程:

指定员工号删除信息同时也把salary,payadditional,workday,department表中的该员工信息删除。

createproceduredel_info

@员工号char(10)

as

delete

fromemployee

whereeno=@员工号

delete

frompay

whereeno=@员工号

delete

fromworkday

whereeno=@员工号

delete

fromdepartment

whereeno=@员工号

delete

fromadditional

whereeno=@员工号

delete

fromsalary

whereeno=@员工号

6)触发器的创建

--触发器:

确保修改一致性

createtriggeremp_tri

onemployee

forupdate

as

updateadditional

seteno=(selectenofrominserted)

whereeno=(selectenofromdeleted)

updateworkday

seteno=(selectenofrominserted)

whereeno=(selectenofromdeleted)

updatesalary

seteno=(selectenofrominserted)

whereeno=(selectenofromdeleted)

updatepay

seteno=(selectenofrominserted)

whereeno=(selectenofromdeleted)

updatedepartment

seteno=(selectenofrominserted)

whereeno=(selectenofromdeleted)

--触发器:

计算附加工资计,应发工资和实发工资

createtriggeradd_tri

onworkday

forupdate,insert

as

begin

updateadditional

setaddmoney=(selectdaysfrominserted)*100

whereeno=(selectenofrominserted)

updatepay

setsal=(selectbscsalfromsalarywhereeno=(selectenofrominserted))+(selectaddmoneyfromadditionalwhereeno=(selectenofrominserted))

whereeno=(selectenofrominserted)

updatepay

setrlsal=sal-sal*tax

whereeno=(selectenofrominserted)

end

4.数据的导入

取用Excel导入的方式录入数据。

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

在用excel建表时表名要和要SQL定义一致。

表里面的数据要符合SQL的数据类型和约束。

5.数据库的运行

--设置考勤,自动给出额外工资

updateworkday

setdays=24

whereeno='01'

updateworkday

setdays=29

whereeno='02'

updateworkday

setdays=30

whereeno='03'

updateworkday

setdays=25

whereeno='04'

updateworkday

setdays=27

whereeno='05'

updateworkday

setdays=20

whereeno='06'

--查看员工信息表

 

 

七、实验总结

八、心得体会

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 调查报告

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1