SQLserver数据库论文Word下载.docx
- 文档编号:17133102
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:20
- 大小:278.81KB
SQLserver数据库论文Word下载.docx
《SQLserver数据库论文Word下载.docx》由会员分享,可在线阅读,更多相关《SQLserver数据库论文Word下载.docx(20页珍藏版)》请在冰豆网上搜索。
1.1.1知识目标
通过综合实训进一步巩固、深化和扩展学生的SQLServer2005数据库管理和开发的基本知识和技能。
(1)熟练掌握SQLServer2005数据库的操作
(2)熟练掌握SQLServer2005表的操作
(3)熟练掌握SQLServer2005视图的操作和应用
(4)掌握SQLServer2005索引的操作
(5)熟练掌握SQLServer2005存储过程和T-SQL编程技术的操作和使用
(6)熟练掌握SQLServer2005触发器的操作和应用
(7)掌握SQLServer2005数据安全性操作
(8)熟练掌握SQLServer2005数据管理操作
(9)了解SQLServer2005数据库程序开发技术
1.1.2能力目标
培养学生运用所学的知识和技能解决SQLServer2005数据库管理和开发过程中所遇到的实际问题的能力、掌握基本的SQL脚本编写规范、养成良好的数据库操作习惯。
(1)培养学生通过各种媒体搜集资料、阅读资料和利用资料的能力
(2)培养学生基本的数据库应用能力
(3)培养学生基本的编程逻辑思想
(4)培养学生通过各种媒体进行自主学习的能力
1.1.3素质目标
培养学生理论联系实际的工作作风、严肃认真的工作态度以及独立工作的能力。
(1)培养学生观察问题、思考问题、分析问题和解决问题的综合能力
(2)培养学生的团队协作精神和创新精神
(3)培养学生学习的主动性和创造性
1.2需求分析
企业人事管理系统的主要目的就是利用软件,替代原始的人工管理模式,使企业走向信息化,电子化,自动化管理模式,从而提高企业的人事管理效率。
使企业管理简单化,降低企业的管理成本。
该系统应用我们本学期所学的SQLserver2005数据库技术,主要实现企业人事信息的基本录入、修改、查询、删除模块,员工调动信息的录入、修改、查询、删除模块,为企业人事管理提供信息咨询,信息检索,信息存取等服务,基本上能够满足现代企业对人事管理的需要。
1.2.1功能分析
主要分为一下模块:
⏹人事管理模块:
该模块有可分为档案管理和奖惩管理。
该模块要实现的功能是让系统管理员实现员工基本信息的录入工作。
并存放在数据库内。
⏹调动管理模块:
该模块有可分为员工调动和员工退休。
该功能主要是实现企业各部门的人员调动功能,能够自动的维护系统的完整型。
再次功能中主要运用本学期我们所学的触发器事务等一些高级数据库编程技术。
⏹工资管理模块:
该模块可以分为计件工资和加班提成工资。
在该模块中本企业的员工可以查询该员工在本月中所做的工作以及工资。
⏹考勤管理模块:
该模块可以分为请假登记,主要实现的功能是及时的记录该企业员工的病假、事假、以及请假天数。
1.2.2系统特征
1.全面完整性
系统是用户日常工作的信息化管理平台。
可减少大量的重复录入工作。
2.易用性
界面友好简洁。
3.灵活性
独有"
二次开发平台"
功能,可方便地由用户自由进行数据和界面更改,使软件完全贴切于用户的需要。
强大的查询功能,可灵活设置任意多条件进行组合查询。
4.开放性
提供功能强大的数据接口,可方便的引入各类Office文档,并增加了文档的安全性。
5.强大的报表/图表输出功能
提供强大的报表制作与管理工具,用户可直接设计各种所需报表。
提供了灵活报表生成器,并随时进行设计更改。
6.安全性
一流的数据库加密技术。
1.2.3数据流程
存储
员工信息
数据流图员工信息
密码
基本信息
详细信息部门信息
存储
第2章系统开发工具及环境
2.1系统开发工具介绍
2.1.1SQLserver2005简介
SQLServer2005是一个全面的、集成的、端到端的数据解决方案,它为企业中的用户提供了一个安全、可靠和高效的平台用于企业数据管理和商业智能应用。
SQLServer2005为IT专家和信息工作者带来了强大的、熟悉的工具,同时减少了在从移动设备到企业数据系统的多平台上创建、部署、管理及使用企业数据和分析应用程序的复杂度。
通过全面的功能集、和现有系统的集成性、以及对日常任务的自动化管理能力,SQLServer2005为不同规模的企业提供了一个完整的数据解决方案。
2.1.2T-SQL语言介绍
SQL(Structure
Query
Languge,结构化查询语言)是一种数据库专用的计算机语言,不管是Oracle、MS
SQL
、Access、MySQL或其他公司的数据库,也不管数据库建立在大型主机或个人计算机上,都可以使用SQL语言来访问和修改数据库的内容。
虽然不同公司的数据库软件多多少少会增加一的些专属SQL语法,但大体上,它们还是遵循ASNI(美国国家标准协会)制定的SQL标准。
因为SQL语言具有易学习及阅读等特性,所以SQL逐渐被各种数据库厂商采用,而成为一种共通的标准查询语言。
只要你学会SQL,即可操作各种数据库如Visual
Foxpro、Access、dBase等等。
总之,SQL语言是各种数据库都可以使用的数据库查询语言。
SQL语言不仅仅具有查询数据库的功能,而且可以对数据库完成选取、增删、更新与跳转等各种操作。
SQL语言是由命令(函数)、子句、运算符、加总函数及通配符等组成,分述如下:
SQL的命令可分成数据定义语言与数据操作语言,数据定义语言可用来建立新的数据库、数据表、字段及索引等,本教程不予介绍;
另一为数据操作语言,可用来建立查询表、排序、筛选数据、修改、增删等动作。
数据定义语言命令常用的有选择、添加、删除和修改这四种。
2.1.3系统开发的环境介绍
WindowsXP可以作为运行SQLSserver2005最理想的系统平台,开发软件就是用现学的MicrosoftSserver2005SQLManagementStudio,它包括SQLSserver2000企业管理器(EnterpriseManager)和查询分析器(QueryAnalyzer),等方面的功能,给用户带来了很大的方便。
此外SQLSserver2005管理平台还提供了一种环境,用于管理AnalysisServices(分析服务)、IntegrationServices(集成服务)、ReportingServices(报名服务)和Xquery。
SQLSserver2005管理平台为我们这样的开发者提供一个熟悉的环境。
此外本次开发环境的硬件配置也不需要很高,并且学校提供的机房上机环境完全可以满足我们的硬件要求。
第3章系统的详细设计
3.1系统的总体设计
3.1.1系统的模块框架结构
图3-1系统的模块框架结构图
3.1.2系统数据库的表结构
员工基本信息表(表3-1)
表名:
员工基本信息表
字段
数据类型
备注
员工编号
Varchar(50)
主键,允许为空
员工姓名
Nvarchar(50)
员工姓名,不允许为空
员工所属部门编号
Int
员工部门编号,不允许为空
员工基本工资
int
员工工资,不允许为空
员工职位名称
员工职位,不允许为空
员工电话
员工电话,不允许为空
员工报到日期
datetime
员工报到日期,不允许为空
部门表(表3-2)
部门表
备注
部门编号
Char
(2)
部门编号,不允许为空
部门名称
Char(10)
部门描述
Char(50)
部门描述,不允许为空
部门经理编号
部门经理编号,不允许为空
Nchar(10)
工资表(表3-3)
工资表
工资编号
Char(8)
员工编号,不允许为空
工资发放时间
工资发放时间,不允许为空
员工基本工资,不允许为空
加班工资
加班工资,不允许为空
缺薪扣除
缺勤扣除,不允许为空
其他工资
其他工资,不允许为空
奖惩表(表3-4)
奖惩表
奖惩编号
bigint
奖惩日期
奖惩日期,不允许为空
奖惩类型
Varchar(4)
奖惩类型,不允许为空
奖惩情况
Varchar(20)
奖惩情况,不允许为空
text
3.2系统的详细设计
3.2.1实现模块之间的连接
企业人事管理系统主要有部门表,人事管理表,奖惩表,工资表组成,部门表带给用户的主要是用事务来实现人事的调动,在调动的时候原来的部门调动后自动减1,调动到所在的部门则会自动加1,人事管理表,主要是来实现查询用户的信息的功能,奖惩表主要用来对该企业内的用户进行奖励和惩罚,以备员工及时查询,实现查询功能,而工资表主要来实现员工对自己工资的查询。
以下是对各个部门表所连接起来的情况,部门联系表,如图3-2所示:
图3-2部门联系表
人事管理模块:
根据前面描述的需求分析,人事管理模块主要是查询员工的基本信息,添加,删除,以及更新所有的员工信息,所用到的是存储过程,和触发器等。
3.3系统的查询功能
在数据库发展过程中,数据查询曾经是一件非常困难的事情,直到使用了SQL语言后,数据查询才变得相当的简便。
在SQLserver中,数据查询就是要用select语句实现对数据表中数据进行查询,因此,在查询阶段select语句是最常用的。
在查询阶段的方法有很多,在此简单介绍了用T-SQL语句来查询的方法。
3.3.1查询全部员工的基本信息
主要代码如下:
use企业人事管理
select员工编号,员工姓名,员工所属部门编号,员工基本工资,员工职位名称,员工电话,员工报到日期
fromdbo.基本信息表
运行结果如图3-3所示:
图3-3员工基本信息表
3.3.2详细查询员工信息
select员工编号,员工姓名
fromdbo.基本信息表
运行结果如图3-4所示:
图3-4显示全体员工的编号以及员工的姓名
3.3.3详细查询员工工资
查询找出员工编号是001,002,003,006的员工姓名,员工编号,以及员工的基本工资。
代码如下:
select员工编号,员工姓名,员工基本工资
from基本信息表
where员工编号in('
001'
'
002'
003'
006'
)
运行结果如3-5图所示:
图3-5查询001,002,003,006的基本信息表
3.3.4查询员工工资发放时间加班工资
查询工资编号为001,005,009,0011,0013,003的工资发放时间,加班工资,以及工资编号
代码如下所示:
select加班工资,工资发放时间,工资编号
from工资表
where工资编号in('
1'
5'
9'
11'
13'
3'
运行结果如3-6图所示:
图3-6查询员工工资发放时间加班工资
3.3.5查询全体员工的工资
select*
fromdbo.工资表
运行结果如图3-7所示:
图3-7查询全体员工的工资
3.4存储过程
3.4.1存储过程的实现
创建存储过程的方法有两种一种是在SQLserver的管理平台下创建,一种是用T-SQL语句来创建存储过程。
在这里我们只详细的描述一下用T-SQL语句来创建存储过程的方法。
本例的题目是利用存储过程查询工资高低的前三名员工的信息,以降序排列。
createproccx_qsm
as
selecttop3*from基本信息表
orderby员工基本工资desc
go
execcx_qsm
图3-8利用存储过程查询工资前三名的员工信息
3.5事务的使用
事务是指一个工作单元,这个单元可以包含多个步骤来完成所需的任务,一个事务做为一个整体,要么成功,要么失败。
如果某一事务成功,则在事务中进行的所有数据更改均会提交,成为数据库中永久的组成部分,如果事务遇到错误必须取消或回滚,则所有数据的更改都的清除。
事务主要用于多用户同时操作的数据库系统。
3.5.1事务修改信息
本例主要是修改一个员工的信息,修改成功则提交,保存到数据库中,如果失败,恢复原始数据,利用事务修改员工的信息!
实现代码如下:
print'
查询源信息'
select*from基本信息表where员工编号='
--查看原信息
begintransaction
declare@errorsumint
set@errorsum=0
update基本信息表
set员工基本工资=员工基本工资-1000
where员工编号='
set@errorsum=@errorsum+@@error
if@errorsum<
>
begin
print'
添加失败,回滚事务!
'
rollbacktransaction
end
else
begin
print'
添加成功,提交事务,存入数据库!
committransaction
end
查看添加后,编号为员工的信息!
运行结果如图3-9所示:
图3-9利用事务修改员工的信息
3.5.2事务调动部门
本例主要是利用事务对部门表进行人事调动的工作,在调动后原部门会自动减1,新的部门会自动加1,实现此功能采用事务来实现,代码如下:
查询原始信息'
select员工姓名,员工所属部门编号from基本信息表where员工编号=1
select部门编号,部门名称,部门人数from部门表where部门编号in(1,3)
declare@errorsumint
set@errorsum=0
update基本信息表set员工所属部门编号=3where员工编号='
update部门表set部门人数=部门人数+1where部门编号=03
update部门表set部门人数=部门人数-1where部门编号=01
print'
修改出错!
事务回滚,恢复原始数据'
rollbacktransaction
print'
修改成功!
保存到数据库!
committransaction
查看修改结果!
select员工姓名,员工所属部门编号from基本信息表where员工编号='
select部门名称,部门人数from部门表where部门编号in(1,3)
运行结果如图3-10所示:
图3-10部门调动图
3.6触发器的实现
3.6.1删除触发器
该触发器可实现,维护基本信息表和工资表之间的数据完整型,减少数据冗余,当用户从中删除一位员工的信息时,该触发器自动将该员工在工资表中的信息也随之删除。
该触发器的实现代码如下:
createtriggertri_dele
on[dbo].[基本信息表]
afterdelete
deletefrom工资表
where员工编号in(select员工编号fromdeleted)
update部门表
set部门人数=部门人数-1
where部门编号in(select员工所属部门编号fromdeleted)
3.6.2添加触发器
该触发器可以实现,当用户向员工基本信息表中添加一条信息的时,部门表中相应的部门总人数会触发加一。
其功能实现的代码如下:
Createtrigger[tri_bmrs]
afterinsert
set部门人数=部门人数+1
where部门编号=(select员工所属部门编号frominserted
3.6.3提示触发器
该触发器可以实现,当用户向员工信息表中插入信息时,如果该信息信息中的部门编号在部门表中存在,则提示插入成功,否则提示用户部门不存在,请重新输入。
Createtriggertri_hdxx
ifnotexists(select部门编号from部门表where部门编号in(select员工所属部门编号frominserted))
print('
在部门表中不存在该部门号!
请查找错误,并重新输入!
恭喜您输入成功!
3.7函数的使用
根据员工号查询员工工资
creaatefunction[dbo].[cx_gz]
(@ygbhint)
returnstable
return(select员工编号,员工姓名,(datediff(month,员工报到日期,getdate())*员工基本工资)员工应得工资from基本信息表where员工编号=@ygbh)
图3-11根据员工号查询员工工资
结束语
实践是检验真理的唯一标准,当然也是检验学习成果的标准。
在经过一周时间的数据库建设之后,才知道我们需要了解,自己的所学的理论知识应该如何应用在实践中,因为任何知识都源于实践,归于实践,所以要将所学的知识在实践中来检验。
实习期间,在李老师的指导下,和同学们的帮助下,通过自身的不断努力,无论是理论学习上,还是动手实践上,都取得了长足的发展和巨大的收获,实习之前觉得这一周时间真的太短,也学不到什么实质性的东西。
但当我真正着手处理时,就不能有丝毫小瞧的意思了。
一切的一切都需要我们用心去领悟并结合所学知识去操作。
实践,是一面很亮的镜子,能够通过它看出我们自身的缺点,能够通过它查找出自身缺乏的知识。
通过这次大型作业,我明显感觉到“书到用时方恨少”。
在以后的生活中我会不断地学习充实自己。
致谢
通过本次实训,我在李老师的认真指导下学到了很多,让我受益匪浅,学到了在平时课堂上学不到的。
本此课程设计,在李老师的指导下,我们小组成员的共同努力下,我才完成了本次的数据库的设计工作,在此要感谢李老师和我们小组的同学们。
在本次的课程设计中我学到了很多东西,既巩固了我的理论知识同时也培养了我们的团队意识,和团结合作精神,培养了我们对事情研究分析的严谨态度和创新精神,很大程度上提高了我分析问题,解决问题的能力,这非常利于我现在和今后的学习和工作。
这为今后进入社会打好了良好的基础。
在此我向我的指导老师,和小组的同学们致以真挚的谢意,谢谢你们的大力支持和帮助。
托尔
2010-1-14
参考文献
【1】C.D.Date
《数据库系统导论》,机械工业出版社,
2000
【2】林陈雷,
郭安源,
葛晓东,
《教育信息化系统开发实例导航》
人民邮电出版社,2003
【3】
张立科,《数据库开发技术与工程实践》,人民邮电出版社,2004
【4】
张红军,
王虹
等,
《Visual
basic
6.0
中文版高级应用与开发指南》,
人民邮电出版社,
2002
【5】
伍俊良
主编
等
《VB课程设计与系统开发案例》,清华大学出版社,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQLserver 数据库 论文