数据库人事管理系统课程设计报告(共27页).doc

上传人:飞****2 文档编号:13525567 上传时间:2022-04-29 格式:DOC 页数:27 大小:152.50KB
返回 下载 相关 举报
数据库人事管理系统课程设计报告(共27页).doc_第1页
第1页 / 共27页
数据库人事管理系统课程设计报告(共27页).doc_第2页
第2页 / 共27页
点击查看更多>>
资源描述

《数据库人事管理系统课程设计报告(共27页).doc》由会员分享,可在线阅读,更多相关《数据库人事管理系统课程设计报告(共27页).doc(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上课程设计任务书设计题目:人事管理系统设计学生姓名课程名称数据库原理课程设计专业班级地 点起止时间设计内容及要求内容: 学生根据本课程设计指导书中的题目,进行设计。 (1)设计友好的登录界面,完成用户身份检验。可以提供对各种窗日的外观进行设计,可以提供用户进行外观选择。(2)企业新员工各种信息的输入、修改、删除等,包括员工基本信息、学历信息、婚姻状况、职称等。(3)数据库信息维护,即员工各种数据信息的备份。(4)对于转出、辞职、退休员工信息的删除。(5)按照一定的条件,查询、统计符合条件的员工信息;至少应该包括每个员工详细信息的查询、按婚姻状况查询、按学历查询、按工作岗

2、位查询等,至少应该包括按学历、婚姻状况、岗位、参加工作时间等统计各自的员工信息;(6)对查询、统计的结果打印输出。(7)按照部门将现有员工进行分类,查看各个部门现有员工的平均年龄,根据各部门工作量的大小,较好地进行人事调度。另外可以帮助领导做出招聘新员工人数的决定。(8)可供其他人使用帮助。要求: 按照数据库系统开发步骤进行数据库概念结构设计、逻辑结构设计、物理结构设计,使学生掌握数据库应用软件的开发流程,SQL语句的使用和存储过程的使用。设计参数至少5个表结构;5个存储过程;5个触发器;5个视图、2处使用事务处理、3处使用游标过程报告格式规范进度要求19.1 讲课 阅读分析任务书 制订设计计

3、划19.2-3 需求分析 概念结构设计19.4-5 概念结构设计准备文挡20.1-3逻辑结构设计物理结构设计20.4-5写文挡答辩交设计报告书参考资料1雷亮等数据库原理课程设计指导书2王珊、萨师煊数据库系统概述(第四版) 北京:高等教育出版社2006。3C.J.Date著孟小峰、王珊等译数据库系统导论(第8版) 北京:机械工业出版社.2007。4陈根才等. 数据库课程设计浙江浙江大学出版社2007其它说明.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。.若填写内容较多可另纸附后。3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。教研室主任:

4、 指导教师: 摘要 在现代化的社会中,无论是大型企业还是中小型企业,都必不可少地会涉及到人事管理的问题。一个完善的人事管理系统对企业的发展有着至关重要的作用。 人事管理系统分为6个模块,基本信息管理模块、退休员工信息管理模块、部门信息管理模块、学历信息管理模块、家庭信息管理模块和职称信息管理模。本系统采用SQL Server 2008作为数据库。在实现数据库部分功能时要求写出存储过程、触发器和视图。关键词:人事管理 SQL Server 2008 触发器 存储过程 视图 事务处理 游标专心-专注-专业目录1 需求分析1.1 系统目标设计 使企业可以实现规范化的管理。 推动企业劳动人事管理走向科

5、学化、现代化,适应现代企业制度的要求。 使管理员可以很简单地完成日常的管理工作,例如新员工的加入、老员工的退休等。 支持企业进行劳动人事管理及其相关方面的科学决策,如企业领导根据现有职工的数目决定招聘的人数等。1.2 系统功能分析根据现代企业的情况,本系统要求应能完成以下主要功能: 设计友好的登录界面,完成用户身份检验。可以提供对各种窗口的外观进行设计,可以提供用户进行外观选择。 企业新员工各种信息的输入、修改、删除等,包括员工基本信息、学历信息、婚姻状况、职称等。 数据库信息维护,即员工各种数据信息的备份。 对于转出、辞职、退休员工信息的删除。 按照一定的条件,查询、统计符合条件的员工信息;

6、至少应该包括每个员工详细信息的查询、按婚姻状况查询、按学历查询、按工作岗位查询等,至少应该包括按学历、婚姻状况、岗位、参加工作时间等统计各自的员工信息; 对查询、统计的结果打印输出。 按照部门将现有员工进行分类,查看各个部门现有员工的平均年龄,根据各部门工作量的大小,较好地进行人事调度。另外可以帮助领导作出招聘新员工人数的决定。 可供其他人使用帮助。1.3 功能模块分析 根据系统功能的基本要求,可对整个系统划分为几个模块人事管理系统员工基本信息退休员工基本信息部门信息管理学历信息管理家庭信息管理职称评定管理学历信息录入及维护学历信息的查询家庭信息录入及维护职称评定的录入与维护职称评定那个的查询

7、员工信息查询员工基本信息录入及维护员工信息的维护及查询部门信息录入及维护部门信息的查询家庭信息录的查询图1.1 功能模块分析1.4 系统全局数据流图 系统的全局数据流图,也称第一层数据流图,是从整体上描述系统的数据流,反映系统数据的整体流向,给设计者、开发者和用户一个总体描述。图1.2 数据流图1.5 数据字典表1.1 员工基本信息表(worker_info)名称数据类型说明Worker_novarchar(15)员工编号 关键字Worker_namevarchar(8)员工姓名Sexvarchar(2)性别Birthdaydate出生日期Agesmallint年龄IDvarchar(18)身

8、份证号Department_namevarchar(15)部门Postvarchar(8)职位Phonevarchar(11)电话Work_datedate工作时间Worker_ typevarchar(8)员工类型表1.2离退休员工(tui_info)名称数据类型说明Worker_novarchar(15)员工编号 关键字Worker_namevarchar(8)员工姓名Sexvarchar(2)性别Birthdaydate出生日期Agesmallint年龄IDvarchar(18)身份证号Department_namevarchar(15)部门Postvarchar(8)职位Phoneva

9、rchar(11)电话Work_datedate工作时间表1.3部门基本信息表(Department_info)名称数据类型说明Department_noVarchar(15)部门编号 关键字Department_namevarchar(15)部门名称manager_novarchar(15)经理编号WorkeloadFloat(2)工作量(%)Real_numberInt现人数Need_numberInt所需人数表1.4 学历信息(degree_info)名称数据类型说明Degree_noVarchar(15)学历编号 关键字Worker_novarchar(15)员工编号Degreevar

10、char(4)学位MajorVarchar(8)专业Schoolvarchar(25)学校Graduate_datedate毕业时间表1.5 家庭信息(home_info)名称数据类型说明Home_noVarchar(15)家庭编号 关键字Worker_novarchar(15)员工编号Marriage_infovarchar(4)婚姻状况Home_numbersmallint家庭人数Home_phonevarchar(8)家庭电话Home_addressvarchar(50)家庭住址表1.6职称信息(Pro_info)名称数据类型说明Pro_noVarchar(15)职称编号 关键字Work

11、er_novarchar(15)员工编号Assess_datedatetime评定日期Assess_unitvarchar(20)评定单位Assess_titlevarchar(8)评定职称Remarkvarchar(200)备注2 概念结构设计2.1 构成系统的实体型由人事管理系统的数据流图和数据字典,抽取出系统的6个主要实体,包括:员工、部门、学历、家庭、职称评定信息、账号。员工实体型属性:Worker_no, Worker_name, Sex, Birthday, Age, ID, Department_name, Post, Phone, Work_date, Worker_ type

12、退休员工实体型属性:Worker_no, Worker_name, Sex, Birthday, Age, ID, Department_name, Post, Phone, Work_date, Worker_ type,tui_date部门实体型属性:Department_no,Department_name,manager_no,Workeload,Real_number,Need_number学历实体型属性:Degree_no,Worker_no,Degree,Major,School,Graduate_date家庭实体型属性:Home_no,Worker_no,Marriage_in

13、fo,Home_number,Home_phone,Home_address职称评定信息实体型属性:Pro_no, Worker_no, Assess_date, Assess_unit, Assess_title, Remark2.2 人事管理系统E-R图图2.1人事管理系统E-R图3 逻辑结构设计3.1逻辑结构简介逻辑结构设计就是把概念结构设计阶段设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。 设计逻辑结构一般分为3步进行:(1) 将概念结构转换为一般的关系、网状、层次模型;(2) 将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换;(3) 对

14、数据模型进行优化。3.2 E-R图向关系模型的转换将E-R图转换为关系模型实际上就是要将实体型、实体的属性和实体型间的联系转换为关系模式,这种转换一般遵循如下原则:一个实体型转换为一个关系模式。实体的属性就是关系的属性,实体的码就是关系的码。对于实体间的联系则有以下不同的情况:(1)一个1:1联系可以转换为一个独立的关系模式,也可以与任意一断对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的试题的码以及联系本身的属性均转换为关系的属性,每个实体的码均为该关系的候选码。如果与某一端实体对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。(2)一个

15、1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。(3)一个m:n联系转换为一个关系模式。与该联系相连的饿个实体的码以及联系本身的属性均转换为关系的属性,个实体的码组成关系的码或关系码的一部分。(4)3个或3个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。(5)具有相同码的关系模式可合并。4物理模型设计数据库物理设计是将逻辑设计影射到存储介质上,利

16、用可用的硬件和软件功能尽可能快地对数据进行物理访问和维护。4.1定义数据库SQL Server 2008数据库文件分为3中类型:主数据文件、次数据文件和日志文件。通过SQL语言进行数据库创建,创建数据库的语句如下:Create database 人事管理系统;4.2 创建存储过程4.21在员工基本信息表,家庭信息表,学历信息表,职称评定表,创建一个插入员工信息的存储过程:create procedure insertworker Worker_no varchar(15) ,-工号 Worker_name varchar(8) ,-姓名 Sex varchar(2) ,-性别 Birthday

17、 date ,-出生年月 ID varchar(18) ,-身份证号 Department_name varchar(15) ,-部门 post varchar(8) ,-职位 phone varchar(11) ,-电话 work_date date ,-工作时间 Worker_type varchar(8) , -员工类型 Degree_no varchar(15) , -学位号 Degree varchar(4) ,-学位 Major varchar(25) ,-专业 School varchar(25) ,-毕业学校 Gradute_date date , -毕业时间 Home_no

18、varchar(15) ,-家庭编号 Marriage_info varchar(4) ,-婚姻状况 Home_number smallint ,-家庭人口 Home_phone varchar(11) ,-家庭电话 Home_address varchar(50) ,-家庭地址 Pro_no varchar(15) ,-职称编号 Assess_date date ,-评定日期 Assess_unit varchar(20) ,-评定单位 Assess_title varchar(8) ,-评定职称 Remark varchar(200) -备注 as -插入员工信息 insert into

19、worker_info(Worker_no,Worker_name,Sex,Birthday,age,ID,Department_name,post,phone,work_date,Worker_type) values (Worker_no,Worker_name,Sex,Birthday,FLOOR(datediff(DY,Birthday,getdate()/365.25),ID,Department_name,post,phone,work_date,Worker_type) -插入职称信息 insert into Pro_info(Pro_no,Worker_no,Assess_da

20、te,Assess_unit,Assess_title,Remark) values (Pro_no,Worker_no,Assess_date,Assess_unit,Assess_title,Remark) -插入家庭信息 insert into home_info(Home_no,worker_no,Marriage_info,Home_number,Home_phone,Home_address) values (Home_no,worker_no,Marriage_info,Home_number,Home_phone,Home_address) -插入学历信息 insert int

21、o degree_info(Degree_no,Worker_no,Degree,Major,School,Gradute_date) values (Degree_no,Worker_no,Degree,Major,School,Gradute_date) 4.22在部门基本信息表中创建插入部门信息的存储过程:create procedure add_department Department_no varchar(15) , Department_name varchar(15) , Manager_no varchar(15) , Workeload float(2) , Real_nu

22、mber smallint , Need_number smallint as insert into department_info(Department_no,Department_name,Manager_no,Workeload,Real_number,Need_number) values (Department_no,Department_name,Manager_no,Workeload,Real_number,Need_number)4.23在部门基本信息表中创建更新部门信息的存储过程:create procedure update_department Department_

23、name varchar(15) , Manager_no varchar(15) , Workeload float(2) , Need_number smallint as update department_info set Manager_no=Manager_no, Workeload=Workeload, Need_number=Need_number where Department_name=Department_name;4.24创建当一个员工辞职时删除该信息,当一个员工退休时,将基本信息复制到退休表中,其他信息删除的存储过程CREATE PROCEDURE worker_t

24、ypeworker_no varchar(15),worker_type varchar(4)ASBEGINSET NOCOUNT ON;IF worker_type=辞职 BEGIN delete from worker_info where worker_no=worker_no ENDIF worker_type=退休 BEGIN INSERT INTO tui_info(Worker_no,Worker_name,Sex,Birthday,Age,ID,Department_name,Post,Phone,Work_date,Tui_date) SELECT Worker_no,Wor

25、ker_name,Sex,Birthday,FLOOR(datediff(DY,Birthday,getdate()/365.25),ID,Department_name,Post,Phone,Work_date,GETDATE() FROM worker_info WHERE Worker_no=Worker_no; DELETE FROM worker_info WHERE Worker_no=Worker_no; ENDEND4.25创建更新家庭信息表、学历信息、职称信息的存储过程create procedure update_home Worker_no varchar(15) ,-工

26、号 Marriage_info varchar(4) ,-婚姻状况 Home_number smallint ,-家庭人口 Home_phone varchar(11) ,-家庭电话 Home_address varchar(50) -家庭地址 as update home_info set Marriage_info=Marriage_info, Home_number=Home_number, Home_phone=Home_phone, Home_address=Home_address where Worker_no=Worker_no; -更新学历信息 create procedur

27、e update_degree Worker_no varchar(15) ,-工号 Degree varchar(4) ,-学位 Major varchar(25) ,-专业 School varchar(25) ,-毕业学校 Gradute_date date -毕业时间 as update degree_info set Degree=Degree, Major=Major, School=School, Gradute_date=Gradute_date where Worker_no=Worker_no; -更新职称信息 create procedure update_pro Wor

28、ker_no varchar(15) ,-工号 Assess_date date ,-评定日期 Assess_unit varchar(20) ,-评定单位 Assess_title varchar(8) -评定职称 as update pro_info set Assess_date=Assess_date, Assess_unit=Assess_unit, Assess_title=Assess_title where Worker_no=Worker_no;4.26创建某部门平均年龄的存储过程create procedure avg_age Department_name varchar

29、(15)asselect AVG(Age)from worker_info where Department_name=Department_name4.27按学历查询-学历查询create procedure search_degreename varchar(4)asbegindeclare search_degree cursor for select worker_no from degree_info where worker_no in(select Worker_no from degree_info where Degree=name)open search_degreedec

30、lare no1 varchar(15) fetch next from search_degree into no1while FETCH_STATUS = 0begin select worker_info.Worker_name,worker_info.Department_name,home_info.Marriage_info,degree_info.Major,degree_info.degree,worker_info.Work_date from worker_info,degree_info,pro_info,home_info where worker_info.Worke

31、r_no=no1 and home_info.Worker_no=no1and pro_info.Worker_no=no1 and degree_info.Worker_no=no1fetch next from search_degree into no1endclose search_degreedeallocate search_degreeend4.27按部门查询create procedure search_departmentname varchar(15)asbegindeclare search_department cursor for select worker_no f

32、rom worker_info where Department_name=nameopen search_departmentdeclare no1 varchar(15) fetch next from search_department into no1while FETCH_STATUS = 0begin select worker_info.Worker_name,worker_info.Department_name,home_info.Marriage_info,degree_info.Major,worker_info.Work_date from worker_info,de

33、gree_info,pro_info,home_info where worker_info.Worker_no=no1 and home_info.Worker_no=no1and pro_info.Worker_no=no1 and degree_info.Worker_no=no1fetch next from search_department into no1endclose search_departmentdeallocate search_departmentend4.29按婚姻状况查询create procedure search_marriagename varchar(1

34、5)asbegindeclare search_marriage cursor for select worker_no from home_info where worker_no in(select Worker_no from home_info where marriage_info=name)open search_marriagedeclare no varchar(15) fetch next from search_marriage into nowhile FETCH_STATUS = 0begin select * from worker_info,degree_info,

35、pro_info,home_info where worker_info.Worker_no=no and home_info.Worker_no=noand pro_info.Worker_no=no and degree_info.Worker_no=nofetch next from search_marriage into noendclose search_marriagedeallocate search_marriageend4.3 创建触发器4.31定义一个触发器,当在数据库中插入一条员工信息后,触发相应的部门人数加1create trigger insert_worker o

36、n worker_info after insert as begin update department_info set department_info.Real_number = department_info.Real_number + 1 from department_info as department_info,inserted as worker_info where department_info.Department_name=worker_info.Department_name end;4.32定义一个触发器,当在数据库中删除一条员工信息后,触发相应的部门人数减1 c

37、reate trigger delete_worker on worker_info after delete as begin update department_info set department_info.Real_number = department_info.Real_number - 1 from department_info as department_info,deleted as worker_info where department_info.Department_name=worker_info.Department_name end; delete from

38、worker_info where worker_no=j1;4.33定义一个触发器,当在数据库中员工所属的部门更改后,触发转出的部门人数减1,转入的部门人数加1create trigger update_worker on worker_info after update as IF(UPDATE(Department_name) begin -转出的部门人数减 update department_info set department_info.Real_number = department_info.Real_number - 1 from department_info as dep

39、artment_info,deleted as worker_info where department_info.Department_name=worker_info.Department_name -转入的部门人数加 update department_info set department_info.Real_number = department_info.Real_number + 1 from department_info as department_info,inserted as worker_info where department_info.Department_na

40、me=worker_info.Department_name end;4.34定义一个触发器,当在数据库中删除一个员工的基本信息时连带删除该员工的职称,学历,家庭信息 create TRIGGER del_worker ON worker_info for DELETEAS BEGINdelete home_info From home_info as home_info , deleted as worker_info Where home_info.worker_no= worker_info.worker_noENDBEGINdelete degree_info From degree_

41、info as degree_info , deleted as worker_info Where degree_info.worker_no=worker_info.worker_noENDBEGINdelete pro_info From pro_info as pro_info , deleted as worker_info Where pro_info.worker_no=worker_info.worker_noEND4.35创建一个触发器,检查部门员工是否已满,满人则不进行操作 create Trigger check_departmenton department_infof

42、or updateasIF(UPDATE(Real_number)begin declare size smallint, MaxSize smallint, Department_name varchar(15) select department_name =department_name from inserted select MaxSize =Need_number ,size = Real_number from department_info where department_name = department_name begin if( size MaxSize ) begin print 该部门员工已满 rollback Transaction return ; end endend 4.36创建一个触发

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁