您好,欢迎来到二三娱乐。
搜索
您的当前位置:首页数据库中存储过程的研究与应用

数据库中存储过程的研究与应用

来源:二三娱乐
224机电技术应用ApplicationofMechanics-electronicsTechnology2019年7月上数据库中存储过程的研究与应用渊山西国际商务职业学院袁山西太原030031冤

摘要院存储过程作为一种重要数据库对象袁在数据库系统中起着非常重要的作用遥它可以有效提高数据库操作的效率袁减小网络流量袁增加安全性遥以SQLServer为例袁介绍了存储过程的概念尧分类尧优点尧创建等内容袁并通过实例说明存储过程的创建遥申永芳关键词院SQLServer曰存储过程曰分类曰应用中图分类号院TP311.1文献标志码院A0引言

随着互联网的不断普及和发展袁人们越来越多的日常行为都离不开网络信息系统遥而数据库作为信息系统的核心袁对系统的开发和运行起着决定性的作用袁对于数据库系统来说袁如何快速高效且安全的处理数据至关重要遥特别是进入大数据时代后袁各行各业的信息量比以前有着更快速度的增长袁尤其一些行业每天处理数据的增量呈几何方式的增长遥

数据成倍的增长则对数据库技术处理水平提出了更高的要求袁以此来解决由于信息的频繁读取袁而带来的与数据库之间交互时的各种问题遥那么怎样能从种类繁多尧数据量庞大的数据库中即快又准地查询到所需的信息袁而且要求系统能快速响应袁服务器端的负担又在可以承受范围内钥但单凭琐碎的SQL语句很难实现大量数据的快速响应袁而存储过程是解决这些问题的关键性技术存储遥

1过程的概念

在使用T-SQL语句对数据进行访问的时候袁一般有两种方式袁一种方式是通过网络将用户在客户端的T-SQL语句发送到服务器袁由SQLServer在服务器端进行处理袁然后将处理的结果通过网络返回给客户端袁并在客户端显示出来遥这种方式对于处理小的数据来说是没有什么问题的袁但是对于大量数据需要处理袁特别是涉及到数据库中的多个数据表就会给网络和服务器带为比较大的压力袁同时也增加了客户端的压力[1]数据的方式就是将T-SQL语句组成的程序段经过遥预另编一种译袁处存理储在服务器端袁当要使用这些语句段的时候可以直接调用袁它代替了SQL逐条语句执行的方式袁效率和速度都会大大提高袁而这就是存储过程所能解决优点

的2存储过程的遥

这种方式是使用存储在固定存储区域的一组T-SQL语句袁其执行结果和普通的SQL语句执行结果是一样的袁那么使用存储过程来操作数据库对象有什么优点呢钥

2.1存储过程实现了模块化编程

存储过程在创建完成后袁会被存储在相应的数据库中袁这样就能在实际应用程序中重复调用遥因此袁可用它去实现一些例行操作遥在工作中袁会有专人创建尧维护存储过程袁而完成特定功能存储过程会独立存放袁即使修改存储过程对应用程序的代码也不会有影响执行速度遥

2.2快

普通的SQL语句在执行的时候要先由系统编译袁然后才能执SQL行袁译袁当语每存句储组一过程合句袁都在要被创建解释后执行遥但是存储过程由于它是固定的执行存时储袁会过程被保时留袁系在统内已存对中SQL袁之后再语句次完成被了执编行时袁便可直接在内存中调取袁以后每一次执行此存储过程的时候不在需要重新编译袁加快了程序运行速度袁同时也简化了客户端编程袁提高了开发效率袁减轻了服务器端的负担[2]遥

作者简介院申永芳渊1981要冤袁女袁山西长治人袁硕士袁讲师袁研究方向院数据库遥

文章编号院1672-3872渊2019冤13-0224-02

2.3存储过程更适用于复杂数据库的操作

在用SQL语句去完成较为复杂的数据库查询时袁需对数据库中的表多次连接才能实现遥但存储过程可以一次执行多个语句袁所以它可以一次对多个数据表同时进行操作袁在实际使用的过程中袁往往将比较复杂的操作封装起来袁只需将数据库连接一次即可袁这样可有效提高数据库的操作效率袁在操作时一般会将存储过程和数据库所提供的事务处理结合后使用有效降低网络负载

2.4在对数据库进行操作时袁每执行一条SQL语句袁就需要将每一条语句先从客户端发送到服务器袁由服务器执行语句袁再将每一条的执行结果反馈给客户端袁这样的结果就是网络传输量大袁网络负载高遥而存储过程可以存储在服务器的数据库袁不需要每一条语句都通过网络进行传送袁执行结果也不用将每一条的执行结果由服务器传给客户端袁服务器和客户机之间的网络传输量因此会大大减少袁有效减少了网络负载提高完整性

2.5有效触发器是一种特殊的存储过程袁通过触发器对数据表进行操作的时候袁系统会强制性要求完整性检查袁从而增加系统安全性袁有利于维护数据的完整性遥同时袁由于存储过程实现了模块化设计袁在创建成功后袁便可以在程序中调用袁这样提高了程序的可维护性遥

2.6有效程的1权冤系增限袁统强从管了而理安全性

禁员止通未过授对用权用户户授对权数据袁使的用非户法具备访问执遥行2冤某在存网储络过中调用存储过程时袁只有执行过程的调用是可视的遥所以袁非法恶意的用户看不到表和各种数据库对象名称袁因此也无法嵌入所设计的T-SQL语句或去搜索关键的数据信息遥3冤允许对存储过程的设计参数化袁因此可以在存储过程的设计中对参数进行判断袁以检查是否合法袁这样有利于避免SQL注入攻击遥这是因为参数输入时会被看成文字值袁而不是可执行的代码遥因此袁非法入侵者把有损害系统安全的T-SQL命令插入过程内将更为困34存储冤存储过过程程的可以应用

进行加密袁这样有利于对源代码做模糊处理难[3]

遥遥

针对复杂的数据库或重复利用的SQL语句袁我们可以定义存储过程去解决实际问题遥因为存储过程中可以包含执行各项数据库操作的语句袁对于普通的查询语句可定义为不带参数的存储过程SQL袁但这样定义的意义不大袁大部分情况下需数据库语句为定例义说为明带带参有数参的数存的储存储过程要将反复使用的[4]过程遥在下实面际我操们作中以教的应用学管理[5]系统实例1院有一教学管理系统袁有成绩尧学生等表袁期末考遥

试结束后袁任课教师将学生的成绩录入到学院平台的成绩系统中袁在后期老师还会查询自己所授课班级学生的成绩袁如以课程班编码野T1021804冶为例袁用存储过程实现查询遥为根据课程班灵活地查create询学生成绩袁需在存储过程中引入一个参as

procsp_grade@c_classidchar(8)数遥2019年7月上ApplicationofMechanics-electronicsTechnology机电技术应用225selectgrade.sid,sname,com_score,m_score,l_score,t_scoreFromgradeasg,studentass

whereg.sId=s.sidandc_classid=@c_classid

实例2院考试成绩公布后袁需根据学生所选课的课程号对课程班成绩的等级自动划分遥

CREATEPROCEgrade_level_set@c_classidchar(10)AS

SELECTgrade.sidas学号,snameas姓名,t_scoreas分数,CASE

WHENt_score<60THEN'不合格'

WHENt_score>=60ANDt_scoree<70THEN'合格'WHENt_score>=70ANDt_score<80THEN'中等'WHENt_score>=80ANDt_score<90THEN'良好'WHENt_score>=90ANDt_score<=100THEN'优秀'ENDAS'等级'FROMgrade,student

WHEREgrade.sid=student.sidANDc_classid=@c_classidORDERBYt_scoreDESC

执行语句院execgrade_level_set@c_classid=\"T1021804\"

实例3渊带输出参数的存储过程的应用冤院创建在添加学生记录时袁学号有自增功能的存储过程遥createprocsp_autosid

@cidchar(6),@new_sidchar(8)outputas

declare@max_sidchar(8),@char_twosidchar(2),@int_twosidintset@max_sid=(selectmax(sid)fromstudentwhereclassid=@classid)IF@max_sidisnull

set@new_sid=@classid+\"01\"elsebegin

set@char_twosid=rtrim(@max_sid,7,2)

set@int_twosid=convert(int,@char_twosid)+1set@char_twosid=convert(char,@int_twosid)iflen(@char_twosid)=1

set@char_twosid=\"0\"+@char_twosidelse

set@new_sid=@classid+@char_twosidend

执行此存储过程的语句院decalre@get_sidchar(8)

execsp_autosid'180201',@get_sidouputselect@get_sidasnewsid

4结束语

综上所述袁存储过程作为数据库使用的常见方法袁它不仅可以将复杂数据库的操作简单化袁而且还可以有效提高数据库的安全性袁提升数据库操作的效率袁减少了网络流量和服务器的负载遥同时袁由于存储过程给用户提供了接口袁用户可以用其它语言进行编程实现对数据库的操作袁有效扩展了数据库系统的应用遥在实际的系统开发和数据库应用中袁由于引入了存储过程袁开发者的编程效率得到了大大的提高遥

存储过程带来的好处是显而易见的袁提高了数据库与应用系统的交互性能袁但是在使用的时候袁也并非存储过程越多越好遥主要原因是如果应用系统的设计逻辑发生变更袁则存储过程要进行修改起来也是比较麻烦袁所有涉及到相关数据表的地方都要重新进行设计袁但是修改存储过程没有修改SQL灵活袁因此在实际应用中要根据具体情况和实际工作经验来确定如何编写存储过程遥

[1]左振辉袁陆世炜.设置安全的SQLServer[J].网络安全和信息化袁2019(3)院114-116.

[2]于康娟.SQLServer触法器的应用[J].太原学院学报(自然科学版)袁2018袁36(4)院64-66.

[3]皇甫大双.浅谈SQLServer中存储过程技术的研究与应用[J].电脑迷袁2018(12)院147.

[4]许泽杰袁丁赞.基于MicrosoftSQLServer存储过程的院内医疗报表统计分析[J].中国医院统计袁2017袁24(6)院401-404.

[5]杨浩宇.SQLServer2008多表数据查询的实现方式[J].电脑与电信袁2017(11)院80-81+84.

参考文献院

以满足未来智能车辆自动驾驶的需求遥

LTE-V2X作为面向车路协同的通信综合解决方案袁满足车联网多种应用的需求袁并且基于TD-LTE通信技术袁从而能够最大程度利用TD-LTE已部署的网络及终端芯片平台等资源袁节省网络投资袁降低芯片成本袁无需额外投入过多的建设成本遥相比DSRC而言袁LTE-V2X更为适合在5G条件下面向智能交通的车联网技术袁后续发展潜力很大遥

渊上接第223页冤

间的通信采用PC5接口遥LTE-Uu接口传递的信息分为两种袁一种是将应用层信息传递给应用服务器袁另一种为系统与调度信息袁用于分配和调度PC5接口无线资源遥PC5接口协议基于E-UTRAN的Side-link能力遥LTE-Uu接口和PC5接口工作在不同的频段遥

3结论

综上所述袁车联网的出现对汽车尧交通尧通信等相关产业的发展具有重要意义袁随着通信技术的不断完善尧车联网技术的不断发展袁车联网的研究和发展将朝着更快速尧更智能化尧更便捷和更安全的方向发展袁以5G为基础的车联网亦将发展越来越快袁应用越来越广泛袁最终成为未来社会生活中重要的一部分遥[1]孙婷婷,刘兆惠,吕明新袁等.基于V2V通信技术的车辆防撞预警系统研究[J].山东交通科技袁2016(2)院16-18

[2]陈前斌袁柴蓉袁岑明.车联网将何去何从[J].中兴通讯技术袁2015袁21(1)院47-52.

[3]韩威.基于SDN的车联网信息交互[D].青岛院青岛大学袁2017.[4]孔少杰.车载自组织网络安全认证体系与信任模型研究[D].上海院上海交通大学袁2010.

参考文献院

图1通信网络结构

如图1所示袁UE与E-UTRAN节点之间的通信采用LTE-Uu接口袁UEA渊Vehicle冤与UE渊Vehicle尧pedestrian尧stationary冤之

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yule263.com 版权所有 湘ICP备2023023988号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务