资源描述
课 程 设 计 报 告
课程设计名称: 数据库原理与应用
系 部: 二 系
学生姓名: 韦 敏
班 级: 10信息与计算科学
学 号: 0202111
成 绩:
指引教师: 陈林
开学时间: - 年 1 学期
一.设计题目: 人事管理系统
二.重要内容:人事管理系统重要是针对公司单位内部组织构造和员工信息管理,本系统重要功能为:员工信息管理,部门信息管理,系统顾客管理,故咱们需要实现如下功能建设:
1) 员工信息管理:每个部门员工各种信息添加,修改,删除,涉及员工基本信息、学历信息、职称等信息,以及查看符合各种条件员工某些与总体信息;
2) 部门信息管理:查看部门信息,涉及部门编号、部门名称、部门经理、部门简介等信息;具备更新部门功能。
3) 系统顾客管理:查看系统顾客信息,涉及顾客名和顾客类型(系统管理员和普通顾客)等信息;
三.详细规定
1. 课程设计内容独立自主完毕,课程设计报告内容完整、格式规范、排版整洁美观;
2. 后台数据库采用MS SQL SERVER ,前台界面语言不限,编写程序代码,须有较详细注释阐明;
四.进度安排
课程设计安排:
16周
星期一 解说课程设计内容,安排每一天详细任务,分派并熟悉题目;
星期二 需求分析:给出系统功能需求、性能需求,并绘制DFD和DD;
星期三 概念构造设计:绘制实体属性图(可选),局部ER图和全局ER图;
星期四 逻辑构造设计:转换、优化;
星期五 逻辑构造设计:外模式设计
17周
星期一 物理构造设计及数据库实行;
星期二 应用程序编制调试、整顿课程设计报告;
星期三 应用程序编制调试、整顿课程设计报告,并检查;
星期四 依照反馈成果修改课程设计报告;
星期五 课程设计答辩,交材料;
上交材料:课程设计电子稿、打印稿、源码(SQL代码和程序代码)
五.成绩评估
考核办法:现场验收(占50%),课程设计报告(占50%)。
考核内容:学习态度(出勤状况,平时体现等)、方案合理性、各阶段图表与程序编制质量、设计报告质量。
成绩评估:优,良,中,及格,不及格。
特别阐明:(1)如发现抄袭,按照不及格解决。
(2)材料不齐,考核级别降一级。电子稿件以压缩文献形式上交,压缩命名为:11位学号+姓名
正文撰写包括内容:
1、 需求分析
2、 概念构造设计
3、 逻辑构造设计
4、 物理构造设计
5、 数据库实行及应用程序编制
6、 心得体会
7、 参照资料
正文:
题目:人事管理系统
第一章 系统概述
本文按照数据库系统设计基本环节,采用了事先进行需求分析,得出相应数据流图和数据字典,再进行概念构造设计,逻辑构造设计和物理构造设计,最后通过运营和测试,成功完毕了一种小型人事管理系统设计。最后,在SQL SEVER 上运营人事管理系统,可以实现:员工各种信息管理,员工所在部门信息有关管理。
第二章 需求分析
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
含义:员工联系电话
类型: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)
序号:13
名称:dpt_count
含义:部门人数
类型:int
序号:14
名称:dpt__abstract
含义:部门简介
值域:varchar(200)
序号:17
名称:users_name
含义:顾客名
值域:varchar(10)
序号:18
名称: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。
定义:员工状况=姓名+性别+编号+学历+联系电话+所在部门+参加工作时间+职称 。
数据流量:依照公司员工详细录取状况来拟定。
阐明:要对每一位被聘任新员工进行唯一编号。
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
数据构造:员工档案=姓名+性别+学历+员工编号+联系电话+所在部门编号+参加工作时间+职称+工作变动。
数据量和存取频度:依照公司详细规模状况来拟定。
存取方式:联机解决;检索和更新;以随机检索为主。
阐明:员工编号具备唯一性和非空性;性别只能是男或女;主码是员工编号。
2) D2部门记录
输入:P2
输出:P2
数据构造:部门记录=部门编号+部门名称+部门人数+部门简介+部门经理。
数据量和存取频度:依照公司详细规模状况来拟定。
存取方式:联机解决;检索和更新;以检索操作为主。
阐明:主码设为部门号。
3) D3顾客记录
输入:P3
输出:P3
数据构造:顾客记录=员工编号+管理员编号+密码+权限
数据量和存取频度:依照公司详细规模状况来拟定。
存取方式:联机解决;检索和更新;以更新操作为主。
阐明:主码设为管理员编号。
4) D4员工相应信息
输入:P1.4
输出:P4
数据构造:员工相应信息=员工编号+学历+联系电话+所在部门编号+参加工作时间+职称+工作变动。
数据量和存取频度:依照公司详细规模状况来拟定。
存取方式:联机解决;检索和更新;以更新操作为主。
阐明:主码设为员工编号。
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图转换为关系数据库数据模型,其关系模式为:
员工(姓名,性别,员工编号,联系电话,学历,职称,所在部门编号,参加工作时间,工作变动),其中,员工编号是主码,所在部门编号为引用“部门”关系模式外码。
部门(名称,经理,部门编号,简介,员工人数),其中,部门编号是主码。
4.2 数据模型优化
员工关系模式中,各个属性间函数依赖关系:
员工编号→姓名
员工编号→联系电话
员工编号→学历
员工编号→职称
员工编号→所在部门编号
员工编号→参加工作时间
员工编号→工作变动
此关系属于第三范式。
部门关系模式中,各个属性间函数依赖关系:
部门编号→名称
部门编号→部门简介
部门编号→部门人数
部门编号→部门经理
此关系属于第三范式。
顾客关系模式中,各个属性间函数依赖关系:
顾客名→顾客密码
顾客名→权限
此关系属于第三范式。
4.3设计外模式
员工关系模式:员工(姓名,性别,员工编号,联系电话,学历,职称,所在部门编号,参加工作时间,工作变动)。在此关系模式上建立了四个视图:
员工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.13所示:
(a) (b) (c) (d)
图7.13 员工信息
阐明已修改成功;
员工信息删除功能,如图7.14所示,弹出窗口,员工变动状况选取无,转出,将转出进行删除:
(a) (b)
(c)
(d)
图7.14 员工删除过程
员工信息按条件查询,点击:详细,教诲学历,工作时间,以及工作变动,如图7.15所示:
(a)
(b)
(c)
(d)
(e)
(f)
(g)
图7.16 员工信息查询
部门管理:添加部门信息,涉及部门编号、部门名称、部门经理、部门简介等信息;具备更新部门功能,演示状况如下:(部门中一方面有一种经理,员工人数初值为1,部门信息更新后,员工人数可做相应修改)
点击信息查看和记录,如图7.17所示:
图7.17 部门信息
点击部门信息更新,进入更新界面,选取部门,进行更新,完毕后,点击“请点击查看所有部门”按钮,即可看到更新后数据,如图7.18所示:
(a) (b)
(c)
图7.18 员工信息更新
系统顾客管理:查看系统顾客信息,涉及顾客名和顾客类型(系统管理员和普通顾客)等信息;
点击顾客档案查询,如图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
@no char(5)
as
select * from employee
where _no=@no
2)部门总体信息
create procedure pro_dpt_total_info
@no 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=@no
Go
3)寻找相应学历条件员工人数
create procedure pro_count1
@count int output,@education varchar(10)
as
select @count= COUNT(*) from V_v1
where _education=@education
4)寻找相应部门编号条件员工人数
create procedure pro_count2
@count int output,@dptno varchar(4)
as
select @count= COUNT(*) from V_v2
where dpt_no=@dptno
5)寻找相应工作时间条件员工人数
create procedure pro_count3
@count int output,@worktm datetime,@worktimm datetime
as
select @count= COUNT(*) from V_v3
where _worktime between @worktm and @worktimm
6)寻找相应工作变动条件员工人数
create procedure pro_count4
@count int output,@info_change varchar(4)
as
select @count= COUNT(*) from V_v4
where infor_change=@info_change
7)寻找员工总人数
create procedure pro_count5
@count int output
as
select @count= COUNT(*) from employee
8)员工信息注册检查人数
create procedure pro_Con
@count int output,@no varchar(5)
as
select @count=count(*) from employee
where _no=@no;
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
@count int output,@Usersname varchar(10)
as
select @count= COUNT(*) from Users
where Users_name= @Usersname
第八章 心得体会
这次课程设计给了我诸多体会与感悟。两个星期,我经历了诸多,学会了诸多。从第一种星期需求分析,绘制数据流图,编写数据字典,画数据流图,以及逻辑设计,物理构造设计,到第二个星期数据库实行与编程实现功能,每一次任务完毕就相称于自己新一次突破。最后完毕人事管理系统,可以基本实现任务所提出各项功能。这次课程设计,我重要使用了SQL Server 以及VS ,采用SQL语句编写了数据库,基本表,视图,存储过程,用C#调用以上SQL建立数据集pdf文献,编写代码,设计界面,完毕了人事管理系统课题。在这里,我想把我经历分享给人们:第一种星期课程设计我还能跟得上教师环节,但在第二个星期期间,我遭遇了各种困境,放课程设计文档硬盘出问题,最后由于打不开,我找不到我文档;再者,我用到两种软件不能实现连接等等,诸多都是由于我一开始粗心所致。当我发现这些问题一从来我涌来时,我急得都快哭了,但自己冷下来时,会始终想着阿里巴巴董事长马云典型名言:今天很残酷,明天很残酷,后天很美好,大多数人死在明天晚上,看不到后天太阳!于是我始终坚持,尝试了各种办法,在虚拟机安装SQL Server,以及VS,重装系统等等。其间,每天起早贪黑,终于在星期二晚上解决掉所有问题。我当前终于体会到,安装软件出错引起麻烦相称得大。在剩余时间很少状况下,我自学了C#编程,现学现卖。在教师,同窗,学长协助下,我学会了诸多,例如C#如何调用数据库文献,如何用表,视图,存储过程实现信息增,删,改,查。由于环境限制,实现功能所需,我只花了两天半不届时间。最后人事管理系统可以实现课题规定各项功能,但还是存在某些细微漏洞。与其她设计界面同窗相比,我做不是太好,例如界面设计不是很和谐等等,教师在我课题答辩过程时也提出了不少问题,的确与实际生活当中人事管理系统相比有欠缺,在这里,我由衷地感谢教师谆谆辅导,为我人生路上点亮了新灯。我想在后来学习生活中,我会继续增强自己实践能力,培养细心,静心,恒心,为将来工作打好坚实基本。
参照资料:
[1].《SQL Server 数据库系统开发案例精选》王斌,李凤蕾 著,人民邮电出版社,北京,.7;
[2].《C# 从入门到精通 第二版》 王小科,徐薇 著,清华大学出版社,北京,.7;
[3].《数据库原理与应用 第二版》何玉洁,梁琦 著,机械工作出版社,北京,.4;
展开阅读全文