《毕业设计(论文)SQLserver数据库基础.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)SQLserver数据库基础.doc(35页珍藏版)》请在三一办公上搜索。
1、河南工业职业技术学院SQL server数据库基础大型作业(20092010学年第一学期) 系 部: 计 算 机 工 程 系 专 业: 计 算 机 网 络 技 术 课程名称: S Q L server 数 据 库 班 级: 姓 名: 学 号: 指导老师: 2010114企业人事管理系统分析与概述摘要:信息技术为企业的发展提供了机遇,也带来了挑战。如何改良企业内部经营机制,公正、客观、全面、快捷地评估员工的业绩,实现以人为本的经营战略,提高人事管理工作的效率,使人事管理员有更多的精力去做人力资源分析、研究和开发工作,是企业立足发展,开拓未来,领先同行业的关键。本文叙述了一个人事管理系统形成的全过
2、程,包括部分演示。本课程设计是一个企业人事管理系统的后台数据库的设计,首先要查阅资料对企业人事管理领域的基本知识有一定的认识,了解用户各个方面的需求,包括现有的以及将来的可能增加的需求。本数据库按照数据库设计的六个阶段进行设计:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库的运行和维护。关键词: 企业人事、部门、工资、奖惩 前 言随着计算机技术、网络技术和信息技术的发展,越来越多地改善着现代人的观念。网络办公自动化系统是计算机技术和网络迅速发展的一个办公应用解决方案,它的主要目的是实现信息交流和信息共享,提供协同工作的手段,提高办公的效率,让人们从繁琐的有纸办公中解脱出
3、来。现在我国的许多的机关单位的人事管理水平还停留在纸介质的基础上,这样的机制已经不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代。基于这种情况,我们研究开发了这套人事管理系统,希望这套系统能为企业人事管理带来更多的方便。本数据库的设计建设,虽然倾注我们小组所有成员的努力,但是由于时间仓促水平有限,纰漏和不足在所难免希望老师和同学们批评指正。 目 录第1章 实训目的及系统需求分析11.1 实训目的11.1.1 知识目标11.1.2 能力目标11.1.3 素质目标21.2 需求分析21.2.1 功能分析31.2.2系统特征41.2.3
4、数据流程5第2章 系统开发工具及环境62.1 系统开发工具介绍62.1.1 SQLserver 2005简介62.1.2 T-SQL语言介绍62.1.3 系统开发的环境介绍8第3章 系统的详细设计93.1 系统的总体设计93.1.1 系统的模块框架结构93.1.2 系统数据库的表结构103.2 系统的详细设计123.2.1 实现模块之间的连接123.3 系统的查询功能133.3.1 查询全部员工的基本信息133.3.2 详细查询员工信息143.3.3 详细查询员工工资153.3.4 查询员工工资发放时间加班工资163.3.5 查询全体员工的工资173.4.1 存储过程的实现183.5 事务的使
5、用193.5.1 事务修改信息203.5.2 事务调动部门213.6 触发器的实现243.6.1 删除触发器243.6.2 添加触发器253.6.3 提示触发器263.7 函数的使用27结 束 语28致 谢29参考文献30第1章 实训目的及系统需求分析1.1 实训目的1.1.1 知识目标通过综合实训进一步巩固、深化和扩展学生的SQL Server 2005数据库管理和开发的基本知识和技能。(1)熟练掌握SQL Server 2005数据库的操作(2)熟练掌握SQL Server 2005表的操作(3)熟练掌握SQL Server 2005视图的操作和应用(4)掌握SQL Server 2005
6、索引的操作(5)熟练掌握SQL Server 2005存储过程和T-SQL编程技术的操作和使用(6)熟练掌握SQL Server 2005触发器的操作和应用(7)掌握SQL Server 2005数据安全性操作(8)熟练掌握SQL Server 2005数据管理操作(9)了解SQL Server 2005数据库程序开发技术1.1.2 能力目标培养学生运用所学的知识和技能解决SQL Server 2005数据库管理和开发过程中所遇到的实际问题的能力、掌握基本的SQL脚本编写规范、养成良好的数据库操作习惯。(1)培养学生通过各种媒体搜集资料、阅读资料和利用资料的能力(2)培养学生基本的数据库应用能
7、力(3)培养学生基本的编程逻辑思想(4)培养学生通过各种媒体进行自主学习的能力1.1.3 素质目标培养学生理论联系实际的工作作风、严肃认真的工作态度以及独立工作的能力。(1)培养学生观察问题、思考问题、分析问题和解决问题的综合能力(2)培养学生的团队协作精神和创新精神(3)培养学生学习的主动性和创造性1.2 需求分析 企业人事管理系统的主要目的就是利用软件,替代原始的人工管理模式,使企业走向信息化,电子化,自动化管理模式,从而提高企业的人事管理效率。使企业管理简单化,降低企业的管理成本。 该系统应用我们本学期所学的SQL server 2005数据库技术 ,主要实现企业人事信息的基本录入、修改
8、、查询、删除模块,员工调动信息的录入、修改、查询、删除模块,为企业人事管理提供信息咨询,信息检索,信息存取等服务,基本上能够满足现代企业对人事管理的需要。 1.2.1 功能分析主要分为一下模块:n 人事管理模块:该模块有可分为档案管理和奖惩管理。该模块要实现的功能是让系统管理员实现员工基本信息的录入工作。并存放在数据库内。n 调动管理模块:该模块有可分为员工调动和员工退休。该功能主要是实现企业各部门的人员调动功能,能够自动的维护系统的完整型。再次功能中主要运用本学期我们所学的 触发器 事务 等一些高级数据库编程技术。n 工资管理模块:该模块可以分为计件工资和加班提成工资。在该模块中本企业的员工
9、可以查询该员工在本月中所做的工作以及工资。n 考勤管理模块:该模块可以分为请假登记,主要实现的功能是及时的记录该企业员工的病假、事假、以及请假天数。1.2.2系统特征1全面完整性 系统是用户日常工作的信息化管理平台。可减少大量的重复录入工作。2易用性 界面友好简洁。 3灵活性 独有二次开发平台功能,可方便地由用户自由进行数据和界面更改,使软件完全贴切于用户的需要。强大的查询功能,可灵活设置任意多条件进行组合查询。4开放性 提供功能强大的数据接口,可方便的引入各类Office文档,并增加了文档的安全性。5强大的报表/图表输出功能 提供强大的报表制作与管理工具,用户可直接设计各种所需报表。提供了灵
10、活报表生成器,并随时进行设计更改。6安全性 一流的数据库加密技术。1.2.3 数据流程 录入存储 员工信息 主界面数据库查询数据流图 员工信息 登录 密码 调动删除 基本信息 详细信息 部门信息 存 储第2章 系统开发工具及环境2.1 系统开发工具介绍2.1.1 SQLserver 2005简介SQL Server2005 是一个全面的、集成的、端到端的数据解决方案,它为企业中的用户提供了一个安全、可靠和高效的平台用于企业数据管理和商业智能应用。SQL Server 2005 为IT专家和信息工作者带来了强大的、熟悉的工具,同时减少了在从移动设备到企业数据系统的多平台上创建、部署、管理及使用企
11、业数据和分析应用程序的复杂度。 通过全面的功能集、和现有系统的集成性、以及对日常任务的自动化管理能力,SQL Server 2005 为不同规模的企业提供了一个完整的数据解决方案。2.1.2 T-SQL语言介绍SQL(StructureQueryLanguge,结构化查询语言)是一种数据库专用的计算机语言,不管是Oracle、MSSQL、Access、MySQL或其他公司的数据库,也不管数据库建立在大型主机或个人计算机上,都可以使用SQL语言来访问和修改数据库的内容。虽然不同公司的数据库软件多多少少会增加一的些专属SQL语法,但大体上,它们还是遵循ASNI(美国国家标准协会)制定的SQL标准。
12、因为SQL语言具有易学习及阅读等特性,所以SQL逐渐被各种数据库厂商采用,而成为一种共通的标准查询语言。只要你学会SQL,即可操作各种数据库如VisualFoxpro、Access、dBase等等。总之,SQL语言是各种数据库都可以使用的数据库查询语言。SQL语言不仅仅具有查询数据库的功能,而且可以对数据库完成选取、增删、更新与跳转等各种操作。SQL语言是由命令(函数)、子句、运算符、加总函数及通配符等组成,分述如下:SQL的命令可分成数据定义语言与数据操作语言,数据定义语言可用来建立新的数据库、数据表、字段及索引等,本教程不予介绍;另一为数据操作语言,可用来建立查询表、排序、筛选数据、修改、
13、增删等动作。数据定义语言命令常用的有选择、添加、删除和修改这四种。2.1.3 系统开发的环境介绍Windows XP可以作为运行SQL Sserver2005最理想的系统平台,开发软件就是用现学的Microsoft Sserver2005 SQL Management Studio,它包括SQL Sserver2000企业管理器(Enterprise Manager)和查询分析器(QueryAnalyzer),等方面的功能,给用户带来了很大的方便。此外SQL Sserver2005管理平台还提供了一种环境,用于管理Analysis Services(分析服务)、Integration Serv
14、ices(集成服务)、Reporting Services(报名服务)和Xquery。SQL Sserver2005管理平台为我们这样的开发者提供一个熟悉的环境。此外本次开发环境的硬件配置也不需要很高,并且学校提供的机房上机环境完全可以满足我们的硬件要求。第3章 系统的详细设计3.1 系统的总体设计保存用户对数据库所作的操作,并且写入日志表中退出系统数据查询基本信息模块部门信息模块工资查询模块登陆系统人事管理系统部门调动模块奖惩管理模块数据增加数据删除数据修改数据统计考勤管理账号信息模块基本信息录入账号管理数据录入3.1.1 系统的模块框架结构图3-1系统的模块框架结构图3.1.2 系统数据库
15、的表结构员工基本信息表(表3-1)表名:员工基本信息表字段数据类型备注员工编号Varchar(50)主键,允许为空员工姓名Nvarchar(50)员工姓名,不允许为空员工所属部门编号Int员工部门编号,不允许为空员工基本工资int员工工资,不允许为空员工职位名称Nvarchar(50)员工职位,不允许为空员工电话Nvarchar(50)员工电话,不允许为空员工报到日期datetime员工报到日期,不允许为空部门表(表3-2)表名:部门表字段数据类型备注 部门编号Char(2)部门编号,不允许为空部门名称Char(10)主键,允许为空部门描述Char(50)部门描述,不允许为空部门经理编号Cha
16、r(10)部门经理编号,不允许为空员工姓名Nchar(10)员工姓名,不允许为空工资表(表3-3)表名:工资表字段数据类型备注工资编号Char(8)主键,允许为空员工编号Char(10)员工编号,不允许为空工资发放时间datetime工资发放时间,不允许为空员工基本工资Int员工基本工资,不允许为空加班工资Int加班工资,不允许为空缺薪扣除Int缺勤扣除,不允许为空其他工资int其他工资,不允许为空奖惩表(表3-4)表名:奖惩表字段数据类型备注奖惩编号bigint主键,允许为空员工姓名Varchar(50)员工姓名,不允许为空奖惩日期datetime奖惩日期,不允许为空奖惩类型Varchar(
17、4)奖惩类型,不允许为空奖惩情况Varchar(20)奖惩情况,不允许为空备注text备注3.2 系统的详细设计3.2.1 实现模块之间的连接企业人事管理系统主要有部门表,人事管理表,奖惩表,工资表组成,部门表带给用户的主要是用事务来实现人事的调动,在调动的时候原来的部门调动后自动减1,调动到所在的部门则会自动加1,人事管理表,主要是来实现查询用户的信息的功能,奖惩表主要用来对该企业内的用户进行奖励和惩罚,以备员工及时查询,实现查询功能,而工资表主要来实现员工对自己工资的查询。以下是对各个部门表所连接起来的情况,部门联系表,如图3-2所示: 图3-2部门联系表人事管理模块:根据前面描述的需求分
18、析,人事管理模块主要是查询员工的基本信息,添加,删除,以及更新所有的员工信息,所用到的是存储过程,和触发器等。3.3 系统的查询功能在数据库发展过程中,数据查询曾经是一件非常困难的事情,直到使用了SQL语言后,数据查询才变得相当的简便。在SQL server中,数据查询就是要用select语句实现对数据表中数据进行查询,因此,在查询阶段select语句是最常用的。在查询阶段的方法有很多,在此简单介绍了用T-SQL语句来查询的方法。3.3.1 查询全部员工的基本信息主要代码如下:use 企业人事管理select 员工编号,员工姓名,员工所属部门编号,员工基本工资,员工职位名称,员工电话,员工报到
19、日期from dbo.基本信息表运行结果如图3-3所示:图3-3员工基本信息表3.3.2 详细查询员工信息主要代码如下:use 企业人事管理select 员工编号,员工姓名from dbo.基本信息表 运行结果如图3-4所示: 图3-4显示全体员工的编号以及员工的姓名3.3.3 详细查询员工工资查询找出员工编号是001,002,003,006的员工姓名,员工编号,以及员工的基本工资。代码如下:use 企业人事管理select 员工编号,员工姓名,员工基本工资from 基本信息表where 员工编号in(001,002,003,006) 运行结果如3-5图所示:图3-5查询001,002,003
20、,006的基本信息表3.3.4 查询员工工资发放时间加班工资查询工资编号为001,005,009,0011,0013,003的工资发放时间,加班工资,以及工资编号代码如下所示:use 企业人事管理select 加班工资,工资发放时间,工资编号from 工资表where 工资编号in(1,5,9,11,13,3)运行结果如3-6图所示:图3-6查询员工工资发放时间加班工资3.3.5 查询全体员工的工资 代码如下所示:use 企业人事管理select*from dbo.工资表运行结果如图3-7所示:图3-7查询全体员工的工资3.4 存储过程3.4.1 存储过程的实现创建存储过程的方法有两种一种是在
21、SQL server的管理平台下创建,一种是用T-SQL语句来创建存储过程。在这里我们只详细的描述一下用T-SQL语句来创建存储过程的方法。本例的题目是利用存储过程查询工资高低的前三名员工的信息,以降序排列。 代码如下:create proc cx_qsmasselect top 3 * from 基本信息表 order by 员工基本工资descgoexec cx_qsm图3-8利用存储过程查询工资前三名的员工信息3.5 事务的使用事务是指一个工作单元,这个单元可以包含多个步骤来完成所需的任务,一个事务做为一个整体,要么成功,要么失败。如果某一事务成功,则在事务中进行的所有数据更改均会提交,
22、成为数据库中永久的组成部分,如果事务遇到错误必须取消或回滚,则所有数据的更改都的清除。事务主要用于多用户同时操作的数据库系统。3.5.1 事务修改信息本例主要是修改一个员工的信息,修改成功则提交,保存到数据库中,如果失败,恢复原始数据,利用事务修改员工的信息!实现代码如下:use 企业人事管理goprint 查询源信息select * from 基本信息表where 员工编号=006 -查看原信息gobegin transactiondeclare errorsum intset errorsum=0update 基本信息表set 员工基本工资=员工基本工资-1000where 员工编号=00
23、6set errorsum=errorsum+errorif errorsum0beginprint添加失败,回滚事务!rollback transactionendelse begin print 添加成功,提交事务,存入数据库! commit transaction endgoprint查看添加后,编号为员工的信息!select * from 基本信息表where 员工编号=006运行结果如图3-9所示:图3-9利用事务修改员工的信息3.5.2 事务调动部门本例主要是利用事务对部门表进行人事调动的工作,在调动后原部门会自动减1,新的部门会自动加1,实现此功能采用事务来实现,代码如下:use
24、 企业人事管理print查询原始信息select 员工姓名,员工所属部门编号from 基本信息表where 员工编号=1select 部门编号,部门名称,部门人数from 部门表where 部门编号in (1,3)gobegin transaction declare errorsum int set errorsum=0update 基本信息表set 员工所属部门编号=3 where 员工编号=001set errorsum=errorsum+errorupdate 部门表set 部门人数=部门人数+1 where 部门编号=03set errorsum=errorsum+errorupda
25、te 部门表set 部门人数=部门人数-1 where 部门编号=01set errorsum=errorsum+errorif errorsum0 begin print修改出错!事务回滚,恢复原始数据 rollback transaction endelse begin print修改成功!保存到数据库! commit transaction commit transaction endgoprint查看修改结果!select 员工姓名, 员工所属部门编号from 基本信息表where 员工编号=001select 部门名称,部门人数from 部门表where 部门编号in (1,3)运行
26、结果如图3-10所示:图3-10 部门调动图3.6 触发器的实现3.6.1 删除触发器该触发器可实现,维护基本信息表和工资表之间的数据完整型,减少数据冗余,当用户从中删除一位员工的信息时,该触发器自动将该员工在工资表中的信息也随之删除。该触发器的实现代码如下:create trigger tri_deleon dbo.基本信息表after deleteasbegindelete from 工资表where 员工编号in (select 员工编号from deleted)update 部门表set 部门人数=部门人数-1where 部门编号in (select 员工所属部门编号from dele
27、ted)end3.6.2 添加触发器该触发器可以实现,当用户向员工基本信息表中添加一条信息的时,部门表中相应的部门总人数会触发加一。其功能实现的代码如下:Create trigger tri_bmrson dbo.基本信息表after insertasupdate 部门表set 部门人数=部门人数+1 where 部门编号=(select 员工所属部门编号from inserted3.6.3 提示触发器该触发器可以实现,当用户向员工信息表中插入信息时,如果该信息信息中的部门编号在部门表中存在,则提示插入成功,否则提示用户部门不存在,请重新输入。该触发器的实现代码如下:Create trigge
28、r tri_hdxxon dbo.基本信息表after insertasif not exists(select 部门编号from 部门表where 部门编号in (select 员工所属部门编号from inserted)begin rollback transactionprint(在部门表中不存在该部门号!请查找错误,并重新输入!)endelse begin print恭喜您输入成功! end3.7 函数的使用根据员工号查询员工工资creaate function dbo.cx_gz(ygbh int)returns tableasreturn (select 员工编号,员工姓名, (d
29、atediff(month,员工报到日期,getdate()* 员工基本工资) 员工应得工资from 基本信息表where 员工编号=ygbh)图3-11根据员工号查询员工工资 结 束 语实践是检验真理的唯一标准,当然也是检验学习成果的标准。在经过一周时间的数据库建设之后,才知道我们需要了解,自己的所学的理论知识应该如何应用在实践中,因为任何知识都源于实践,归于实践,所以要将所学的知识在实践中来检验。实习期间,在李老师的指导下,和同学们的帮助下,通过自身的不断努力,无论是理论学习上,还是动手实践上,都取得了长足的发展和巨大的收获,实习之前觉得这一周时间真的太短,也学不到什么实质性的东西。但当我
30、真正着手处理时,就不能有丝毫小瞧的意思了。一切的一切都需要我们用心去领悟并结合所学知识去操作。实践,是一面很亮的镜子,能够通过它看出我们自身的缺点,能够通过它查找出自身缺乏的知识。通过这次大型作业,我明显感觉到“书到用时方恨少”。在以后的生活中我会不断地学习充实自己。 致 谢通过本次实训,我在李老师的认真指导下学到了很多,让我受益匪浅,学到了在平时课堂上学不到的。本此课程设计,在李老师的指导下,我们小组成员的共同努力下,我才完成了本次的数据库的设计工作,在此要感谢李老师和我们小组的同学们。在本次的课程设计中我学到了很多东西,既巩固了我的理论知识同时也培养了我们的团队意识,和团结合作精神,培养了
31、我们对事情研究分析的严谨态度和创新精神,很大程度上提高了我分析问题,解决问题的能力,这非常利于我现在和今后的学习和工作。这为今后进入社会打好了良好的基础。在此我向我的指导老师,和小组的同学们致以真挚的谢意,谢谢你们的大力支持和帮助。 托尔2010-1-14 参考文献【1】 C.D.Date,数据库系统导论,机械工业出版社,2000 【2】林陈雷,郭安源,葛晓东,教育信息化系统开发实例导航,人民邮电出版社,2003 【3】 张立科,数据库开发技术与工程实践,人民邮电出版社,2004 【4】张红军,王虹等,Visualbasic6.0中文版高级应用与开发指南,人民邮电出版社,2002 【5】伍俊良主编等,VB课程设计与系统开发案例,清华大学出版社,2002