超市人事管理系统课程设计sql.docx
《超市人事管理系统课程设计sql.docx》由会员分享,可在线阅读,更多相关《超市人事管理系统课程设计sql.docx(21页珍藏版)》请在冰豆网上搜索。
超市人事管理系统课程设计sql
1.需求分析 2
1.可行性分析 2
2.功能需求分析 2
2.概念结构设计 3
2.1系统用例图 3
2.2E-R图 3
3.逻辑结构设计 7
4.物理结构设计 8
4.1表关系图 8
4.2表详细结构 8
5.数据库实施 12
5.1.表的建立 12
5.2.数据库的查询 13
5.3.视图的设计 14
5.4.触发器的设计 16
5.5.存储过程的设计 18
6.总结 19
参考文献 20
1.需求分析
1.可行性分析
随着计算机的发展与普及,以及互联网技术的扩展,日常劳资人事管理必将实现无纸化办公,并且加入到公司内部的Intranet或者是Internet上去,实现数据的共享,这样有利于劳资人事信息在单位内部的查询,提高了数据资源的利用,并且能及时的得到更新,不需要象过去那样浪费大量的人力物力去进行抄写,提高了工作的效率
人事管理系统是一个企业单位不可缺少的部分,是适应现代企业制度,推动企业人事管理走向科学化、规范化、自动化的必要条件。
它的内容对于企业的决策者和管理者来说都至关重要,所以人事管理系统应该能为领导提供充足的信息和快捷的查询手段,以帮助企业领导了解企业现有的人力资源状况。
为人事管理和高层决策领导提供高校的决策支持。
人事管理系统是一套完整的企业内部信息管理系统,它协助企业运用先进的方式完成从简单的日常事务的管理查询到复杂的企业项目流程管理、人员调配、实时任务控制等工作,甚至辅助企业实现更高的经营决策。
2.功能需求分析
(1).员工信息管理功能:
管理超市员工的相关信息,包括员工的查询、添加、删除及员工个人信息的修改;
(2).部门信息管理功能:
管理超市各部门的相关信息,包括部门信息的查询、添加、删除及修改;
(3).奖惩信息管理功能:
管理超市员工的奖惩信息,包括员工奖惩信息的查询、添加、删除及修改;
(4).工资信息管理功能:
管理超市员工的工资信息,包括员工工资信息的查询、添加、删除及修改;
(5).合同信息管理功能:
管理超市员工的合同信息,包括员工合同信息的查询、添加、删除及修改;
(6).培训信息管理功能:
管理超市员工的培训信息,包括员工培训信息的查询、添加、删除及修改。
2.概念结构设计
2.1系统用例图
人事管理管理员可以通过此系统管理员工的基本信息,部门信息,奖惩信息,工资信息,合同及培训信息。
管理功能主要包括对信息的查询,增加,修改及删除。
图2.1用例图
2.2E-R图
(1).员工E-R图
员工的属性有:
员工编号,员工姓名,性别,出生日期,职务,身份证号,住址联系方式,部门编号,奖惩编号,合同编号,项目编号,其中员工编号为主属性,如图2.2所示:
图2.2员工E-R图
(2).部门E-R图
部门的属性有:
部门编号,部门名称,负责人姓名,其中部门编号为主属性,如图2.3所示:
图2.3部门E-R图
(3).奖惩E-R图
记录奖惩的属性有:
奖惩编号,员工编号,其中员工编号我主属性,如图2.4所示:
奖惩的属性有:
奖惩编号,年份,月份,奖励金额,惩罚金额,说明,其中奖惩编号,年份,月份为主属性,如图2.5所示:
图2.4奖惩记录图
图2.5奖惩E-R图
(4).工资E-R图
工资的属性有:
员工编号,年份,月份,基本工资,实发工资,奖励金额,惩罚金额,其中员工编号,年份,月份为主属性,如图2.6所示:
图2.6工资E-R图
(5).合同E-R图
合同的属性有:
合同编号,签订时间,终止时间,合同内容,其中合同编号为主属性,如图2.7所示:
图2.7合同E-R图
(6).培训E-R图
参加培训的属性有:
项目编号,员工编号,培训时间,培训地点,其中项目编号与员工编号为主属性,如图2.8所示:
培训的属性有:
项目编号,培训课程,培训方式,培训地点,培训时间,备注,其中项目编号为主属性,如图2.9所示:
图2.8参加培训图
图2.9培训E-R图
(7).系统主E-R图
一个员工属于一个部门,一个合同,对应多份工资,多份奖惩。
多个员工对应多个培训。
如图2.10所示:
图2.10主E-R图
3.逻辑结构设计
将超市人事管理系统的E-R图转换为关系数据库的数据模型,其关系模式为:
员工(员工编号#,员工姓名,性别,出生日期,职务,身份证号,住址,联系方式,部门编号,合同编号);
部门(部门编号#,部门名称,负责人姓名);
奖惩记录(员工编号#,奖惩编号);
奖惩(奖惩编号#,年份,月份,奖励金额,惩罚金额,说明);
工资(员工编号#,年份#,月份#,基本工资,实发工资,奖励金额,惩罚金额);
合同(合同编号#,签订时间,终止时间,合同内容);
培训(项目编号#,培训课程,培训方式,备注)。
参加培训(员工编号#,项目编号#,培训时间,培训地点)。
4.物理结构设计
4.1表关系图
图4.1关系图
4.2表详细结构
(1).员工表
员工表的字段有:
员工编号,员工姓名,性别,出生日期,职务,身份证号,住址联系方式,部门编号,奖惩编号,合同编号,项目编号,其中员工编号为主码。
表4-1员工数据表
列名
类型
长度
是否为空
是否为主键
描述
Eid
varChar
20
否
是
员工编号
Ename
varChar
20
否
员工姓名
Esex
Char
2
否
性别
Ebirthday
datetime
否
出生日期
Epost
varChar
20
否
职务
Eidnumber
varChar
18
否
身份证编号
Eaddress
Varchar
50
否
住址
Econtact
Varchar
6
否
联系方式
Edepartmentid
int
4
否
部门编号
Econtractid
int
4
否
合同编号
(2).部门表
部门表的字段有:
部门编号,部门名称,负责人姓名,其中部门编号为主码。
表4-2部门数据表
列名
类型
长度
是否为空
是否为主键
描述
Edepartmentid
int
4
否
是
部门编号
Dname
varChar
20
否
部门名称
dRepresentid
varChar
20
否
负责人编号
(3).奖惩表
奖惩表的字段有:
奖惩编号,年份,月份,奖励金额,惩罚金额,说明,其中奖惩编号,年份,月份为主码。
表4-3奖惩数据表
列名
类型
长度
是否为空
是否为主键
描述
Eawardid
int
4
否
是
奖惩编号
Year
varChar
4
否
年份
Month
Varchar
2
否
月份
Awardmoney
Int
4
否
奖励金额
Punishmoney
Int
4
否
惩罚金额
Explain
Varchar
100
是
说明
(4).奖惩记录表
奖惩记录表:
员工编号,奖惩编号。
表4-4奖惩记录表
列名
类型
长度
是否为空
是否为主键
描述
Eid
varChar
20
否
是
员工编号
Eawardid
Int
4
否
奖惩编号
(5).工资表
工资表的字段有:
员工编号,年份,月份,基本工资,实发工资,奖励金额,惩罚金额,其中员工编号为主码。
表4-5工资数据表
列名
类型
长度
是否为空
是否为主键
描述
Eid
varChar
20
否
是
员工编号
Year
varChar
8
否
是
年份
Month
varChar
4
否
是
月份
BaseSalary
Flout
4
否
基本工资
FactSalary
Flout
4
否
实发工资
Awardmoney
Flout
4
否
奖励工资
Punishimoney
Flout
4
否
惩罚金额
(6).合同表
合同表的字段有:
合同编号,签订时间,终止时间,合同内容其中合同编号为主码。
表4-6合同数据表
列名
类型
长度
是否为空
是否为主键
描述
Econtractid
int
4
否
是
合同编号
Starttime
datetime
否
签订时间
Stoptime
datetime
否
终止时间
Note
varChar
100
是
合同内容
(7).培训表
培训表的字段有:
项目编号,员工编号
表4-7培训数据表
列名
类型
长度
是否为空
是否为主键
描述
Eprojectid
int
4
否
是
项目编号
Class
Varchar
20
否
培训课程
Way
Varchar
20
否
培训方式
Note
Varchar
100
是
备注
(8).参加培训表
参加培训表的字段有:
项目编号,培训课程,培训方式,培训地点,培训时间,备注,其中合同编号为主码。
表4-8参加培训表
列名
类型
长度
是否为空
是否为主键
描述
Eprojectid
int
4
否
是
项目编号
Eid
Varchar
20
否
是
员工编号
Time
Datetime
否
培训时间
Place
Varchar
20
是
培训地点
5.数据库实施
5.1.表的建立
(1).员工表的建立
createtableemployees(
EidvarChar(20)notnullprimarykey,
EnamevarChar(10)notnull,
EsexChar
(2)notnull,
Ebirthdaydatetimenotnull,
EpostvarChar(20)notnull,
EidnumbervarChar(18)notnull,
EaddressVarchar(50)notnull,
Econtact Varchar(20)notnull,
Edepartmentid intnotnull,
Econtractidintnotnullunique,
constraintc1check(Esexin('男','女')));
图5.1员工表的建立
(2).工资表的建立
createtablesalary(
EidvarChar(20)notnull,
YearvarChar(8)notnull,
MonthvarChar(4)notnull,
BaseSalaryIntnotnull,
FactSalaryInt,
AwardmoneyIntnotnull,
Punishimoneyintnotnull,
constraintc4primarykey(Eid,Year,Month),
constraintc5foreignkey(Eid)referencesemployees(Eid));
图5.2工资表的建立
5.2.数据库的查询
(1).简单查询
select*fromemployees
图5.3员工表的简单查询
select*fromsalary
、
图5.4工资表的简单查询
(2).模糊查询
selectEid,EnamefromemployeeswhereEnamelike'李%'
图5.5模糊查询
5.3.视图的设计
(1).已参加培训的人
createviewvw_project(员工编号,员工姓名,培训项目)
as
selecte.Eid,Ename,Classfromemployeesase,trainast,joinasj
wheree.Eid=j.Eidandt.projactid=j.projactid
select*fromvw_project
图5.6参加培训员工视图
(3).计算列实发工资
createviewvw_factsalary(员工编号,员工姓名,年份,月份,实发工资)
as
selecte.Eid,e.Ename,Year,Month,FactSalary=BaseSalary+Awardmoney-Punishimoney fromemployeesase,salaryass
wheree.Eid=s.Eid
select*fromvw_factsalary
图5.7员工实发工资视图
(3).聚合函数每个部门人数
createviewvw_num(部门编号,部门名称,人数)
as
selecte.Edepartmentid,Dname,count(*)fromemployeesase,departmentsasd
Wheree.Edepartmentid=d.EdepartmentidgroupbyDname,e.Edepartmentid
dropviewvw_num
select*fromvw_num
图5.8部门员工数视图
5.4.触发器的设计
(1).后触发
createtriggertr_dnum
onemployeesforinsert
as
begin
declare@idvarchar
declare@didint
declare@dnumint
select@id=Eidfrominserted
select@did=Edepartmentidfrominserted
ifnotexists(select*fromemployeeswhere@id=Eid)
begin
select@dnum=count(*)from employeeswhereEdepartmentid=@did
if@dnum<50
print'允许插入'
else
begin
print'该部门人数已满'
rollback
end
end
else
begin
print'该编号已存在'
rollback
end
end
(2).替代触发
createtriggervw_delemplo
onemployeesinsteadofdelete
as
begin
declare@Idvarchar(20)
declare@Econint
declare@Eawarint
declare@proidint
select@Id=Eidfromdeleted
select@Econ=Econtractidfromdeleted
ifexists(select*fromsalarywhereEid=@Id)
deletefromsalarywhereEid=@Id
ifexists(select*fromcontractwhereEcontractid=@Econ)
deletefromcontractwhereEcontractid=@Econ
ifexists(select*fromjiluwhereEid=@Id)
deletefromjiluwhereEid=@Id
ifexists(select*fromtakewhereEid=@Id)
deletefromtakewhereeprojectid=@proid
deletefromemployeeswhereEid=@Id
end
deletefromemployeeswhereEid='12011'
5.5.存储过程的设计
createprocpr_departnum
@didint
as
selecte.Edepartmentidas部门编号,Dnameas部门名称,count(*)as人数fromemployees
ase,departmentsasdwheree.Edepartmentid=d.Edepartmentidande.Edepartmentid=@did
groupbye.Edepartmentid,d.Dname
execpr_departnum1
6.总结
通过这次数据库课程设计,使我们熟悉了超市人事管理系统中后台数据库创建与使用,深刻领会到数据库应用系统规范化的设计过程与步骤。
了解到后台数据库的使用对于超市乃至大型企业的人事管理提供了方便,从而感受到数据库这门技术在当今社会所起到的重要作用。
此次项目在老师的帮助下,小组成员的合作下完成,让我们感受到团队合作的重要性,对于我们以后的学习积累了宝贵的经验。
在此次的课程设计中也遇到不少问题,让我们了解到了自身的不足,对于书本知识掌握的不够扎实,希望在今后的学习中能够将遗留的知识补充上去。
在本系统的开发过程中,在知识、经验方面都存在着不足。
该系统必然会存在一些缺陷和不足。
因为对人力管理的整个流程不够熟悉,在需求分析时未能做到完全满足用户的需求,也未能实现全面的功能。
这次数据库课程设计经历了从选题、目录、摘要、前言、系统设计、需求分析到E-R图设计,再到关系模型设计,最后建立数据库。
在这其中我们组的每个成员通过查阅相关书籍,分工合作,进行了很多次大大小小的扩充和修改,使数据库结构和内容更趋于完善。
通过这次课程设计,我收益颇多,感受深刻。
虽然我们这次做的设计可能不够好,但是为我对以后的数据库设计打下了很好的基础。
在做这次课程设计的过程中,我们每个人都很努力,虽然当中我们有过争执与吵闹,但是最终我们达成了共识并且顺利地完成了此次工作。
参考文献
[1]《数据库原理及应用》钱雪忠主编北京邮电大学出版社2007,8第二版
[2]《SQLserver2000数据仓库与AnalysisServices》BainT著中国电力 出版社2003
[3]《数据库技术与联机分析处理》王珊主编北京科学出版社1998
[4]《SQL Server 2005数据库原理及应用》第1版叶潮流著清华大学出版社.2012.6
[5]《数据库技术及应用-SQL Server》第1版李雁翎高等教育出版社.2007
[6]赵松涛.《中文版SQLServer2000应用及实例集锦》.北京:
人民邮电出版社,2002.
[7]吴晨. 《数据库开发与实例》.北京:
清华大学出版社,2006.
[8]史济民.《软件工程》.北京:
高等教育出版社,2002