• 1.10 MB
  • 2022-04-22 13:35:49 发布

具有二次开发平台的 S Q L server 数据库设计毕业论文.doc

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