1

Oracle内のPeopleSoftTimeエントリアプリケーション用のルールベースのデータベースエンジンを設計したいと思います。どうすればよいですか?

4

2 に答える 2

5

ルールベースのシステムには、いくつかの重要なコンポーネントが必要です。 - データとして定義された一連のルール - 操作対象となる一連の統一された入力 - ルールの実行者 - スーパーバイザー階層

  1. 一連のユースケースを書き出す - 誰かがシステムを使用して何を達成しようとしているか?
  2. ルールが何を入力として取り、何を出力として取ることができるかを決定する
  3. ユース ケースのルールを一連のデータとして記述し、ルールの形式を決定します。このために必要に応じて 2 を展開します。
  4. 基本的なルール エグゼキュータを作成し、ルール データを取得して正しく処理することをテストします。
  5. 上記を拡張して、優先度の異なる複数のルールを処理する
  6. ルールエンジン理論とグラフ理論を十分に学び、一般的なルールベースの問題 (循環性、競合するルールなど) を理解し、(ノード) グラフを使用してそれらのケースを見つける方法を理解する
  7. ルールセットを管理し、上記の考えられる問題に基づいて決定を下すことができるスーパーバイザー階層を作成します。この部分は重要です。なぜなら、システム全体の実行時障害を引き起こすルール作成者の愚かさに対する保護だからです。
  8. 利益!

大まかに言うと、ルール エンジンは複雑さを管理する演習です。これを管理しないと、相互にカスケードするルールが簡単に発生し、循環ループ、競合状態、およびその他の問題が発生する可能性があります。誤ってこれらを作成するのは非常に簡単です: メールをフォルダ A から B に移動するように指示した電子メール プログラムを考えてみてください。フォルダに「ベータ」という単語が含まれている場合、「アルファ」という単語が含まれている場合は B から A に移動します。両方を含むメールは、何かが壊れるまで前後に往復し、他のすべてのルールが処理されなくなります。

ここでは、理論について学び、自分でエンジンを構築したいと考えていると想定しています。alphazero は、既存のルール エンジン ライブラリを使用するという重要な提案を提起しています。これは賢明なことです。これは、学問的な理論から恩恵を受ける種類の主題です。

于 2009-04-30T12:35:13.223 に答える
1

私はこれを自分で試したことはありませんが、明白なアプローチは、Oracle データベースで Java プロシージャを使用し、そのコードで Java ルール エンジン ライブラリを使用することです。

試す:

http://www.oracle.com/technology/tech/java/jsp/index.html

http://www.oracle.com/technology/tech/java/java_db/pdf/TWP_AppDev_Java_DB_Reduce_your_Costs_and%20_Extend_your_Database_10gR1_1113.PDF

http://www.jboss.org/drools/

また

http://www.jessrules.com/

--

基本的に、データ イベント (挿入、更新、削除) をキャプチャし、それらをルールスペースのイベントにマップし、ルールを適用する必要があります。

于 2009-04-30T12:34:59.837 に答える