数据库功能扩展技术研究与实现

上传人:E**** 文档编号:118274575 上传时间:2019-12-11 格式:PDF 页数:3 大小:190.55KB
返回 下载 相关 举报
数据库功能扩展技术研究与实现_第1页
第1页 / 共3页
数据库功能扩展技术研究与实现_第2页
第2页 / 共3页
数据库功能扩展技术研究与实现_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《数据库功能扩展技术研究与实现》由会员分享,可在线阅读,更多相关《数据库功能扩展技术研究与实现(3页珍藏版)》请在金锄头文库上搜索。

1、计算机科学2 0 0 4 V 0 1 3 1 N o - 1 0 ( 增刊) 数据库功能扩展技术研究与实现 R e s e a r c ha n dI m p l e m e n t a t i o no nt h eT e c h n i q u e so fE x t e n d i n gt h eC a p a b i l i t yo fD a t a b a s e 唐扬熊伟赵锋锐景宁 ( 国防科技大学电子科学与工程学院长沙4 1 0 0 7 3 ) A b s t r a c t E x t e n d i n gt h ec a p a b i l i t yo fd a t

2、a b a s ei sa ni m p o r t a n tt a s kf o rn a t i v ed a t a b a s et o d a yT of u l f i lt h ed e m a n d o ft h ed a t a b a s ea p p l i c a t i o nc u r r e n t l ya n df o l l o wt h en e wt e c h n i q u e s t h ek e yt e c h n n i q u e so fe x t e n d i n gd a t a b a s ec a p a b i l i t

3、 y i ss t u d i e d B a s e do nan a t i v ed a t a b a s em a n a g e m e n ts y s t e mG K D B a s e ,as c h e m ep r o v e db yp r a c t i c ei s g i v e n ,w h i c hd e s i g n sa n di m p l e m e n t st h eP L S Q Le n g i n ea n de x t e n d st h ea c t i v ea b i l i t yo fG K D B a s e K e y

4、 w o r d sP L S Q L t C u r s o r ,A c t i v ed a t a b a s e ,T r i g g e r ,E C Ar u l e 1 背景 数据库管理系统作为信息系统的核心部件,在 信息化时代所充当的角色是其它任何软件所不能替 代的。当前,国内各种基于国外商用数据库管理系统 的信息系统和指挥系统正在相当多的政府部门运行 着,这给国家的信息安全带来了严重的威胁。 针对这种情况,国内一些研究单位已开发出具 有自主知识产权的数据库管理系统,如G K D B a s e 。 G K D - B a s e 具有兼容S Q L 8 9 标准的S Q L

5、 引擎,为用 户提供了有效的数据库访问接口艟过试点应用 G K D - B a s e 被证明是安全和稳定可靠的,能够满足 各种信息系统的基本要求。但是G K D B a s e 缺少存 储子程序、主键外键约束、触发器等常用数据库功 能,严重影响了它的推广应用。如何在有限条件下扩 展数据库功能,替代国外同类产品,是目前国产数据 库发展研究的一个重要课题,也是影响我国信息化 建设的一个关键因素。 本文以国产数据库管理系统G K D B a s e 为原 型,研究了数据库功能扩展的关键技术问题,在兼容 原有的O r a c l e 系统应用的基础上提出一套经过实 践检验的解决方案设计实现了G K

6、D B a s eP L S Q L 引擎和触发器机制,并采用E C A 中介器扩展 了G K D B a s e 的主动功能。 2G K D B a s eP L S Q L 引擎的实现 P L S Q L 是O r a c l e 公司推出的一种过程式数 据库编程语言。它将S Q L 语言的关系数据处理能力 和过程语言的结构控制能力结合在一起,可以使用 过程语言的通用机制设计程序,也可以使用s Q L 语 句进行关系数据操作 1 。本节以O r a c l eP L S Q L V 2 3 为标准,在G K D B a s e 现有功能基础上,设计 并实现了G K D B a s e 的P

7、 L S Q L 引擎。 P L S Q L 引擎的基本功能是将用户的P L S Q L 程序通过词法分析器、语法分析器进行解析,生成中 闻代码并对其解释执行;如果在分析阶段或解释执 行阶段发现错误则向用户报告错误号及相应的错 误信息,以便用户排错。根据P L S Q L 语言兼有过 程式语句和S Q L 语句的特点,采取分而治之策略, 把过程语句和s Q L 语句分开处理。G K D - B a s eP L S Q L 引擎结构如图1 2 。 图1 G K D - B a s eP L S Q L 引擎结构 2 1 过程式语句 过程语言主要是完成程序语言中的逻辑操作, 主要包括表达式计算、

8、控制语句处理等。 表达式中最基本的组织方式就是所谓的“功能 - ) 车课题得到国家“八六三”高技术研究发展计划基金项吕资助( N oZ O O Z A A t 3 4 0 Z O ) 藉捅碰士研究生,主要研究方向为G I S 与数据库 技术熊伟博士研究生主要研究方向为G I S 与数据库技术景宁教授博士生导师,主要研究方向为G I g 空间数据库系统可视化技 术t I n t e r n e t 信息服务中心的数据库系统面向对象技术 8 4 复合”:指定个运算操作和它的操作数,操作数可 以是常数、数据对象或是其他的运算操作。在表达式 的处理中,主要涉及到P L S Q L 语言运算符操作、 类

9、型转换、函数调用、字符串操作等问题,这些问题 已经具有比较成熟的解决方案o 。 控制语句逻辑结构可以分为顺序结构、分支结 构、循环结构等,每一条语句经过词法语法分析后生 成的中间代码,作为一个分支加入语法树结构中,最 后由P L S Q L 引擎的解释器来执行。 2 2 S Q L 语句 对S Q L 语句的处理可以通过调用G K D B a s e 的S Q L 引擎来实现。G K D B a s e 提供了内部接口函 数X A P I 可以实现数据庠连接、S Q L 命令分析、 s Q L 命令执行、获取结果集、事务控制及其它功能。 在P L S Q L 引擎里,我们通过调用X A P I

10、 函数对 S Q L 语句进行处理。 2 5 游标 根据游标的不同用法,可以对显式游标、隐式游 标以及游标循环语句分别进行处理n 。 显式游标包括声明游标、打开游标、检索赋值、 关闭游标四个步骤。游标打开语句编译时搜索游标 名字,并根据名字在符号表中获取游标信息。游标检 索语句编译把S E L E C T 语句中将被赋值的变量保 存在个链表中,并检查S E L E C T 语句查询列的信 息和链表中变量的信息是否匹配。游标的关闭语句 编译在语法树中记录游标的关闭信息矗自台这些游 标语句的编译信息作为分支保存在语法树中,完成 编译。游标在解释执行器中的动作依据它的操作步 骤也是分为打开、检索赋值

11、和关闭操作来完成的。其 中比较复杂的是O P E N 语句和F E T C H 语句,其实 现流程如图2 和图3 【4 。 “ 竺:兰竺竺f 广一_ 一一f 薛:拿 1 一= 蘸:二二, 百萧醯磊忑 晕 0 。穗蠹融i i 。“镰麓蛰絮慧蠹幕嚣。, 图2 游标O P E N 操作图3 游标F E T C H 操作 对于隐式游标( 如s E L E c T I N T O 、u R D A T E 、D E L E T E 、I N S E R T 语句) ,作为一般的 s Q L 语句来处理,它的解释执行通过调用S Q L 引 擎来完成。 游标循环检索实现的关键是对循环条件的判 定。循环语句一

12、般把条件表达式或者游标的属性作 为判定循环条件。以表达式作为判定条件的循环语 句处理和一般过程式语言一样;以游标属性作为判 定条件的语句,则通过记录游标的状态信息对循环 进行判定。 2 4 存储子程序与包 存储子程序和包把功能独立并反复用到的代码 整合为一个命名模块存储在数据库中在要使用这 个模块时就传入参数值进行调用。 存储子程序和包是独立的P L S Q L 源程序,对 它们的实现与一般P L S Q L 语句块类似,可直接利 用已有的P L S Q L 引擎功能实现对其进行处理。不 同的是对存储子程序和包编译通过后要储存在数据 库中,调用时直接从数据库中读取。 5 主动功能的设计与实现

13、当前数据库应用的一个普遍要求是数据库管理 系统能自动监视关于数据库和外部环境的状态,即 要求数据库系统有主动能力。本文在实现G K D B a s e 触发器的基础上,采用E C A 中介器的方式实 现数据库的主动机制,支持对复合事件的探测。 5 1 触发韶实现的关键技术 触发器定义了当一些数据库相关事件发生时数 据库应采取的动作。触发器机制实现主要涉及到对 触发器语句块的编译和解释执行、触发事件的检测 以及触发条件的判决等关键技术问题。 触发器的编译和解释执行是实现触发器机制的 基础,可以在P L S Q L 引擎的基础上来实现。触发 器可以看作是特殊的存储于程序,因此可以采用现 有的P L

14、 s Q L 引擎对触发器的语句进行编译,把生 成中间代码保存在数据字典中;调用的时候从数据 字典中读取这些中间代码并由解释器解释执行。 触发器事件检测包括对事件的检测和存储,而 存储是其实现的关键娩E 发事件具有时间顺序,因此 存储时也必须按照严格的时间顺序进行存储。综合 比较各个数据库系统的事件表存储机制,我们选择 了S t a r b u r s t 的双H A s H 链表存储机制c s 。 触发器的条件判决机制是触发器的核心根据 S Q L 9 9 标准的定义,可以将触发器分为前触发、约束 判定和后触发三种类型,这三种类型触发器的判决 顺序策略如图4 。 触发器的条件评估是影响触发器

15、机制的重要因 素。在数据库环境中,大多数数据修改行为只能够影 8 5 晌到数据库的- - 4 , 部分内容,因此没必要每次都从 头开始评估触发器规则条件。R e t e 8 3 网络等增量条 件评估方法已经被证明是触发器条件评估( C o n d i t i o nE v a l u a t i o n ) 的有效处理手段,因此我们采用了 这个方法实现触发器的条件评估。 R e t e 网络只支持两路连接,对于一个有多个关 系参与的规则定义不同的连接顺序可以得到不同 的R e t e 网络。G K D B a s e 触发器根据数据字典信息 对条件进行评估。 国 图4 三种类型触发器的判决顺序

16、策略图 5 2 主动机制的实现 实现G K D - B a s e 的触发器机制后。通过引入 E C A ( E v e n t C o n d i t i o n A c t i o n ) 规则对复合事件进 行检测,可以实现数据库的主动功能啪。E C A 规则 条件部分的结构与s Q L 查询的W H E R E 子句结构 非常相似,根据E C A 规则条件可以构造出相应的 R e t e 网络进行条件判断。采用E c A 中介器的方式 实现了G K D B a s e 的主动机制。G K D B a s e 主动功 能体系结构如图5 所示。 图5 基于E C A 中介器主动功能实现体系结构 8 6 E C A 中介器将客户应用程序中的请求分离成 为E C A 规则部分、过程调用部分和s Q L 命令部分。 过程语句通过P L S Q L

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号