18143453325 在线咨询 在线咨询
18143453325 在线咨询
所在位置: 首页 > 营销资讯 > 信息时代 > 主动数据库管理系统(数据库)

主动数据库管理系统(数据库)

时间:2022-12-09 08:30:02 | 来源:信息时代

时间:2022-12-09 08:30:02 来源:信息时代

    主动数据库管理系统 : 对传统“被动”数据库管理系统的扩充,增加了主动服务机制,具有反应行为的数据库管理系统。其功能有:
(1)提供传统数据库系统所提供的所有功能。
(2)必须给用户和应用提供相应机制以说明所需的主动特性。
(3)必须能有效地实现(2)中所说明的主动特性,而且能与系统的其他部分,如查询、事务处理、并发控制和权限管理等有效地集成在一起。
(4)提供数据库设计和调试工具。
ADBMS的系统结构决定它的功能和实现它所需的组件。由于ADBMS必须提供传统数据库的功能和主动特性,因此可以将它看作是传统数据库的扩展。为提供主动性功能,ADBMS必须包含主动组件,例如,事件检测器、规则管理器、规则执行组件等。ADBMS的参考体系结构如图1所示。


图1 ADBMS的结构


按照基础数据库管理系统与主动组件之间的耦合程度,可以将ADBMS系统结构归结为三类:
(1)分层结构:所有主动数据库组件都集中在一个模块中,处在传统被动数据库系统的顶层。在这种结构下,为了监视感兴趣的数据库事件,主动数据库模块需要截获送给数据库系统的命令,或者是截获返回给用户或应用程序的数据。分层结构的优点是: 不需要修改被动数据库系统; 几个不同的被动数据库系统可以转换成具有统一界面的主动数据库系统,有利于主动数据库技术对异构系统的集成。其缺点是: 系统性能较差。主动数据库模块的实现不能直接访问被动数据库系统的子系统,如事务管理器、锁管理器、授权组件等,从而使得耦合模式、规则的并发控制、规则的授权等得不到支持。
(2)集成结构:所有主动数据库组件都成为数据库系统本身的一部分。在这种结构下,规则管理和处理都集成到数据库系统中,底层数据管理器监视数据的操作,当感兴趣的事件发生时通知主动组件。规则处理器在评估规则条件或者是执行规则动作时可以调用应用程序模块,或者是直接对数据库进行操作。当规则的条件或动作为数据库操作时,规则处理器还可以利用数据库系统的查询评估子系统。集成结构的优点是: 规则事件监视、条件评估和动作执行都能高效地进行。其主要缺点是: 需要修改现有代码,实现代价大; 此外,如果将不同被动数据库系统转换为主动数据库系统,可能会将被动数据库系统之间的差异带到主动组件中。
(3)编译型结构:编译型结构中,根本不需要运行时的活动,因为应用过程或者是数据库操作在被编译时,系统将自动修改它们,使其包含主动数据库规则的效果。这种方法的优势是: 不需要事件监控和规则执行组件,减少了实现任务的复杂程度,提高了系统的性能。但这种方法只适用于有限的应用语言、规则语言和规则集。
按照数据库数据模型的不同,主动数据库系统可以分为关系主动数据库系统和面向对象主动数据库系统。两者在处理主动特性方面的主要区别在于对各种事件的表示和监测。关系数据库系统中事件可以用独立的实体表示,独立的存储结构方便事件的修改和扩充。触发事件一般限制为对数据的插入、删除和修改等操作,有些系统提供查询作为触发事件。面向对象数据库系统在主动性功能的实现方面比关系数据库系统具有明显优势。在OODBS中,用户可以定义具有任意方法的新类,每种方法都能表示为一个事件,可以对它们进行检测。触发事件除了插入、删除、修改和查询等操作外,还可以提供其他事件,如时间事件、外部事件和用户定义的事件等,事件类型较丰富。OODBS能够提供更为复杂的规则和更灵活的检测手段。因此,面向对象数据库系统能够比关系数据库系统提供更多的主动功能。
主动数据库系统有基于关系数据库技术的,如POSTGERS、Starburst、Alert等系统,也有基于面向对象数据库技术的,如HiPAC、Ode等系统。如下为两个典型的主动数据库系统:
(1) POSTGERS系统: POSTGERS是美国加州大学伯克利分校研制的一个可扩充的主动关系数据库管理系统,最初的版本实现了一个集成的规则系统,在第二版中提供了二个可选的规则执行方式。一种是面向元组处理规则的元组级系统(tuple level system,TLS),另一种是类似于视图机制的查询重写系统(query rewrite system,QRS)。在TLS方式下,规则执行是面向元组或元组集的。POSTGERS仅支持数据库操纵事件,一旦数据库操纵事件发生,触发了相应规则,则马上评估条件,如果条件为真,则执行规则的动作。在QRS方式下,查询操作触发规则之后与被触发的所有规则的查询操作相结合,生成一个查询修改集合一起执行,提供所需的结果。POSTGERS同时提供这两种方式由用户选择,面向不同应用提供了多种不同的主动性功能。
POSTGERS的查询语言称为POSTQUEL语言。定义规则语句的形式如下:
define [tuple|rewrite]rule rulename is
on event to object where qualification
do [instead] action
其中,选项tuple表示规则在TLS方式下执行,rewrite表示在QRS方式下执行。事件为检索或数据库更新操作,对象为关系或关系的属性; 条件为POSTQUEL的谓词; 动作为POSTQUEL中的操作语句。规则条件和动作中可以包含NEW或CURRENT,表示更新后或更新前的元组值。POSTGERS中,所有的动作执行都是立即型的,作为触发规则命令的一部分一起执行。动作执行引发的事件可以触发其他规则,从而形成规则的嵌套执行。
(2) HiPAC系统: HiPAC系统是美国计算机公司主持的一个研究项目,是研究最早和最大的面向对象主动数据库系统之一。它提出的ECA规则模型具有丰富灵活的规则语义。HiPAC中所提供的事件有数据库操纵事件、时钟事件、外部事件和用户定义的事件等各种原子事件,也可以通过操作符构成复杂的触发事件。事件操作符有多个事件的或操作、事件序列操作、事件重复操作。
HiPAC系统通过嵌套事务模型支持E-C和C-A的立即型、延迟型和分离型耦合模式,其条件评估和动作执行分别以单独的子事务或顶级事务形式执行。在HiPAC系统中,对规则冲突解决的策略是以嵌套事务的形式并发执行的,规则也可以指定优先级,按照优先级的顺序执行。
HiPAC系统对数据操纵事件的检测采用了三种技术: 一种是硬接入,即事件检测代码加入对对象操作的功能模块中。另一种是基于包装的,即用附加的代码包装函数,执行已包装的函数时引发事件。还有一种是通过修改对象管理器的函数调用机制以引发事件。
在HiPAC中,对规则条件的评估使用了多种优化技术: ①基于触发信号的评估。优化时可以将事件检测、参数计算和条件评估一起考虑。②将中间结果实体化。实体化和缓冲部分中间结果将避免要对发生的事件反复评估,特别是对那些计算代价大的子表达式更有益。③应用增量评估技术。将规则条件所涉及的数据库状态实体化,即与规则条件相关的数据更新后所生成条件的新状态与更新前的状态值之差作为增量参与条件评估。④应用多重查询优化技术。收集多条规则条件的公共子表达式,对这些子表达式仅评估一次。与被动数据库中公共子表达式优化不同,主动数据库中要求被评估的公共子表达式其规则的触发事件和耦合模式必须允许这些条件并发评估。例如,R1={E,C1,A1},R2={E,C2,A2},如果这二个规则的E-C耦合模式是相同的,而A1与C2不冲突,则序列{E,C1,C2,A1,A2}是可串行化的,C1、C2可一起优化。

74
73
25
news

版权所有© 亿企邦 1997-2022 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭