数据库课程设计员工信息管理系统文档格式.docx
《数据库课程设计员工信息管理系统文档格式.docx》由会员分享,可在线阅读,更多相关《数据库课程设计员工信息管理系统文档格式.docx(35页珍藏版)》请在冰豆网上搜索。
3、进行数据库的逻辑设计;
4、进行数据库的物理设计;
5、进行应用程序设计;
6、编程实现。
7、调试完善
计划与进度
1、2009.05.3-2009.05.5需求分析
2、2009.05.7-2009.05.10概念设计
3、2009.05.10-2009.05.14逻辑设计
4、2008.05.15-2009.06.2系统设计
5、2009.06.5-2009.06.15课程设计报告撰写
任课教师
意见
说明
设计名称:
员工信息管理系统日期:
2009年5月3日
设计内容:
1、员工信息添加
2、员工信息修改
3、员工信息删除
4、员工信息查询(多种方式)
5、员工考勤信息添加
6、员工考勤信息修改
7、员工考勤信息删除
8、员工考勤信息查询
9、用户注册
10、SQL基本表建立
11、SQL权限、索引、触发器、函数的创建
12、ODBC连接
设计目的与要求:
1)加深对数据库系统原理、软件工程、程序设计语言的理论知识的理解和应用水平。
2)通过设计实际的数据库系统应用课题,进一步熟悉数据库管理系统的操作技术,提高动手能力,提高分析问题和解决问题的能力。
3)通过设计,掌握数据库应用系统综合开发的方法与技能。
设计环境或器材、原理与说明:
VB6.0
SQL SERVER 2000
设计过程(步骤)或程序代码:
1需求分析
1.1系统需求分析
在人才过剩的今天,企业对于有用人才的需求逐步加大,企业内部的人事变动和部门规划也开始加速,传统的人事档案已经不能满足各个企业的人员流动速度,迫使人们起用新的管理方法来管理员工的相关信息。
科学技术日新月异的进步,让人类生活发生了巨大的变化,计算机技术的飞速发展,使各行各业在计算机技术应用方面得到了广泛的普及和使用。
信息化时代的到来成为不可抗拒的潮流,人类文明正在进入一个崭新的时代。
因此,员工管理系统也以方便、快捷、费用低、绿色环保的优点正慢慢地进入各个行业和领域,将传统的员工管理方式彻底的解脱出来,提高效率,减轻工人人员以往繁忙的工作,加速信息的更新速度,使企业管理层第一时间了解到员工的信息,从而进一步的进行对员工的调配。
功能需求详细说明:
—增加—
增加员工的基本信息、考勤信息
—编辑—
用户可以对员工信息、考勤信息进行删除
用户可以对员工的姓名、编号等员工基本信息进行修改
用户可以对员工的出勤天数、请假天数等考勤信息进行修改
—查询—
用户可以根据姓名、编号,准确的查到要找的员工,也可以选择部门,查看选中的部门的所有员工。
1.2可行性分析
本次课程设计题目:
“员工信息管理系统”,主要目的是编制一个登陆系统,连接数据库系统,用以实现员工个人信息与考勤信息的管理。
同时对整个系统的分析、设计过程给出一个完整的论证。
由于本系统管理的对象简单,且每个数据内容之间都具有关联性,涉及过程并不是很复杂。
因此,比较适合于采用数据库管理。
在技术难度方面,由于有指导老师的指导和相关参考文献,特别是网上和图书馆资料,特别是参考其它程序的功能,因此完全可以实现。
2数据库的概念设计
实体设计:
员工(员工编号,姓名,性别,出生日期,籍贯,专业,学历编号,职称编号,职务编号,部门编号,参加工作时间,进入公司时间,员工备注,政治面貌,员工技术特长,毕业学校,用工性质,工资等级,合同期限)
考勤(员工编号,考勤日期,姓名,应出勤天数,迟到次数,早退次数,请假天数,旷工天数,加班天数,加班天数,补休天数,加班费,扣款,备注)
根据以上需求分析,可画出E-R模型图(图1.1):
图1.1
E-R图
3数据库的逻辑设计
根据系统功能设计的要求以及功能模块的划分,对员工信息管理系统可以列出以
下数据项及数据结构:
员工个人基本信息:
包括员工编号、姓名、性别、出生日期、籍贯、专业、学历编号、职称编号、职务编号、部门编号、参加工作时间、进入公司时间、员工备注、政治面貌、员工技术特长、毕业学校、用工性质、合同期限。
员工考勤基本信息:
包括员工编号、姓名、应出勤天数、迟到次数、早退次数、请假天数、旷工天数、加班天数、加班天数、补休天数、加班费、扣款、备注。
部门信息:
包括部门编号、部门名称、部门简介
职称信息:
包括职称序号、职称名称、备注
学历信息:
包括学历序号、学历名称、备注
职务信息:
包括职务序号、职务名称、备注
用户信息:
包括用户的帐号及密码。
4数据库的物理设计
4.1数据字典与关系图
根据系统需求及逻辑结构设计,本网站基于SQLServer2000数据库,建立如下数据库表(表1.1):
表1.1
库名(员工数据库)
用户信息表(sysuser)
字段
类型
说明
大小
是否为空
user_id
nvarchar
用户账号
8
NOTNULL
user_pwd
密码
部门信息表(department)
dept_id
int
部门编号
4
dept_name
部门名称
20
dept_des
部门简介
50
员工基本信息表(employee)
emp_id
员工编号
emp_name
sex
2
birthday
smaldatetime
出生日期
native
籍贯
profession
专业
edu_id
学历编号
title_id
职称编号
duty_id
职务编号
emp_date1
参加工作时间
emp_date2
进入公司时间
emp_des
员工备注
255
zzmm
政治面貌
ygjstc
员工技术特长
bisx
毕业学校
ygxz
用工性质
htqx
合同期限
职称信息表(title)
职称序号
title_name
职称名称
title_des
备注
学历信息表(education)
学历序号
edu_name
学历名称
edu_des
职务信息表(duty)
职务序号
duty_name
职务名称
duty_des
考勤信息表(checkin)
check_ym
员工姓名
6
w_day
real
应出勤天数
l_nums
迟到次数
e_nums
早退次数
h_days
请假天数
n_days
旷工天数
o_days
加班天数
r_days
补休天数
overtime_s
加班费
d_check
扣款
check_des
注:
波浪线为主键。
图1.2
关系图
4.2数据库建立与初始化
4.2.1建立数据库
Createtableemployee
(
emp_idint(4)notnull,
emp_namenvarchar(20)notnull,
sexnvarchar
(2)notnull,
birthdaysmaldatetime(4)notnull,
nativenvarchar(20),
professionnvarchar(20),
edu_idint(4),notnull,
title_idint(4),notnull,
dept_idint(4),notnull,
duty_idint(4),notnull,
emp_date1smaldatetime(4),notnull,
emp_date2smaldatetime(4),notnull,
emp_desnvarchar(255),
zzmmnvarchar(50),
ygjstcnvarchar(50),
bisxnvarchar(50),
ygxznvarchar(50),
htqxnvarchar(50),
constraintEmPKprimarykey(emp_id),
constraintEduFKforeignkey(edu_id)referenceseducation(edu_id),
constraintTitleFKforeignkey(title_id)referenceseducation(title_id),
constraintDuFKforeignkey(duty_id)referenceseducation(duty_id),
constraintDeFKforeignkey(dept_id)referenceseducation(dept_id),
)
Createtabletitle
title_idint(4)notnull,
title_namenvarchar(20)notnull,
title_desnvarchar(255)
constraintTiPKprimarykey(title_id),
Createtableeducation
edu_idint(4)notnull,
edu_namenvarchar(20)notnull,
edu_desnvarchar(255)
constraintEdPKprimarykey(edu_id),
Createtableduty
duty_idint(4)notnull,
duty_namenvarchar(20)notnull,
duty_desnvarchar(255)
constraintDuPKprimarykey(duty_id),
Createtabledepartment
dept_idint(4)notnull,
dept_namenvarchar(20)notnull,
dept_desnvarchar(255)
constraintDePKprimarykey(dept_id),
4.2.2安全性(权限)
grantallprivilegesonemployeetosasa
grantallprivilegesoncheckintosasa
grantallprivilegesonsysusertosasa
grantallprivilegesondutytosasa
grantallprivilegesontitletosasa
grantallprivilegesondepartmenttosasa
grantallprivilegesoneducationtosasa
4.2.3触发器
功能:
使姓名中不能出现数字。
CREATETRIGGERT_IN
ONdbo.employee
FORINSERT,Update
AS
IFEXISTS(
SELECT*
FROMemployee
WHEREemp_namelike'
%[0-9]%'
)
BEGIN
RAISERROR('
错误!
姓名中不可出现数字'
16,1)
ROLLBACK
RETURN
END
4.2.4建立索引
createclusterindexpk_dutyonduty_id
createclusterindexpk_departmentondept_id
createclusterindexpk_titleontitle_id
createclusterindexpk_educationonedu_id
createclusterindexpk_sysuseronuser_id
createclusterindexpk_employeeonemp_id
createclusterindexpk_checkinon(emp_id,check_ym)
4.2.5VB数据库连接语句
OptionExplicit
PublicdbConnAsNewADODB.Connection
PublicloginUserAsString
PublicloginOKAsBoolean
PubliccmdTypeAsString
PublictUser_idAsString
PublictDept_idAsInteger
PublictEmp_idAsInteger
PublictCheck_ymAsString
PublictQxAsString
SubMain()
IfConnectToDatabase=FalseThen
MsgBox"
连接数据库出错!
"
End
EndIf
loginOK=False
cmdType="
frmLogin.ShowvbModal
UnloadfrmLogin
IfloginOKThen
MDIForm1.Show
EndIf
EndSub
'
连接到数据库
FunctionConnectToDatabase()AsBoolean
OnErrorGoToERR_CONN
'
设置服务器名称,数据库名称,登录名(此时假设密码为空)
dbConn.ConnectionString="
dsn=rsgl;
Database=man;
uid=ZFS;
pwd="
dbConn.ConnectionString="
Provider=msdasql;
server=computer;
uid=sa;
dbConn.Open
ConnectToDatabase=True
ExitFunction
ERR_CONN:
ConnectToDatabase=False
EndFunction
4.2.6ODBC连接
连接数据库方法如下:
1、打开我的电脑---控制面板---管理工具。
2、双击“数据源(ODBC)”,打开“ODBC数据源管理器”对话框,如图(图1.3)所示。
3、在“系统DSN”选项卡下,单击“添加”按钮,弹出如图(图1.4)所示对话框,在该对话框中选择SQLServer选项。
4、单击“完成”按钮。
5、在该对话框中输入数据源名“emp”、服务器名,按要求填空完成后,即可完成数据源的连接设置(图1.6)。
图1.3
图1.4图1.5
图1.6
5应用程序设计
5.1系统功能分析
员工信息管理系统基于用户验证登录的方式实现员工个人信息管理和员工考勤信息管理。
其功能结构如图(图1.7):
图1.7:
系统功能结构图
5.2系统功能模块设计
员工信息管理系统主要包含用户登录、新增、编辑、查询功能模块。
1、用户登陆
员工信息管理系统采用用户名及密码验证方式,进入员工信息管理系统前,用户必须在登录窗口输入用户名及密码,只有验证通过的用户方可进入员工信息管理系统操作主页面。
2、新增功能模块
包含2个功能模块:
员工个人信息的添加、员工考勤信息的添加
3、编辑功能模块
员工个人信息的删除、按月份进行员工考勤信息编辑与删除
4、查询功能模块
员工个人信息查询、按月份进行员工考勤信息查询
系统操作流程图(图1.8):
图1.8:
设计结果与分析(可以加页):
1、员工信息查询(frmEmpInfo2.frm)
图1.9:
员工信息查询界面
主要代码如下:
PrivateSubCommand1_Click()
DimstrIdAsString
DimstrNameAsString
DimstrDeptAsString
DimstrTitleAsString
DimstrDutyAsString
DimstrEduAsString
DimstrSexAsString
设置错误陷阱
IfTrim(MskId)="
Then
strId="
Else
anda.emp_id='
&
MskId&
"
IfTrim(Text2)="
strName="
anda.emp_name='
Trim(Text2)&
IfcboDept.ListIndex=0Then
strDept="
andc.dept_name='
cboDept.Text&
IfcboTitle.ListIndex=0Then
strTitle="
ande.title_name='
cboTitle.Text&
IfcboDuty.ListIndex=0Then
strDuty="
andd.duty_name='
cboDuty.Text&
IfcboEdu.ListIndex=0Then
strEdu="
andb.edu_name='
cboEdu.Text&
IfcboSex.ListIndex=0Then
strSex="
anda.sex='
cboSex.Text&
打开一个数据集
strSql="
selecta.emp_id,a.emp_name,a.sex,b.edu_name,c.dept_name,d.duty_name,e.title_namefromemployeea,educationb,departmentc,dutyd,titleewherea.edu_id=b.edu_idanda.dept_id=c.dept_idanda.duty_id=d.duty_idanda.title_id=e.title_id"
strId&
strName&
strDept&
strTitle&
strDuty&
strEdu&
strSex&
orderbya.emp_id"
rs.OpenstrSql,dbConn,adOpenForwardOnly,adLockReadOnly
If