基于规则的数据库引擎

1 rule-engine

我想在Oracle中为PeopleSoft Time入门应用程序设计一个基于规则的数据库引擎.我该怎么做呢?

Phi*_*l H 5

基于规则的系统需要几个关键组件: - 一组定义为数据的规则 - 一组操作的统一输入 - 规则执行程序 - 监督者层次结构

  1. 写出一系列用例 - 可能有人试图使用该系统完成什么?
  2. 确定您的规则可以作为输入的内容,以及作为输出的内容
  3. 将用例中的规则描述为一系列数据,从而确定您的规则格式.根据需要展开2.
  4. 创建基本规则执行程序,并测试它将获取规则数据并正确处理它
  5. 扩展上述内容以处理具有不同优先级的多个规则
  6. 学习足够的规则引擎理论和图论来理解基于规则的常见问题 - 循环性,冲突规则等 - 以及如何使用(节点)图来查找它们的案例
  7. 编写一个管理层次结构,它能够管理规则集并根据上面可能出现的问题做出决策.这部分很重要,因为它可以保护规则创建者免于愚蠢,导致整个系统运行时失败.
  8. 利润!

从广义上讲,规则引擎是管理复杂性的一种练习.如果您不管理它,您可以轻松地结束彼此级联的规则,从而导致循环循环,竞争条件和其他问题.这些意外构建起来非常容易:考虑一个电子邮件程序,如果它包含魔术单词'beta',则告诉你将邮件从文件夹A移动到B,如果它包含单词'alpha',则从B移动到A. 包含两者的电子邮件将被往返传送,直到出现问题,从而阻止处理所有其他规则.

我假设你想要了解理论并自己构建引擎.alphazero提出了使用现有规则引擎库的重要建议,这是明智的 - 这是受益于学术理论的主题.