科技信息 博士・专家论坛 主动数据库【l】间件模型的研究 南京人口管理干部学院信息科学系 肖欣欣朱艳梅梁志红 [摘要]近年来,主动数据库的研究发展非常迅速,已经成为数据库研究领域的一个前沿的方向。本文在论述传统主动数据库实现 方法及其存在的不足之后,提出了一种基于中间件的主动数据库的实现方式。 [关键词]主动数据库 中间件ECA规则 1、引言 数据库技术的发展历经了很长的历史,传统数据库已经得到了广 泛的应用,取得了巨大的成功。但是,传统数据库管理系统本身是被动 的,也就是说它只能响应用户要求它们做的事情,而不会灵活地根据数 据库的外部环境或内部状态主动做些什么,数据库仅作为一种被动的 数据存储仓库而存在。随着技术的发展,人们已不满足这种被动的服 务,希望数据库系统能主动地向用户提供服务。系统要能自主地监视 数据库的状态及其变化,当有某些事件发生且条件满足时自动的做出 些反应。这种能够主动监视数据库状态,并能在满足特定条件时执 行预先定义好的动作的数据库系统称为主动数据库系统(ADBMS)。 随着主动数据库技术的发展,主动数据库技术的应用越来越广泛, 现在能够提供主动服务的系统越来越多,从数字图书馆、股票交易代 理、交通监控系统,到主动的嵌入式系统(手机、PDA等),越来越多的系 统可以为用户提供主动服务。 2、传统主动数据库系统的不足 传统的ADBMS一般采用“事件一条件一动作”(ECA模式),即功能上 南一个传统数据库系统(DBS)和一个事件驱动的知识库(EB)及相应的事 件监视器(EM)组成,用公式表示是: 一主要功能是判断数据库可能产生的状态变化,并做出相关的处理。其 模型图如图3.2所示: 1)接口:分为上层接口和下层接口。 上层接口负责提供到用户的数据库连接,定义规则设置接口。用 户通过上层接口简介访问数据库。 下层接口连接中间层到数据库服务器,它决定如何访问数据库。 2)语言分析器 所有的客户命令都要经过语言分析器。ECA规则语句将被分离出 来,并被送到ECA规则定义模块;同时还要过滤出已经定义的需要探测 的事件类型(即分离出DML语言);除去ECA规则语句之外的所有SQL 命令都将通过下层接口被送到服务器执行,结果返回给客户,如果发生 错误,同样将错误信息返回客户。 3)ECA规则定义 ECA命令从语言分析器中被过滤出来送给ECA规则定义模块,进 行ECA规则的语法分析。如果没有语法错误,就执行相应的操作(如: 创建事件、创建规则、删除规则)。这些事件和规则都将被写入规则库 中,以便事件和触发器的永久保存。如果分析后发现错误,将错误信息 返回。 ADBMS=DBS+EB+EM 其中:DBS是一个传统的数据库系统,用来存储数据和对数据进行 维护和运用;事件库EB是一组由事件驱动的知识的集合,每一项知识 表示在相应的事件发生时,如何来主动地执行其中包含的由用户预先 设定的动作;EM是一个随时监控EB中的事件是否已经发生的探测模 块,一黾探测到某事件已经发生时就主动地触发系统,按EB中指明的 相应知识执行其中预先设定的动作。 传统的ADBMS将主动机制与数据库系统完全融合,但是在实用化 厅面却仍然存在不足之处。一方面传统的ADBMS大多采厢全新的设 计,开发周期较长,费用较高;另一方面,难以与现有的DBMS集成,而 现有的系统,往往已经积累了大量的有价值的数据资源,要将这些大量 的数据进行转化将导致大量的人力财力消耗。 如果能直接利用已有的数据而又使传统的DBMS具有主动性就能 够解决上面的问题,既能节约大量的人力财力,又能与现有的DBMS兼 容。 3、基于中间件的主动数据库实现模型 中间件是处于应用软件和系统软件之间的一类软件,是于硬 件或数据库厂商的一类软件,是客户方与服务方之间的连接件,是需要 进行二次开发的中间产品。 本文提出了一种基于中间件的ADBMS实现方式,在原本不具备主 动能力的关系数据库的基础之上,增加主动机制功能的实现。 这种实现方案,具体来讲就是代替用户对相对复杂的主动事件进 行监测,并根据用户的需要将符合触发条件的操作动作信息反馈给用 户程序,用户程序只需通过事先定义的接口函数接收所触发的动作信 息。这种方法就是在DBMS和应用程序之间增加一层接口,为关系数 据库管理系统提供主动机制,使得系统具有主动触发的能力。 3.1中间件式主动数据库的体系结构 中间件在客户与数据库之间起到了连接者的作用,具体如图1所 刀 : 与5-:层的接口 与下层的接口 ——_{L—一 DB 图2中间件模型图 4)事件探测器 事件探测器负责探测简单事件和复合事件。在系统初启时将用户 定义的所有规则读入内存中,根据这些定义,对用户的DML命令做详 细分析,判断事件类型及参数,到事件表中匹配,并可根据探测到的简 单事件按照有穷自动机原理做复合事件的探测。 5)动作处理器 旦事件被探测到,并且存在根据该事件定义的触发器,则在判断 触发条件后调用定义在触发器中的动作。动作处理器处理这些动作, 直接运行用户预定义的可执行文件或根据要求给用户返回消息。用户 可响应该消息,执行自己的商业规则。 4、结束语 主动数据库的一个很突出的思想是要让数据库系统具有各种主动 进行服务的功能,并以一种统一而方便的机制来实现各种主动性需 求。但现有能够提供主动数据库机制的产品均为数据库系统产品,研 究这类产品周期长、风险大。并且现在国内的数据库系统市场基本为 国外著名产品所占据,要打入这个市场难度非常大。本文提出采用中 间件系统的结构,在一定程度上提供主动数据库的机制,使用户既可以 采用他们已经熟悉的数据库产品,又能够得到主动数据库机制所带来 的优异性能。 一图1中间件式主动数据库体系结构 基于中间件的主动数据库系统直接利用已有的DBMS完成数据组 织、共享等方面的功能,在数据连接层加人一个中间层监视系统发生的 变化,并将这些变化进行动态的处理。 3.2中间件模型图 基于中间件的主动数据库的实现思想是,在关系数据库外添加组 件来为其扩充主动功能,不破坏应用程序的内部逻辑,而是将实现模块 设置在应用程序和数据库管理系统之间,作为中间层工作。中间层的 参考文献 [1]杨泽雪,韩中元,魏兴,郭红微主动数据库系统的研究[1]哈尔滨 师范大学自然科学学报,2005,21(2):57—60. [2]李博涵.主动数据库事件监测及其数据依赖的研究[D][硕士 学位论文].哈尔滨理工大学,2005 [3]李同英.主动机制数据库技术应用研究[I].微计算机信息,2006, 22(36):214—216,179 [4]毕利.主动数据库的模型及实现途径[1].计算机工程,2000,26(9) :102-103.160. 基金项目:本文系南京人口管理干部学院科研课题“主动数据库技术的研究”(2010D02)。 作者简介:肖欣欣(1980一),女,讲师,硕士,研究方向为数据挖掘。朱艳梅(1980一),女,讲师,硕士,研究方向为数据库应用。梁志红(1977一),女,讲 师,硕士,研究方向为数据挖掘。 一26—