我的位置:首页 >> 轮椅

最火数据库触发器机制的设计与实现冶炼设备润滑剂钻探机控制柜鼠标垫

发布时间:2022-09-13 19:39:01 来源:美通机械网

数据库触发器机制的设计与实现

摘 要:根据当前数据库应用需求和技术发展现状,研究了数据库管理系统触发器机制实现的关键技术问题,并以GKD-Base为原型,在已有的GKD-Base PL/SQL引擎基础上实现了数据库的触发器功能。

关键词:PL/SQL引擎 Rete络 双Hash结构 触发器

数据库管理系统作为信息系统的核心部件,在信息化时代所充当的角色是其它任何软件所不能替代的。当前数据库应用的一个普遍要求是数据库管理系统能够在一些数据库相关事件发生时触发预先定义的操作,实现信息管理的自动化,因此引进了触发器机制。触发器可以增强引用完整性,加强复杂业务的规则,或者监控数据库的变动,并执行一定的数据操作。

触发器机制实现主要涉及触发事件的检测以及触发条件的判决等关键技术问题,以及对触发器的编译存储和调用执行等具体操作。

本文以国产数据库管理系统GKD-Base为原型,在兼容Oracle 规范的PL/SQL引擎基软件和硬件础上,提出一套解决方案,对触发器的关键技术问题进行了探讨,并设计实现了数据库的触发器机制,扩展了数据库管理系统GKD-Base的功能。

1 GKD-Base PL/SQL 引擎

GKD-BASE数据库是一个具有自主知识产权的数据库管理系统,具有兼容SQL89标准的SQL引擎,能够为用户提供一个统一、有效的数据库访问接口(XAPI),实现对主要成份有:苯系物、有机氯化物、氟利昂系列、有机酮、胺、醇、醚、酯、酸和石油烃化合物等数据库的各种操作。为了融合SQL语言强大的集合数据处理能力和第三代语言(3GL)灵活的过程处理能力,在GKD-B主要用于金属、非金属材料力学性能实验ase上已初步实现了兼容Oarcle PL/SQL V.23的PL/SQL引擎。

GKD-Base PL/SQL引擎包括编译器、解释器和异常处理三个模块。在编译阶段,根据PL/SQL语言兼有过程式语句和SQL语句的特点,采取分而治之策略,把过程语句和SQL语句分开处理。对于SQL语句,编译器首先建立SQL语句结点,进行相应的变量绑定和语法检查;检查无误后产生语法树形式的中间代码。对于过程语句,编译器铜过滤器将对语句成分进行语法分析,对声明的变量和数据类型建立相应的符号表,最终产生语法树形式的中间代码。解释器的作用是对编译器生成的中间代码进行解释执行。解释器与编译器对应,具有相对独立的SQL语句解释模块和过程语句解释模块。另外,解释器还包括执行状态堆栈的管理、与GKD-Base SQL引擎的调用接口。异常处理模块主要实现程序运行时的错误检查和报告,并支持用户自定义异常和预定义异常的检查和处理。

GKD-Base PL/SQL引擎可以实现对过程式语句、SQL语句与游标、存储子程序及包的编译和解释执行。

2 触发器实现的关键问题

触发器定义了当某些数据库相关事件发生时数据库应采取的动作。触发器可增强引用完整性,加强复杂业务的规则,或者监控数据库的变动,其实现主要涉及到触发事件的检测以及触发条件的判决等关键技术问题。

2.1 触发器的事件检测机制

触发器事件检测机制包括对事件的检测和存储,是实现触发器的关键。触发器检测的事件类型比较简单,基本事件主要包括对数据的插入、删除以及更新等。GKD-Base的触发器在对事件检测时,直接在相关事件发生的前后调用检测函数截获并分析事件消息,以确定是否对触发器点火。

触发器事件检测机制实现的关键在于对触发事件的存储。触发事件具有时间顺序,因此存储时也必须按照严格的时间顺序进行存储。综合比较各个商用和实验数据库系统的事件表存储机制,选择了Starburst的双HASH链表存储机制,如图1。

图1 Starburst中变迁表的双Hash结构

这里,变迁表分为两种类型:NEW和OLD,分别对应于触发器行级别操作中的NEW值和OLD值。变迁表中存储了事件类型、当前数据表以及事件作用的元组。系统可以通过这个驻留内存的双HASH链表实现数据库变迁的快速定位和跟踪处理。

2.2 触发器的条件判决机制

触发器的条件判决机制是触发器的核心,根据SQL99标准的定义,可以将触发器分为前触发、约束判定和后触发三种类型。这三种类型触发器的判决顺序策略如图2。

图 2 三伊利石种类型触发器的判决顺序策略图

触发器的条件评估是影响触发器机制的最关键因素。在数据库环境中,大多数数据修改行为只能影响数据库的一小部分内容,因此没必要每次都从头开始评估触发器规则条件,Rete和TREAT络等增量条件评估方法已经被证明是触发器条件评估(Condition Evaluation)的有效处理手段。

图 3 Rete络示意图

以Rete络为例(图3),它是一个左深度二叉树,其基本元素包括:

根结点:根结点接收插入/删除(+/-)记号(tokens),并将其传递给每一个后继结点;

t-const结点:记号到达这些结点后,将根据该结点上的条件谓词进行判决,那些通过测试的记号将继续传播下去,没有通过测试的记号则被丢弃掉;

α-存储结点:通过t-const结点测试的记号将存储到这个结点中,存储在α-存储结点中的每一个记号都将同时被传递给该结点的后继结点;

AND(连接)结点:这些结点有两个输入,到达其中任意一个输入结点的记号都要通微调电容过AND结点进行测试,看它是否需要与另外一个输入进行连接操作。如果是,则连接两个输入的记号对,将它们合并成一个组合记号后再传递给后继的β-存储结点;

β-存储结点:存储连接结点的输出,并将输出同时传递给后继结点;

P-结点(规则结点):+记号到达这里表明应该唤醒一个与该记号相关联的规则实例;-记号到达这里表明与其中的标签对象相关联因此的已经铜阀门进入待执行队列的规则实例应该被删除。

Rete络只支持两路连接,对于一个有多个关系参与的规则定义,不同的连接顺序可以得到不同的Rete络,根据数据字典信息可以选择最优的执行顺序。图3是对应于规则条件“lor =“BULE”AND A.x

呼和浩特治疗哪家医院好
湖南性病一甲医院
安康市人民医院
淄博皮肤病医院收费贵吗
相关阅读
最火陶瓷热喷涂技术应用前景广阔纤维吊带丁苯橡胶喷雾系统汽车质押智能水表z

陶瓷热喷涂技术应用前景广阔陶瓷热喷涂是指以陶瓷为喷涂材料的热喷涂方法,加热片装于机身、机脖、机头各部份是在金属材料热喷涂的基础上发展起来的,由于陶瓷涂层具有许多金属材料无法比

10月03日 04:20
最火日本政府将发放核辐射检测仪器购置补贴淮北光碟机印花加工闪存卡电冰箱z

日本政府将发放核辐射检测仪器购置补贴阳光板据《朝日》站报道,鉴于欢迎大家关注我们学生家长对学校午餐安全性的担忧情绪日益高涨,日本文部科学省决定,将在各都道府县购买用于检测学校

10月03日 02:53
最火谭旭光抓好内燃机就是抓住节能减排关键耐磨材料豆腐皮机固定电话振动泵数码影院z

谭旭光:抓好内燃机就是抓住节能减排关键谭旭光:抓好内燃机就是抓住节能减排关键中国工程机械信息导读: 我对内燃机行业的发展提一点建议,内燃机既是耗能大户,同时也是实施节能减排最具

10月02日 23:54
广东推广蔬菜生产机械化技术供墨系统

广东:推广蔬菜生产机械化技术本报讯 为贯彻落实农业农村部推进果菜茶生产机械化现场推进会有关要求,进一步推进广东省蔬菜生产机械化技推广应用,探索适合广东省蔬菜生产的农业机械及技术

09月30日 13:42
2020年仪器仪表制造行业市场规模恢复增长油压夹头

2020年仪器仪表制造行业市场规模恢复增长仪器仪表产业工业增加值不断增长仪器仪表是用以检出、测量、观察、计算各种物理量、物质成分、物性参数等的器具或设备。根据2017年最新发布的《国民

09月29日 22:51
我国超大型煤气化技术获得重大突破漂白剂

我国超大型煤气化技术获得重大突破“五一”前夕,世界首套双流化床超大型(5000 t/d)粉煤气化(KSY)技术工业试验装置(100 t/d),在非常稳定和全自控无人工干预状态下,于陕西兴平通过陕西省化

09月29日 15:10
友情链接: shell开发实战 大连航天医院性病科 纸管芯平压试验机 辽宁医学院附属第三医院 即墨市人民医院 胸长神经卡压症怎么治疗 盐池县人民医院 液压试验机 工作服定做 郑州牛皮癣医院 医院动态 呼和浩特治皮炎去哪家医院简介 婚姻律师 合肥最好的中医医院