欢迎投稿

今日深度:

数据库技术之存储过程设计与实现(二),数据库技

数据库技术之存储过程设计与实现(二),数据库技术存储过程


原创性申明

此博文的出处 为 http://blog.csdn.net/zhujunxxxxx/article/details/39251353如果进行转载请注明出处。本文作者原创,邮箱zhujunxxxxx@163.com,如有问题请联系作者

存储过程的生成流程图

在上一篇的文章中我们知道了由一个存储过程的语句生成一个语法树,但是这个语法树的保存在数据库系统中,这里给出一个存储过程的存储方案

可以看出存储过程的原来的sql语句是保存在一张表里面的。并且也把存储过程的语法树保存在了内存中,方便执行,不用再次编译了。

存储过程的执行流程图

在得到了语法树过后怎么执行这才是关键的。我们为了降低系统的耦合,原来系统中有的功能呢我们就不在去实现了,就利用系统自带的,存储过程是一个过程性的语言,必然有很多的计算,为了降低系统的复杂度,我么们需要把存储过程中遇到的表达式全部交有数据库引擎去执行,我们存储过程中嵌入的sql语句也交给了数据库引擎来执行。

这样的话我们就可以不用考虑sql语句的处理。降低了耦合度,也提高了逻辑难度。

 

我给出的这个流程图并没有包括所有的执行分支,反正具体的执行流程就是这样子的,然后其中没一个节点的处理方法也是有的

这一部分我是参照postgresql数据库的做法来做的

运行中的变量作用域

在存储过程执行的过程中有的的变量的作用范围是全局,有的范围是局部,解决这一问题的方法就是使用栈的数据结构来保存变量,这个数据结构我在上一篇文章中有给出来

这个是一篇论文中给的一副图,不过我的堆栈式用的Map来做,这样便于查找,没次查找变量的时候就从当前层找,找不到在往上一层找。这个数据结构就很好的解决了变量作用域的问题

 此博文的出处 为 http://blog.csdn.net/zhujunxxxxx/article/details/39251353如果进行转载请注明出处。本文作者原创,邮箱zhujunxxxxx@163.com,如有问题请联系作者


数据库中存储过程有什作用?

第一:存储过程因为SQL语句已经预编绎过了,因此运行的速度比较快。
第二:存储过程可以接受参数、输出参数、返回单个或多个结果集以及返回值。可以向程序返回错误原因。
第三:存储过程运行比较稳定,不会有太多的错误。只要一次成功,以后都会按这个程序运行。
第四:存储过程主要是在服务器上运行,减少对客户机的压力。
第五:存储过程可以包含程序流、逻辑以及对数据库的查询。同时可以实体封装和隐藏了数据逻辑。
第六:存储过程可以在单个存储过程中执行一系列 SQL 语句。
第七:存储过程可以从自己的存储过程内引用其它存储过程,这可以简化一系列复杂语句。

其实存储过程还可以控制权限,比如一个表不直接允许用户直接访问,但要求允许用户访问和修改其中一个或多个字段,那就可以通过一个存储过程来实现并允许该用户使用该存储过程。

还有,如果多条SQL语句执行过程中,过程环节返回了数据作为后面环节的输入数据,如果直接通过SQL语句执行,势必导致大量的数据通过网络返回到客户机,并在客户机运算;如果封装在存储过程中,则将运算放在服务器进行,不但减少了客户机的压力,同时也减少了网络流量,提高了执行的效率。
 

数据库设计是指设计数据库管理系统这句话为何是对错的

错!
数据库设计(Database Design)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。在数据库领域内,常常把使用数据库的各类系统统称为数据库应用系统。
数据库管理系统(database management system)是一种操纵和管理数据库的大型软件,是用于建立、使用和维护数据库,简称dbms。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过dbms访问数据库中的数据,数据库管理员也通过dbms进行数据库的维护工作。它提供多种功能,可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。它使用户能方便地定义和操纵数据,维护数据的安全性和完整性,以及进行多用户下的并发控制和恢复数据库。
一个是应用;一个是平台。
 

www.htsjk.Com true http://www.htsjk.com/shujukunews/3211.html NewsArticle 数据库技术之存储过程设计与实现(二),数据库技术存储过程 原创性申明 此博文的出处 为 http://blog.csdn.net/zhujunxxxxx/article/details/39251353如果进行转载请注明出处。本文作者原创,邮箱...
相关文章
    暂无相关文章
评论暂时关闭