logo资料库

主动数据库论文.doc

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
主动数据库 XXX XXXX 摘要:传统的数据库系统已经不能适应当今的现代应用,近年来主动数据库的研究发展非常迅速,而且被应用到许多 领域,如过程控制、网络管理、办公工作流控制等,主动数据库已经成为了数据库研究领域一个前沿的方向。主动数 据库除具有传统被动数据库所拥有的全部功能之外,还通过 ECA 规则拥有自主反应的特性,能有效地对数据完整性 和一致性的进行自动维护,满足高级数据库和实时应用需求,提供主动服务的功能。随着理论和技术的不断完善, 这一计算机科学领域必将越来越成熟,其功能完善的产品随着技术的进步,也将会得到更加广泛的应用。 关键字:主动数据库;ECA 规则;主动服务 1.概论 随着科学技术的不断发展和计算机应用范围 的不断扩大,数据库在各种应用领域中起着越来 越重要的作用,其应用从常见的状态监控、安全 监控、故障监控,到军事或民用部门的协同工作 以及各种 MIS 和决策支持系统 [1]。传统数据库在 数据存储与检索等方面,已经为用户提供了各种 很好的服务,但是传统的关系型数据库系统是被 动的,只有通过用户或应用程序向数据库提交命 令,才能完成数据的检索、创建、修改和删除等 操作。而现代应用中存在着大量的主动性需求, 例如各种过程控制、网络管理、商务建模与应用 、设计与管理、办公工作流控制等,经常要求数 据库系统具有某种监视和报警功能,能够主动响 应某些操作或外部事件,主动数据库能较好地满 足这种主动服务的应用需求,它是现代数据库技 术的一个崭新的发展分支,是现代数据库技术与 人工智能技术相结合的产物,是目前数据库技术 中一个正在发展的活跃领域 [2]。 主动数据库是指在没有用户干预的情况下, 能够主动地对系统内部或外部所产生的事件作出 反应的数据库 [3]。它的主要设计思想是要用一种 统一而方便的机制实现应用对主动性功能的需求, 即系统能把各种主动服务功能与数据库系统集成 在一起,以利于软件的模块化和软件重用,同时也 增强了数据库系统的自我支持能力。 在功能结构上,一个主动数据库系统(ADBS) 由一个传统数据库系统(DBS)和一个事件驱动的 知识库(EB)和相应的事件监视器(EM)组成。DBS 等同于一般数据库系统,用来存储数据和对数据 进行维护和运用。事件库 EB 是一组由事件驱动的 知识的集合,每一项知识表示在相应的事件发生 时,如何来主动地执行其中包含的由用户预先设 定的动作。EM 是一个随时监控 EB 中的事件是否 已经发生的探测模块,一旦探测到某事件已经发 生时就主动地触发系统[4]。 主动数据库是相对于传统数据库的被动性而 言的,主动数据库相对传统数据库有以下特点 [5]: (1)具有 ECA 规则:在主动数据库中需要用户 定义后描述规则,系统根据规则,实现主动机制。 (2) 具 实 时 性 :当 程 序 收 到 外 部 传 来 的 信 息 时,能够马上对其进行实时处理。 (3)交互性:提供了更加方便灵活的人机交互 接口。 (4)“快照”功能:把系统的一些瞬时状态能 够自动地进行记录或者是输出,这种特性有助于 日志的自动建立。 (5)对传统数据库功能的加强:“一致性”和 “完整性”等约束的检查更加灵活,增强了多库 间的同步和通信功能。 2.国内外发展现状 2.1.主动数据库应用现状 1976年Eswaran最早提出了触发器的概念,但 一直到1983年,在第九届国际超大型数据库学术 会议上才正式提出了主动数据库的概念,欧美一 些国家开始对主动数据库进行了专门研究,当时 称主动数据库为“带规则的数据库系统”。当时 的异常处理是一种能根据程序执行中异常情况的 发 生 而 能 主 动 执 行 某 些 预 先 设 定 动 作 的 编 程 措 施,传统数据库系统中的完整性和一致性等约束 的检查也可认为是主动进行的。因此,在一些己 有的系统中,已经存在了一些“主动性”,只是这 些功能不够完善,事件是在系统设计时设定好的, 用户无法根据自己的需求来进行设置。到80年代 末期至90年代,有关主动数据库研究成为数据库
领域的热点问题[6]。 应用领域的需求和计算机技术的飞速发展推 动着对数据库技术的研究,自提出主动数据库的 概念以来,学者为研究使数据库具有主动服务的 能力进行了大量探索,在关于主动数据库的多次 国际会议中,一些研究小组提交了有关主动数据 库技术的论文,相继构造了一些主动数据库系统 的模型和原型 [7]。 目前国内外有多个有关主动数据库的研究计 划 , 著 名 的 如 HiPAC 、 Postgress 、 Sentinel 、 Chimera、Starburst、Ode、Ariel、NEOS 等。 (1)HIPAC 是威斯康星大学为它的一个面 向对象数据库而开发的,具有“事件一条件一动 作规则”和时间约束处理功能。 (2)Postgress 是加州大学伯克利分校在一 个关系型数据库管理系统的基础上扩充“条件一 动 作 库 ” 后 形 成 的 系 统 。 这 种 原 型 最 早 出 现 在 1986 年,经过几次设计更新,在 1990 年发布了 使用新规则系统的新版本,增加了多存储管理器 的支持,并且改进了查询执行器。这种 Postgress 模 型 加 入 了 可 自 动 触 发 的 规 则 机 制 , 支 持 ALWAYS、ONCE、NEVE 三类规则,,后来在财 务数据分析系统,一个喷气引擎性能监控软件包, 一个小行星跟踪数据库,一个医疗信息数据库和 一些地理信息系统等研究领域得到应用。 (3)Ode 系统该系统由 Bell 实验室设计, 采用面向对象语言,主动规则以约束和触发子的 形式表达。采用自动机检测复合事件。 (4)SAMOS 系统由瑞士 Zurich 大学研制, 建立在面向对象数据库环境之上,具有丰富的事 件描述语言,首次提出将事件作为时间轴上的一 个点,这对将事件拓展到时序空间提供了依据。 (5)Starburst 系统是由 IBM 公司 Almaden 研究中心研制的,该系统是在可扩充关系数据库 管理系统中结合了面向集合的产生式规则。采用 集中式的规则体系,在系统内部存在着一个冲突 协调器,当多个规则被触发时,依据一定的判定 算法,来选择一定的顺序依次执行这些规则。 随着数据库的广泛应用,许多系统的设计开 发与数据库的联系越来越紧密,数据库技术再给 人们带来便利的同时,也体现出了传统数据库只 能做“被动服务”的局限性,而实际应用中需要 数据库的主动性服务,例如 [8] (1)实时监控功能: 在仓库管理、仪器设备管理以及生产过程控 制等,常常需要各种实时监控功能,包括状态、 性能、功能、以及故障检测控制等等,这些实时 监控需要系统能信息提供报警提示并主动做出必 要的反应。 (2)方便而灵活的人一机交互接口 为了使应用软件系统实现方便灵活的人一 机交互功能,要求应用系统具有某种主动地发现 外部接收设备发来的中断信号的能力。 (3)异常情况主动处理与自动恢复能力: 当应用软件运行过程中出现异常情况时,理 想的系统不仅有报警功能,而且应有主动处理乃 至自动恢复的能力,以使系统具有一定的冗错功 能。 (4)自适应和学习功能: 应 用 系 统 能 根 据 周 围 环 境 发 生 的 变 化 主 动 地做出反应,这在军事上十分有用,例如带自动 跟踪系统的精确制导导弹,能根据地形、天气、 目标运动状态的变化和对方侦察设备的改变作出 适当的调整,或者不被对方假目标所迷惑,需要 系统具有良好的自适应和学习功能。 在传统的数据库管理系统中,除了能主动地 做一些数据的一致性和完整性检查之外,不再有 其他的主动性设施。目前人们研究工作主要集中 在主动数据库的实现模式和方法上,近年来,一 些商品化的数据库管理系统,例如SQLServer、 oraCle和Sybase等数据库系统,都陆续引进了主 动处理的概念,随着人工智能技术的发展和面向 对象设计的理念逐步深入,数据库的主动性功能 正在各种应用中发挥越来越大的作用。 在国内,对主动数据库技术的研究起步较 晚,将主动数据库技术应用于实际系统的也比较 少,但是近年来由于技术的进步,已经将面向对 象数据库和主动数据库技术结合运用在信息管理 系统上,并且取得了很大的发展。 2.2.主动数据库技术研究现状 2.2.1.主动数据库执行规则 主动数据库的主动性主要是通过规则机制实 现的,常采用事件驱动的 ECA 规则模型,即事件- 条件-动作(Event-Condition-Action)规则。每条 规则指明“当什么事件发生时,在什么条件下执 行什么动作”。ECA 规则预先嵌入数据库系统, 由事件探测器负责检查这些规则是否已经发生。 一般形式可以表示为[9]: RULE<规则名>[(<参数>,…)] WHEN<事件表达式>
IF<条件 1>THEN<动作 1>; ……… IF<条件 n>THEN<动作 n>;(n>=1) END-RULE[<规则名>] ECA 规则由事件、条件、动作三部分组成.其 中事件、条件、动作的描述如下:事件(Event) 是引发规则执行的原因,事件有“简单事件”和 “复合事件”两种,简单事件是事件定义的基本 单位,表述的的是在任意时刻在系统内部或系统 内部发生的事件。复合事件以简单事件为基本单 元,由简单事件或复合事件通过事件运算符来定 义而成的,常见的事件运算符包括逻辑运算符(例 如 and、or、not、implies 等)以及时序运算符(例 如:sequence、first occurrence、5 second following 等);条件(Condition)是指规则被执行后要检查 的内容,规定执行行动时数据库相关部分或外部 环境处于何种状态,是判断数据库的状态是否达 到执行主动动作的标准;动作(Action)是规则被 触发且条件为“真”时要执行的动作,包括系统 定义的动作、应用程序、数据检索修改更新、数 据检索、事物的控制操作(提交或回滚)、调用 的任意过程/方法等。 上述事件驱动的“事件-条件-动作”规则的 语义是:当 ECA 规则规定的事件发生时,计算机就 主动触发执行 IF-THEN 规则,即当条件满足时执 行相应的动作,约束项规定执行规则动作的约束 条件,并且接着逐个检查下一个 IF-THEN 规则,直 到执行完为止. 2.2.2主动数据库系统体系结构 结合研究和实际系统开发中的经验,人们提 出了用以实现主动数据库系统抽象模型的主动规 则体系结构。它的体系结构应该具有高度的模块 性和灵活性,其主要部件如下: 1 事件 监测器 :确定 规则所关 心的事 件是否 发生。原始事件由数据库或外部源提供,复合通 报是指原始事件加上从历史记录中获得的已发生 事件的信息。 2 条件 评估器 :评估 与被监测 事件相 关联的 规则的条件部分。 3 调度 器:比较 当前被触 发规则 与先前被 触 发规则,修改冲突集,触发被调度为立即处理的规 则。 态.以上每一部分的功能极大地依赖主动数据库 所支持的知识模型和执行模型,也受主动数据库 所在开发环境的影响。当前,可确定两种主动数 据库的范畴。 1 层次型:在被动数据库的顶层部分,将主动 功能部分作为它的一层来进行开发。这种方法的 优点是无需访问被动数据库的源代码,所产生的 主动系统可以轻松的移植到不同的被动系统。但 是由于缺乏对底层数据库内核的访问会影响系统 的执行,也会限制对耦合模式及优化的支持。 2 集成 型:通过 改变原有 被动数 据库的源 码 来开发主动部分。这种方法解决了在层次型中主 动数据库设计者的限制问题,在开发工业系统中 是一种比较好的模型。但是。为了支持高效的主 动能力,系统所要求改变的内分与内核挂钩. 由于目前大部分主动数据库是在传统的数据 库管理系统或者是面向对象数据库管理系统上研 制的,其体系结构大多是扩充数据库管理系统的 事务管理部分、对象管理部件以支持知识模型和 执行模型。此外,另增加事件监测部件、条件评估 部件及规则管理部件。 2.2.3主动数据库实现技术 目前主动数据库采用以下几种技术实现 [10]: 1.改造的途径 在原有的关系型数据库上添加事件库和事件 监控器,在应用程序运行的同时,由事件监视器来 监视事件的发生,并根据库中所示自动触发相应 活动,来完成主动数据库的功能。这种方法最简 单,能充分利用现有技术和资源,但是效率差。 2.嵌入主动程序设计语言 改造或重新设计一种程序设计语言,在程序 中进行ECA的结构描述,将规则库作为一个对象, 在程序语言中被说明和使用,然后程序将传统数 据封装起来,来完成主动服务。这是一种折中的 方案,改造的工作量适中,除了在两种语言的接 口部分可能损失一定的效率之外,运行效率较高。 3.重新设计主动数据库的途径 针对主动数据库的特点,设计全新的数据系 统,其中数据存储方法、系统结构等都是完全重 新设计的。这种方法最彻底,运行效率高,但是 开发开发较为复杂,开发时间较长,工作量较大。 实现主动数据库系统的关键在于实现一种 4 查询执行器:执行数据库查询或者动作。为 了支持监视数据库的演化,要求不但能够访问数 据库当前状态,而且也要能够访问数据库历史状 有效的事件监视器。时间监视器在能有效地检测 出各种事件的发生的基础上,又不能因为时间监 视器的加入,而降低原系统的运行速度。这需要
软件与硬件的有效结合来解决问题,下面提供几 种可供选择的实现机制 [11]。 (1)在单处理器系统中,可占用在操作系统 控制下的一个优先级高的独立进程来实现,这用 就能能使事件监视器经常被运行,起到主动实时 监控的作用。事件监视器当在事件库被分成块时, 应该用一个指针来指明对哪个事件库块进行监 视,这样就能提高事件监视器的运行效率,从而 提高整个系统的运行效率。 (2)在多处理器系统中,可以独立分配一个 处理器来完成事件监视器的功能。此时处理器间 的通信和同步问题是一个需要解决的问题。 (3)事件监视器的另一种实现途径是,对数 据库管理系统进行适当的改造,使得当执行到所 有可能发生事件的地方(例如在执行完某种语句 之后或在预先设定的检查点上)都产生一个软中 断,使得机器停下当前工作,切换到事件监视器, 来核实当前发生的事件是否己被用户置在事件库 中,如果是就触发执行其后跟的规则,否则就返 回继续执行当前工作。 以上几种实现机制各有利弊,后一种软硬结 合的途径,对于在单机上实现地比较较简单的系 统来说,是比较有效的。对于大型系统来说,专 门分配一个处理器来实现时间监视器的功能是比 较理想的,但是前提是必须解决多处理器之间的 通信问题,否则可能会影响系统运行效率。 2.2.4 当前技术问题 在实际的主动数握库应用系统时,主动数据 库管理系统提供的主动机制并不一定能充分利用 起来。所以实现主动数据库管理系统的难点在于 主动规则的设计和终止性分析、判定[12]。 现在已经有成熟的技术用于数据库的设计, 包 括 针 对 某 个 领 域 信 息 结 构 方 面 特 征 的 计 技 术 (例如,E-R 建模,关系规范化),以及用于描述 应用的处理过程方面特征的技术(例如,数据流 图)。尽管主动规则与数据库中存储的数据关系密 切,而且规则的行为执行的任务也可以看作处理 过程,但是,根据给定的应用功能需求,无法准 确 的 确 定 系 统 的 哪 部 分 功 能 适 于 用 主 动 机 制 实 现。人们已经提出了一些主动规则设计的方法, 例如.(ER)2 便是对 ER 方法的扩展,可以用它描 述事件和规则,然后:根据将这些映射到数据库 支持的主动机制;IFO2 是对 IFO 数据建模方法的 扩展.它可以用来描述复合事件.并且也包含了 一个映射到具体主动规则语言的方法;Bichler 和 Schrefl 在一个扩展的面向对象建模方法提出 了更加完善的主动设施.包括时间事件。这些方 法都突出强调主动规则,这使设计者一开始就能 去确定如何设计规则。 对于规则的分析终止问题,以前大多数主动 数据库系统的语义都是以一种非形式化的方法描 述的。这种方法有许多缺点:具体的描述可能是 不完整的或是有歧义的、难以比较不同系统的功 能、以及没有一个可以对主动规则库进行形式化 分析的基础的问题。最近,人们提出了一些主动 数据库系统的形式化描述方法,包括注释语义法、 Object-Z 法、逻辑/操作结合法,这些方法可以用 来形式化的描述具体的系统,并且拥有了有效地 规则分析器,对主动性规则进行有效的分析。[13] 目前主动数据库技术的研究主要集中在如何 解决以下问题[13]: 1.主动数据库的数据模型和知识模型,即如 何扩充传统的数据库模型,使之适应主动数据库 的要求。 2.执行机制:对传统数据库系统事务模型的 发展和扩充,BOECA的处理和执行方式。 3.条件检测:主动数据库系统实现的关键技 术之一,是在复杂的条件下如何高效地对条件求 值,以提高系统效率。 4.事务调度:完成并发环境下的可串行化和 对事务时间的要求。如何优 化对执行时间估计的代价模型是目前探讨 和研究较多的问题。 5.系统效率:系统的高效率是设计各种算法 和选择体系结构时追求的设计目标,也是主动数 据库研究中的一个重要课题。 6.执行模型:ECA规则的处理和执行方式, 主要集中在研究规则的终止性分析。 3.发展趋势及问题 当前对主动数据库的研究分为两大类型 [14]: 1 设计并实现主动数据库的原型。 2 在关系数据库基础上进行扩充其具有主动 功能。 在主动数据库的设计实践中,通常采用将规 则预先嵌入到数据库系统的方法,系统中提供了 一个实时自动“监视”模块,一旦发现某事件发 生时,就主动触发执行某个动作。这样,数据库 管理系统就可主动履行一些预先由用户设定的动 作,为用户提供主动服务。 在程序设计语言基础上,加入事件驱动的事
件库和驱动事件库的事件监视器,便出现主动数 据库的程序设计语言。将面向对象数据库和主动 数据库结合起来,产生了所谓面向对象的主动数 据库系统。 特别是 20 世纪 90 年代后期,主动数据库的 绝大部分模型和实验系统都是结合面向对象的数 据库技术的。两者的结合弥补了主动数据库的某 些不足,也增强了面向对象数据库的功能。在主 动数据库的实现中,规则一般是放到一起的,系 统运行每次都要扫描整个库,降低了执行效率。 与面向对象数据库结合之后,将规则库进行分类, 分别附属于不同的对象类及其方法,使得一个大 库分成了许多位于不同范围(全局的、局部于对象 类的和局部于方法的等)的规则库,从而大大提高 了运行效率 [15]。 将越来越成熟,其功能产品也会随着技术的进步 越来越完善,主动数据库技术将会得到更加广泛 的应用。 参考文献 [1]李艳.主动数据库技术的研究和应用[D].成都:电子 科技大学 2003:5-14 [2]杨泽雪,韩中元,魏兴.主动数据库系统的研究[J].哈 尔滨师范大学自然科学学报:2005,21 期:58-60 [3]姜跃平,施伯乐.规则的模型和行为特定理论 [J].软 件学报 ECA, 1997:97-100 [4]张文超.基于主动数据库技术的质检管理信息系统研 究开发[D].西安;西安理工大学:2007:9-13 [5]姜跃平,汪卫和施伯乐.ECA 规则的模型和行为特定 理论.软件学报,2000,8(3):190-195 另一方面,在关系数据库上扩展主动功能的, [6]罗娜.主动数据库在种鹿养殖管理信息系统中的应用 主要是传统数据库的生产厂商如 Oracle、IBM、 Microsoft 等公司都宣称在改进关系数据库产品 的同时,增加了对主动数据库技术的支持,但是 这些设施都存在一些缺陷,例如触发事件都比较 简单,简单事件无法构造出更复杂的事件,用户 也无法自己设置事件,因此,在关系数据库上扩 展主动功能的主动数据库管理系统大量应用于实 践还有待时日。 主动数据库技术作为一个正在发展的领域, 研究[D].吉林:东北师范大学:2004:5-7 [7]杨泽雪,韩中元,魏兴,郭红微.主动数据库系统的研 究[J].哈尔滨师范大学自然科学学报,2005(21) [8]Michael Gertz..Specifying Reactive Integrity Control for Active Databases.In:Jeniffer Widom and Sharma Chakravarthy eds.Proc of the 4th Intl Workshop on Research Issues in Dataeng ineering, Houston, Texas:IEEE Computer Society Press,2001:62–70. [9]杨波,王海洋,董继润.主动规则可终止性的动态分析 目前还有一些技术问题等待解决: 方法.计算机研究与发展,2000,37(8):1018–1024 1 具有局限性。主动机制的实现还没有形成 [10]王春红.基于主动数据库的医院收费系统设计与开 一套完整的技术理论和普遍认可的技术方法。 发[D] 大连:大连理工大学 2008:8-10 2 可移植性差。各系统定义的语法和语义各 [11]徐瑞峰.主动数据库系统原理、改进与应用[D].浙江; 不相同,不同系统间移植非常困难。 浙江大学 2001:2-11 3 安全性、可靠性的问题。由于规则设计的 方法和指导原则尚没有完善的理论,应用主动数 据库技术的系统,很难确保在起实际运行规则能 遵循完全遵循用户的意愿。 4 性能不高。应用程序中,事务程序与规则 定义分离时,全局优化难以进行,导致系统效率 降低,所以主动规则需要进一步优化。 [12]赵辉.基于 ECA 规则的主动数据库知识模型与执行模 型的研究[D].天津:天津财经大学.2007:4-10 [13]朱仲忠,付月朋.主动数据库系统规则执行机制的应 用研究[J]科技咨询导报.2007 30 卷:69-70 [14] 左 万 利 . 主 动 数 据 库 理 论 研 究 [D]. 吉 林 : 吉 林 大 学.2005:2-10 [15]梁雯,梁厚蕴.主动数据库及在 DSS 中的应用研究[J]. 5 缺乏相应的开发和调试工具的支持。 微机发展 2004 14 卷第八期:105-107 [16]梁雯.主动数据库及其研究 现状[J].情报理论与实 践,2001(2):130–131 四.结束语 主动数据库技术是目前数据库技术中的一个 非常活跃的领域,近年的研究己经取得了很大的 成果,它所涉及的学科领域更加广泛,其内容含 义也正在不断地更新,虽然主动数据库在发展中 仍存在着一些问题,但是随着理论和技术的不断 发展和完善,主动数据库这一计算机科学领域必
分享到:
收藏