收藏 分销(赏)

人事管理系统设计—数据库原理与应用.doc

上传人:pc****0 文档编号:8668194 上传时间:2025-02-24 格式:DOC 页数:29 大小:4.43MB
下载 相关 举报
人事管理系统设计—数据库原理与应用.doc_第1页
第1页 / 共29页
人事管理系统设计—数据库原理与应用.doc_第2页
第2页 / 共29页
点击查看更多>>
资源描述
课 程 设 计 报 告 课程设计名称: 数据库原理与应用 系 部: 二 系 学生姓名: 韦 敏 班 级: 10信息与计算科学 学 号: 20100202111 成 绩: 指导教师: 陈林 开课时间: 2012-20一三 学年 1 学期 一.设计题目: 人事管理系统 二.主要内容:人事管理系统主要是针对企业单位内部组织结构和员工信息的管理,本系统的主要功能为:员工信息管理,部门信息管理,系统用户管理,故我们需要实现如下功能的建设: 1) 员工信息管理:每个部门的员工各种信息的添加,修改,删除,包括员工的基本信息、学历信息、职称等信息,以及查看符合各种条件的员工部分与总体信息; 2) 部门信息管理:查看部门信息,包括部门编号、部门名称、部门经理、部门简介等信息;具有更新部门的功能。 3) 系统用户管理:查看系统用户信息,包括用户名和用户类型(系统管理员和普通用户)等信息; 三.具体要求 1. 课程设计的内容独立自主完成,课程设计报告内容完整、格式规范、排版整洁美观; 2. 后台数据库采用MS SQL SERVER 2005,前台界面语言不限,编写的程序代码,须有较详细的注释说明; 四.进度安排 课程设计安排: 16周 星期一 讲解课程设计的内容,安排每一天的具体任务,分配并熟悉题目; 星期二 需求分析:给出系统的功能需求、性能需求,并绘制DFD和DD; 星期三 概念结构设计:绘制实体属性图(可选),局部ER图和全局ER图; 星期四 逻辑结构设计:转换、优化; 星期五 逻辑结构设计:外模式设计 17周 星期一 物理结构设计及数据库实施; 星期二 应用程序编制调试、整理课程设计报告; 星期三 应用程序编制调试、整理课程设计报告,并检查; 星期四 根据反馈结果修改课程设计报告; 星期五 课程设计答辩,交材料; 上交的材料:课程设计的电子稿、打印稿、源码(SQL代码和程序代码) 五.成绩评定 考核方法:现场验收(占50%),课程设计报告(占50%)。 考核内容:学习态度(出勤情况,平时表现等)、方案合理性、各阶段的图表与程序编制质量、设计报告质量。 成绩评定:优,良,中,及格,不及格。 特别说明:(1)如发现抄袭,按照不及格处理。 (2)材料不齐的,考核等级降一级。电子稿件以压缩文件的形式上交,压缩命名为:11位学号+姓名 正文撰写包含的内容: 1、 需求分析 2、 概念结构设计 3、 逻辑结构设计 4、 物理结构设计 5、 数据库实施及应用程序编制 6、 心得体会 7、 参考资料 正文: 题目:人事管理系统 第一章 系统概述 本文按照数据库系统设计的基本步骤,采取了事先进行需求分析,得出对应的数据流图和数据字典,再进行概念结构设计,逻辑结构设计和物理结构设计,最后通过运行和测试,成功完成了一个小型的人事管理系统的设计。最终,在SQL SEVER 2005上运行的人事管理系统,可以实现:员工各种信息的管理,员工所在部门信息的相关管理。 第二章 需求分析 2.1需求分析 通过对当前人事管理系统的相关调查,确定所做的人事管理系统功能的基本要求如下: Ø 员工各种信息的输入及修改,包括员工的基本信息、学历信息、职称等信息; Ø 员工所在的部门信息,包括部门名称、部门经理等信息; Ø 按照一定的条件,查询、统计符合条件的员工信息;包括每个员工详细信息的查询、按学历查询、按部门查询等,包括按学历、部门、参加工作时间等统计各自的员工信息; Ø 对于转出、辞职、辞退、退休员工信息的删除,并更新相应部门的统计信息。 2.2功能分析 人事管理系统主要是针对企业单位内部组织结构和员工信息的管理,本系统的主要功能为:员工信息管理,部门信息管理,系统用户管理,故我们需要实现如下功能的建设: 4) 员工信息管理:每个部门的员工各种信息的添加,修改,删除,包括员工的基本信息、学历信息、职称等信息,以及查看符合各种条件的员工部分与总体信息; 5) 部门信息管理:查看部门信息,包括部门编号、部门名称、部门经理、部门简介等信息;具有更新部门的功能。 6) 系统用户管理:查看系统用户信息,包括用户名和用户类型(系统管理员和普通用户)等信息; 2.3系统数据流程图 数据流图描述的是系统的逻辑模型,图中没有任何具体的物理元素,只是描绘信息在系统中流动和处理的情况。因为数据流图是逻辑系统的图形表示,即使不是专业的计算机技术人员也能容易理解。数据流图里的符号也极为简单,只有四个:1)外部实体;2)处理;3)连线;4)数据存储。这四个符号也有两种。一种是Yourdon & Coad法,另一种是Gane & Sarson法。只是略有不同而已。在这篇论文中,我们使用Microsoft Visio,故使用Gane & Sarson法。所对应的四个符号如图2.1所示: 图2.1 经过详细调查,了解到企业单位人事管理系统的业务流程,在此基础上,得出系统的逻辑模型,并用数据流图表示,情况如图2.2,图2.3所示: 图2.2 顶层数据流图 图2.3 0层数据流图 在上述人事管理系统数据流图中,员工档案管理功能还没具体实现,主要实现功能如图2.4所示: 图2.4 1层数据流图 综合0层数据流,得出最终的数据流图,如图2.5所示, 图2.5 总数据流图 2.4系统数据字典 人事管理系统数据流程图中,数据信息和处理过程还需要通过数据字典来描述。在本文的数据字典中,主要对数据流图中的数据项、数据结构、数据流、数据存储和处理过程进行说明。 2.4.1数据项 序号:1 名称:_name 含义:员工姓名 值域:varchar(10) 序号:2 名称:_no 含义:员工编号 值域:varchar(5) 序号:3 名称:_sex 含义:员工性别 值域:varchar(2) 序号:4 名称:_callnumber 含义:员工x 类型:int 序号:5 名称:_education 含义:员工学历 值域:varchar(10) 序号:6 名称:_position 含义:员工职称 值域:varchar(10) 序号:7 名称:dpt_no 含义:员工所在部门编号 值域:varchar(4) 序号:8 名称:_worktime 含义:员工参加工作时间 值域:varchar(20) 序号:9 名称:_infor_change 含义:工作变动 值域:varchar(4) 序号:10 名称:dpt_name 含义:部门名称 值域:varchar(20) 序号:11 名称:dpt_manager 含义:部门经理编号 值域:varchar(5) 序号:12 名称:dpt_no 含义:部门编号 值域:varchar(4) 序号:一三 名称:dpt_count 含义:部门人数 类型:int 序号:14 名称:dpt__abstract 含义:部门简介 值域:varchar(200) 序号:17 名称:users_name 含义:用户名 值域:varchar(10) 序号:一八 名称:users_pwd 含义:用户密码 值域:varchar(16) 序号:19 名称:_authority 含义:用户权限 值域:int 2.4.2 数据结构 序号:1 名称:员工信息表 组成:_name,_no,_sex,_callnumber,_education,_position,dpt_no,_worktime,_infor_change, 序号:2 名称:部门信息表 组成:dpt_name,dpt_manager,dpt_no,dpt_count,dpt__abstract 序号:3 名称:登录信息表 组成:users_name,users_pwd,_authority 2.4.3 数据流 1)数据流名称:员工情况 位置:员工→P1.1,员工→P1.2。 定义: 员工情况=姓名+性别+编号+学历+x+所在部门+参加工作时间+职称 。 数据流量:根据公司的员工具体录用情况来确定。 说明:要对每一位被聘用的新员工进行唯一编号。 2) 数据流名称:员工变动情况 位置:P1.5→D1,P1.5→D6。 定义:员工变动情况=员工号+变动前职位+变动原因+调动日期。 数据流量:根据公司的具体情况来确定。 说明:员工号可以唯一确定一个员工变动情况。 3) 数据流名称:用户情况 位置:用户→P3 定义:用户身份=员工编号 数据流量:根据公司的具体情况来确定。 说明:要对每一名用户建立唯一的账号。 4) 数据流名称:用户身份 位置:安全管理→{P1.1,P1.2,P1.3,P1.4,P1.5,P2} 定义:用户身份=[ 管理员 | 员工] 数据流量:根据公司的具体情况来确定。 说明:不同的用户身份对应不同的操作权限,对应着不同的安全级别。 5)数据流名称:部门情况 位置:部门→部门情况 定义: 部门情况=部门编号+部门名称+部门人数+部门简介+部门经理 数据流量:根据公司的具体情况来确定。 说明:部门编号是主码。 2.4.4数据存储 1) D1员工档案 输入:P1.1,P1.2,P1.5 输出:P1.2,P1.3,P1.4,P1.5 数据结构:员工档案=姓名+性别+学历+员工编号+x+所在部门编号+参加工作时间+职称+工作变动。 数据量和存取频度:根据公司的具体规模情况来确定。 存取方式:联机处理;检索和更新;以随机检索为主。 说明:员工编号具有唯一性和非空性;性别只能是男或女;主码是员工编号。 2) D2部门记录 输入:P2 输出:P2 数据结构:部门记录=部门编号+部门名称+部门人数+部门简介+部门经理。 数据量和存取频度:根据公司的具体规模情况来确定。 存取方式:联机处理;检索和更新;以检索操作为主。 说明:主码设为部门号。 3) D3用户记录 输入:P3 输出:P3 数据结构:用户记录=员工编号+管理员编号+密码+权限 数据量和存取频度:根据公司的具体规模情况来确定。 存取方式:联机处理;检索和更新;以更新操作为主。 说明:主码设为管理员编号。 4) D4员工相应信息 输入:P1.4 输出:P4 数据结构:员工相应信息=员工编号+学历+x+所在部门编号+参加工作时间+职称+工作变动。 数据量和存取频度:根据公司的具体规模情况来确定。 存取方式:联机处理;检索和更新;以更新操作为主。 说明:主码设为员工编号。 5) D5员工信息更新 输入:P1.5 输出:P2 数据结构:员工信息更新=员工编号+职称+工作变动+所在部门编号。 数据量和存取频度:根据公司的具体规模情况来确定。 存取方式:联机处理;检索和更新;以更新操作为主。 说明:主码设为员工编号。 2.4.5 数据处理 1) 处理过程编号:P1.1 处理过程名:员工信息录入 输入:员工 输出:员工档案 处理说明:根据员工基本信息员工进行信息录入,录入的结果存放到员工档案中。 2) 处理过程编号:P1.2 处理过程名:员工信息修改 输入:员工,员工档案 输出:员工档案 处理说明:根据员工基本信息以及员工档案进行信息修改,修改的结果存放到员工档案中。 3) 处理过程编号:P1.3 处理过程名:员工信息查看 输入:员工档案 输出:员工档案 4) 处理过程编号:P1.4 处理过程名:员工信息查询 输入:员工档案 输出:员工相应信息 5) 处理过程编号:P1.5 处理过程名:员工信息删除 输入:员工档案 输出:员工信息更新 6) 处理过程编号:P2 处理过程名:部门档案管理 输入:D5,部门信息 输出:部门记录 7) 处理过程编号:P3 处理过程名:安全管理 输入:用户情况 输出:用户记录 第三章 概念结构设计 根据系统需求分析,可以得出人事管理系统数据库的概念模型(信息模型),各类E-R图绘制如下: 图3.1 员工实体图 图3.2 部门实体图 图3.3 用户实体图 第四章 逻辑结构设计 4.1 E-R模型向关系模型的转换 将人事管理系统的E-R图转换为关系数据库的数据模型,其关系模式为: 员工(姓名,性别,员工编号,x,学历,职称,所在部门编号,参加工作时间,工作变动),其中,员工编号是主码,所在部门编号为引用“部门”关系模式的外码。 部门(名称,经理,部门编号,简介,员工人数),其中,部门编号是主码。 4.2 数据模型的优化 员工关系模式中,各个属性间函数依赖关系: 员工编号→姓名 员工编号→x 员工编号→学历 员工编号→职称 员工编号→所在部门编号 员工编号→参加工作时间 员工编号→工作变动 此关系属于第三范式。 部门关系模式中,各个属性间函数依赖关系: 部门编号→名称 部门编号→部门简介 部门编号→部门人数 部门编号→部门经理 此关系属于第三范式。 用户关系模式中,各个属性间函数依赖关系: 用户名→用户密码 用户名→权限 此关系属于第三范式。 4.3设计外模式 员工关系模式:员工(姓名,性别,员工编号,x,学历,职称,所在部门编号,参加工作时间,工作变动)。在此关系模式上建立了四个视图: 员工1(员工编号,姓名,学历) 员工2(员工编号,姓名,部门编号) 员工3(员工编号,姓名,参加工作时间) 员工4(员工编号,姓名,工作变动) 第五章 数据库结构的物理结构设计 数据库物理设计阶段的任务是根据具体计算机系统(DBMS和硬件等)的特点,为给定的数据库模型确定合理的存储结构和存取方法。所谓的“合理”主要有两个含义:一个是要使设计出的物理数据库占用较少的存储空间,另一个对数据库的操作具有尽可能高的速度。主要体现在后者。 数据库的物理结构设计大致包括:确定数据的存取方法、确定数据的存储结构。 5.1确定数据的存取方法 确定数据库的存取方法,就是确定建立哪些存储路径以实现快速存取数据库中的数据。现行的DBMS一般都提供了多种存取方法,如索引法、HASH法等。其中,最常用的是索引法。 本课程设计也采用索引的存取方法。 建立索引如下: (1) 对表 员工 在属性列 员工编号 建立非聚簇索引 (2) 对表 部门 在属性列 部门编号 建立非聚簇索引 5.2确定数据的存储结构 确定数据库的存储结构主要指确定数据的存放位置和存储结构,包括确定关系、索引、日志、备份等的存储安排及存储结构,以及确定系统存储参数的配置。 将日志文件和数据库对象(表、索引等)分别放在不同的磁盘,可以改进系统的性能,提高系统的安全性。所以,系统应将日志文件和数据文件存放在不同磁盘上。 第六章 数据库行为设计 到目前为止,我们详细讨论了数据库的结构设计问题,下面我们进行数据库的行为设计。 数据库行为设计一般分为如下几个步骤: 1) 功能分析 2) 功能设计 3) 事务设计 4) 应用程序设计与实现 6.1功能设计 将人事管理系统的功能需求转化为总功能结构图,(此处不分管理员和员工)如下所示, 图6.1 总功能结构图 第七章 数据库实施及应用程序编制 数据库实施阶段包括两项重要工作,一是加载数据,二是调试和运行程序。下面是具体实施。 7.1数据库实施 7.1.1加载数据如下所示: 图7.1 部门信息 图7.2 用户信息 7.1.2调试和运行程序如下: 进入系统,如图7.3所示: 图7.3 登陆界面 用户登录:输入用户名和密码,档案表中数据为:用户名as,密码:as,权限为管理员,当输入有误时,情况如图7.4: 如图7.4 输入正确时,如图7.5: 图7.5 用户登陆成功 单击确定,进入系统,拥有管理员权限,对各项需求功能实现如图7.6所示: (a) (b) (c) (d) 图7.6主界面功能图 7.1.2.1员工信息管理功能 每个部门的员工各种信息的添加,修改,删除,包括员工的基本信息、学历信息、职称等信息,以及查看符合各种条件的员工部分与总体信息;需求实现如下: 添加员工,如图7.7所示: (a) (b) 图7.7 添加员工窗口 点击员工信息查看,如图7.8所示: (a) (b) 图7.8 员工信息查看 继续添加,若添加员工编号和已有的员工重复,则弹出提示框,如图7.9所示: 图7.9 员工信息插入不成功 修改之后就可以添加成功,如图7.10所示: 图7.10 员工信息插入成功 查看员工信息,如图7.11所示: (a) (b) 图7.11 员工信息查看 员工信息修改功能,如图7.12所示: 图7.12 员工修改 检查员工信息是否修改成功,如图7.一三所示: (a) (b) (c) (d) 图7.一三 员工信息 说明已修改成功; 员工信息删除功能,如图7.14所示,弹出窗口,员工变动情况选择无,转出,将转出进行删除: (a) (b) (c) (d) 图7.14 员工删除过程 员工信息按条件查询,点击:详细,教育学历,工作时间,以及工作变动,如图7.一五所示: (a) (b) (c) (d) (e) (f) (g) 图7.16 员工信息查询 部门管理:添加部门信息,包括部门编号、部门名称、部门经理、部门简介等信息;具有更新部门的功能,演示情况如下:(部门中首先有一个经理,员工人数初值为1,部门信息更新后,员工人数可做相应修改) 点击信息查看和统计,如图7.17所示: 图7.17 部门信息 点击部门信息更新,进入更新界面,选择部门,进行更新,完成后,点击“请点击查看所有部门”按钮,即可看到更新后的数据,如图7.一八所示: (a) (b) (c) 图7.一八 员工信息更新 系统用户管理:查看系统用户信息,包括用户名和用户类型(系统管理员和普通用户)等信息; 点击用户档案查询,如图7.19所示: (a) (b) 图7.19 用户档案查询 以上即所有功能的实现演示。 点击退出按钮,离开人事管理系统,如图7.20所示: 图7.20 用户离开主界面 7.2应用程序编制 建立人事管理系统数据库,具体的SQL语句如下: 7.2.1数据库创建 create database PMS 7.2.2 基本表创建 建立员工表 use PMS create table employee( _name varchar(10) not null, _no varchar(5) primary key not null, _sex varchar(2), _callnumber varchar(11), dpt_no varchar(4), _education varchar(10), _position varchar(10), _worktime datetime, infor_change varchar(4), foreign key (dpt_no) references department(dpt_no)) 建立部门表 use PMS create table department( dpt_name varchar(20), dpt_manager varchar(5), dpt_no varchar(4) primary key, dpt_count int, dpt_abstract varchar(200)) 建立用户表 create table Users( Users_name varchar(10)primary key not null, Users_pwd varchar(16), _authority int) 7.2.3 视图编制 1)员工信息视图 create view V_v1(_no,_name,_education) as select _no,_name,_education from employe 2)员工部门信息视图 create view v_v2(_no,_name,dpt_no) as select _no,_name,dpt_no from employee 3)员工工作时间视图 create view V_v3(_no,_name,_worktime) as select _no,_name,_worktime from employee 4)员工工作信息视图 create view V_v4(_no,_name,infor_change) as select _no,_name,infor_change from employee 7.2.4 存储过程成编制 1)员工信息查看 procedure pro_look create procedure pro_look xno char(5) as select * from employee where _no=xno 2)部门总体信息 create procedure pro_dpt_total_info xno char(4) as select department.dpt_no,employee._no,employee._name,department.dpt_count from employee,department where employee.dpt_no=department.dpt_no and department.dpt_no=xno Go 3)寻找对应学历条件的员工人数 create procedure pro_count1 xcount int output,xeducation varchar(10) as select xcount= COUNT(*) from V_v1 where _education=xeducation 4)寻找对应部门编号条件的员工人数 create procedure pro_count2 xcount int output,xdptno varchar(4) as select xcount= COUNT(*) from V_v2 where dpt_no=xdptno 5)寻找对应工作时间条件的员工人数 create procedure pro_count3 xcount int output,xworktm datetime,xworktimm datetime as select xcount= COUNT(*) from V_v3 where _worktime between xworktm and xworktimm 6)寻找对应工作变动条件的员工人数 create procedure pro_count4 xcount int output,xinfo_change varchar(4) as select xcount= COUNT(*) from V_v4 where infor_change=xinfo_change 7)寻找员工总人数 create procedure pro_count5 xcount int output as select xcount= COUNT(*) from employee 8)员工信息注册检查人数 create procedure pro_Con xcount int output,xno varchar(5) as select xcount=count(*) from employee where _no=xno; 9)部门总信息 Create view V_vv(dpt_name,dpt_no,dpt_abstract,dpt_manager,_name,_no, _sex,_callnumber,_education,_position,_worktime,infor_change) as select department.dpt_name,department.dpt_no,dpt_abstract,department.dpt_manager, employee._name,employee._no,employee._sex,employee._callnumber,employee._education,employee._position,employee._worktime,employee.infor_change from department,employee where department.dpt_no=employee.dpt_no 10)用户注册时查询有没有相同的用户 create procedure pro_CCon xcount int output,xUsersname varchar(10) as select xcount= COUNT(*) from Users where Users_name= xUsersname 第八章 心得体会 这次的课程设计给了我很多体会与感悟。两个星期,我经历了很多,学会了很多。从第一个星期的需求分析,绘制数据流图,编写数据字典,画数据流图,以及逻辑设计,物理结构设计,到第二个星期的数据库实施与编程实现功能,每一次任务的完成就相当于自己的新一次突破。最终完成的人事管理系统,可以基本实现任务所提出的各项功能。这次课程设计,我主要使用了SQL Server 2008以及VS 2010,采用SQL语句编写了数据库,基本表,视图,存储过程,用C#调用以上SQL建立的数据集pdf文件,编写代码,设计界面,完成了人事管理系统课题。在这里,我想把我的经历分享给大家:第一个星期课程设计我还能跟得上老师的步骤,但在第二个星期期间,我遭遇了各种困境,放课程设计文档的硬盘出问题,最后由于打不开,我找不到我的文档;再者,我用到的两种软件不能实现连接等等,很多都是由于我一开始粗心所致。当我发现这些问题一一向我涌来时,我急得都快哭了,但自己冷下来时,会一直想着阿里巴巴董事长马云的经典名言:今天很残酷,明天很残酷,后天很美好,大多数人死在明天晚上,看不到后天的太阳!于是我一直坚持,尝试了各种方法,在虚拟机安装SQL Server,以及VS2008,重装系统等等。其间,每天起早贪黑,终于在星期二晚上解决掉所有问题。我现在终于体会到,安装软件出错引发的麻烦相当得大。在剩余时间很少的情况下,我自学了C#编程,现学现卖。在老师,同学,学长的帮助下,我学会了很多,比如C#怎样调用数据库文件,怎样用表,视图,存储过程实现信息的增,删,改,查。由于环境限制,实现功能所需,我只花了两天半不到的时间。最终人事管理系统可以实现课题要求的各项功能,但还是存在一些细微的漏洞。与其他设计界面的同学相比,我做的不是太好,比如界面设计的不是很友好等等,老师在我课题答辩的过程时也提出了不少问题,确实与实际生活当中的人事管理系统相比有欠缺,在这里,我由衷地感谢老师的谆谆教导,为我的人生路上点亮了新灯。我想在以后的学习生活中,我会继续增强自己的实践能力,培养细心,静心,恒心,为未来工作打好坚实的基础。 参考资料: [1].《SQL Server 2005 数据库系统开发案例精选》王斌,李凤蕾 著,人民邮电出版社,北京,2007.7; [2].《C# 从入门到精通 第二版》 王小科,徐薇 著,清华大学出版社,北京,2010.7; [3].《数据库原理与应用 第二版》何玉洁,梁琦 著,机械工作出版社,北京,2011.4;
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服