规则系统(数据库)
时间:2022-12-26 14:30:01 | 来源:信息时代
时间:2022-12-26 14:30:01 来源:信息时代
规则系统 : 提供对规则的定义、规则执行、规则管理和监控等功能的系统。一般包含规则定义语言、规则库、规则处理组件、规则管理监控模块以及一些必要的规则分析与调试工具。
规则定义语言提供定义规则的事件、条件、操作以及执行约束的方法。规则以及规则定义机制被称为规则模型(rule model)或知识模型(knowledge model)。
规则系统必须支持规则和规则库的管理,提供基本的规则操作命令,如规则的创建、删除、修改、规则的激活和抑制以及对规则集的操作命令。有的规则系统还可以指定规则的属性,如声明规则的优先级等。
规则系统必须具有监控和检测相关事件的能力。无论什么时候当规则定义的事件发生时,规则系统应能够检测到相关事件的出现,并通知规则执行组件,使相应规则被触发并加以执行。
规则的执行由规则系统中的执行模型来阐述和表达。执行模型决定规则的执行时机以及与规则执行相关的属性。其内容涉及规则的处理粒度、转变粒度、耦合模式、调度策略、循环策略、冲突解决策略、终止策略以及规则的净效果评估和异常错误处理等。
在不同的主动数据库系统中,规则系统体系结构因系统所支持的模型、提供的主动性功能及实现机制不同而不同。图1所示是一个规则系统的抽象体系结构。
图1 规则系统的体系结构
在图1中,事件检测器用来监控系统中发生的事件,这些事件是规则系统所关注的、与规则相关的事件。事件检测器可以根据事件历史记录以及原子事件,构造出复合事件。事件监测器读取或更新事件记录并将事件信号发送给规则管理器,事件记录用于记录事件及与事件有关的信息。规则管理器接受事件信号,从规则库中读取规则进行事件匹配,记录已被触发的规则集(冲突集),并按照一定调度策略依次执行冲突集中的规则。规则调度的方法有:随机执行,按照规则已声明的优先级执行,根据规则创建时间、规则被触发的时间先后次序等选择规则执行。语言解释器负责对规则条件的评估和动作的执行。在评估和执行期间可以请求对数据库的读写操作,也可以请求使用事件记录中的信息。
系统提供一组规则语言实现对规则的操作。规则语言的主要功能有: 规则的定义、删除、修改、激活和抑制等。
此外,规则系统还可以提供一些有效的辅助支持工具,以方便用户的使用。例如,规则浏览查询器、规则设计器、规则库分析器、规则库维护工具,以及规则的调试与跟踪措施等。
规则设计人员可以通过规则设计器和规则库分析器等对规则的行为特性进行分析。
规则的两个重要特性是可终止性和合流性。终止性是指对于一个规则集,如果从任一状态出发,规则的执行都是能够终止的,即规则间的相互触发不能出现永不终止的情况。合流性又称为规则的行为一致性,是指规则执行后数据库的状态是唯一的,不依赖于规则执行的次序。
对规则特性的分析有静态分析和动态分析。静态分析是在数据库处于静止状态即规则在非执行情况下对规则特性进行分析,动态分析是在数据库运行期间对规则特性的分析。近年来,人们提出了几种技术和方法以支持主动规则的静态分析。对可终止性分析的方法主要有: 基于触发图和激活图的规则分析、基于Datalog语言的分析等;对合流性的分析,有基于规则交换的方法和优先数法等。
对规则行为特性的分析是一个复杂的问题。在一般情况下,规则的终止和合流是不可判定的。静态分析技术仅能给出在什么情况下对规则集的处理能够保证规则终止或行为一致。
由于规则处理的非结构性和不可估计性,如何能更精确地分析规则的行为特性还需要从理论和方法上进一步研究。