Oracle内のPeopleSoftTimeエントリアプリケーション用のルールベースのデータベースエンジンを設計したいと思います。どうすればよいですか?
2 に答える
ルールベースのシステムには、いくつかの重要なコンポーネントが必要です。 - データとして定義された一連のルール - 操作対象となる一連の統一された入力 - ルールの実行者 - スーパーバイザー階層
- 一連のユースケースを書き出す - 誰かがシステムを使用して何を達成しようとしているか?
- ルールが何を入力として取り、何を出力として取ることができるかを決定する
- ユース ケースのルールを一連のデータとして記述し、ルールの形式を決定します。このために必要に応じて 2 を展開します。
- 基本的なルール エグゼキュータを作成し、ルール データを取得して正しく処理することをテストします。
- 上記を拡張して、優先度の異なる複数のルールを処理する
- ルールエンジン理論とグラフ理論を十分に学び、一般的なルールベースの問題 (循環性、競合するルールなど) を理解し、(ノード) グラフを使用してそれらのケースを見つける方法を理解する
- ルールセットを管理し、上記の考えられる問題に基づいて決定を下すことができるスーパーバイザー階層を作成します。この部分は重要です。なぜなら、システム全体の実行時障害を引き起こすルール作成者の愚かさに対する保護だからです。
- 利益!
大まかに言うと、ルール エンジンは複雑さを管理する演習です。これを管理しないと、相互にカスケードするルールが簡単に発生し、循環ループ、競合状態、およびその他の問題が発生する可能性があります。誤ってこれらを作成するのは非常に簡単です: メールをフォルダ A から B に移動するように指示した電子メール プログラムを考えてみてください。フォルダに「ベータ」という単語が含まれている場合、「アルファ」という単語が含まれている場合は B から A に移動します。両方を含むメールは、何かが壊れるまで前後に往復し、他のすべてのルールが処理されなくなります。
ここでは、理論について学び、自分でエンジンを構築したいと考えていると想定しています。alphazero は、既存のルール エンジン ライブラリを使用するという重要な提案を提起しています。これは賢明なことです。これは、学問的な理論から恩恵を受ける種類の主題です。
私はこれを自分で試したことはありませんが、明白なアプローチは、Oracle データベースで Java プロシージャを使用し、そのコードで Java ルール エンジン ライブラリを使用することです。
試す:
http://www.oracle.com/technology/tech/java/jsp/index.html
と
また
--
基本的に、データ イベント (挿入、更新、削除) をキャプチャし、それらをルールスペースのイベントにマップし、ルールを適用する必要があります。