主动数据库
产生背景
传统数据库是“被动”的——只能根据应用程序的要求而对数据库进行数据的创建、检索、修改、删除等操作,而不能根据发生的事件或数据库的状态“主动”做些什么。数据库仅作为一种被动的数据存储仓库而存在。
利用“被动服务”的数据库不能很好地完成带有主动性需求的任务。而在实际应用中,主动性需求是大量存在的,这就呼唤着解决该问题的方案。
主动数据库(Active DataBase System):是指在没有用户干预的情况下,能够主动地对系统内部或外部所产生的事件作出反应的数据库。
主要设计思想:用一种统一而方便的机制实现应用对主动性功能的需求,即系统能把各种主动服务功能与数据库系统集成在一起,以利于软件的模块化和软件重用,同时也增强了数据库系统的自我支持能力。
要使数据库具有各种主动功能,就需要对传统数据库添加支持主动规则的功能模块。
为了支持ECA规则,主动数据库包括以下几个功能模块:
数据模型:在传统数据库中主要指层次模型、网状模型和关系模型等描述和处理实体间联系的方法,而在主动数据库中主要指知识模型
执行模型:处理和执行主动规则的方式
条件检测:如何检测规则的条件
事务调度:如何控制事务执行的次序,使数据库状态满足完整性、一致性等要求
知识模型
指在主动数据库管理系统中描述、存储和管理ECA规则的方法
知识模型还支持有关时间的约束条件
传统数据库为实现复杂的参照完整性和数据一致性引进了触发器,但只能描述“单个关系”的更新,且执行方式单一,条件的检查、动作的执行总是在触发后立即执行或事务提交前执行
执行模型
指ECA规则的处理、执行方式
提出了立即式、延迟式、隔离式等执行ECA规则的方式,克服了DBMS中触发器只能顺序执行规则的不足
主动规则执行分为五个阶段:
信号通知阶段:事件源引起事件发生的现象。
规则触发阶段:产生事件(包括复合事件)并触发相应的规则,规则和与之相关的事件形成了规则实例。
评估阶段:对触发规则的条件进行评估,条件评估成功的所有规则实例形成了规则冲突集。
规则调度阶段:对规则冲突集进行处理,选出下面将要执行的规则
执行阶段:执行所选出的规则实例的动作。动作执行时可能产生其它事务,即规则的级联触发。
规则执行过程
事务调度
指如何控制事务的执行次序,使得事务满足一定的约束条件
传统DBMS中并发事务的调度应满足可串行化以保证数据库的一致性
主动数据库中还需满足事务时间方面的要求
主动数据库一般模型
在功能结构上,一个主动数据库系统(ADBS)由一个传统数据库系统(DBS)和一个事件驱动的知识库(EB)和相应的事件监视器(EM)组成。
ADBMS=DBS+EB+EM
DBS:传统数据库系统,用来存储数据和对数据进行维护、管理和运用
EB:事件驱动知识库,是一组由事件驱动的知识的集合,每一项知识表示在相应的事件发生时,如何主动地执行其中包含的由用户预先定义的动作
EM:是一个随时监视EB中事件是否发生的监视模块,一旦监视到某事件发生时就主动地触发系统,按照EB中指明的相应知识执行其中预先设定的动作
主动数据库 来自淘豆网m.daumloan.com转载请标明出处.