最近のアクセス:
[データベースリバースエンジニアリング] ウィザード

GeneXus ではデータベースリバースエンジニアリングのプロセスを適用し、GeneXus アプリケーションはほかのデータベースで定義されたデータストアにアクセスすることができます。
このプロセスを定義するには、  データベース リバース エンジニアリング ツール (DBRET) を使用します。
このツールを開始するには、次の手順を実行します:
     イメージ:6636.jpg

[ データベースリバースエンジニアリング ] ウィザード手順

データベース リバース エンジニアリング プロセスは、3 つのウィザードで完全に定義できます。簡単な例でその手順を説明します。
代理店のナレッジベース (航空会社、フライトなど) で、アプリケーションがほかのデータベース内のテーブル (顧客や国) にアクセスするとします。このデータベースには次のテーブルがあります:
     イメージ:6658.jpg     イメージ:6659.jpg    

1. 開始オプション

[ データベースリバースエンジニアリング ] オプション (上図参照) を選択すると、最初の手順のウィンドウが表示されます。ここで、外部データベースへの接続に必要な情報すべてが要求されます。
このダイアログでは、DBMS、接続方法、データベース名、ユーザー名およびパスワードなど、DBMS にアクセスするためのすべての接続情報を入力する必要があります。
          イメージ:6637.jpg
この手順を完了すると、テーブル、インデックス、テーブル間の関係についてのすべての情報が DBMS から取り出され、メタデータファイルに保存されます。

2. データベースオブジェクトの選択

この手順のウィザードでは、インスタンスに統合するテーブルを選択する必要があります。
  • [ 関連項目を追加 ] ボタンを使用して、参照されているすべてのテーブル (N-1 関係) を選択済みのものに追加します。
  • 選択したテーブルはすべて [ 選択箇所を保存 ] ボタンで保存でき、以降の実行時に [ 選択箇所をロード ] ボタンで容易に取り出すことができます。
        イメージ:6639.jpg
例の Customer テーブルを選択して [ 関連項目を追加 ] ボタンを押すと、次の図のように Customer テーブルおよび Country テーブルを選択できるようになります:
        イメージ:6660.jpg
この手順の後、リバース エンジニアリング プロセスが実行され、DBRET (データベース リバース エンジニアリング ツール) は選択されたテーブル間の関係をすべて評価し、必要な GeneXus オブジェクトを定義します。

3. リバース エンジニアリング レポート

この手順のウィザードでは、次の 3 つのタブが表示されます:
  • レポート
  • 設定
  • ルール
レポート
このレポートは、リバース エンジニアリング プロセス中に作成された定義済みオブジェクトすべてを表示し、また、問題を検出した場合は対応する警告を表示します。
次に表示される可能性のある警告の一部を示します:
  • [ <Table> の外部キーである <Attribute> が選択されていません。 ] : この場合、テーブルの追加オプションでこのテーブルを選択してオブジェクトを自動的に再処理します。
  • [ テーブルに主キーがありません ] : 外部テーブルに主キーがない場合は、DBRET でデータビューが作成されますが、トランザクションは作成されません。トランザクションを作成したい場合は、 [ 主キーを選択 ] リンクを使用して、ほかのテーブルの項目属性を主キーとして選択します。
  • [ <Attribute> はオートナンバーであり、主キーとして選択されました ] : この警告は、テーブルに主キーはないが、自動的に番号付けされた項目属性が含まれる場合に表示されます。
  • [ <data type> データタイプはサポートされていません ] : このメッセージは、GeneXus のものと自動的に照合できないデータタイプの項目属性がテーブルに含まれる場合にトリガーされます。 [ タイプを変更 ] オプションを使用して、最も適した GeneXus データタイプを選択します。

        イメージ:6642.jpg

終了する前であれば、この手順で一部の設定を変更、または新しいルールを定義することができます (再処理が可能)。
次に、 [ 設定 ] および [ ルール ] オプションについて説明します:
設定
[ 設定 ] グループは次の図のとおりです:
         イメージ:6662.jpg
  • Transaction を生成:
    • True:  インポートする各テーブルの構造とともにトランザクションが生成されます。
    • False: データビューのみが統合されます。
  • 複数レベルの Transaction を識別:
    • False: 既定値。インポートされる各テーブルがトランザクションおよび異なるデータビューを定義します。生成されたトランザクションは、1 レベルのみとなります。
    • True: 特定の下位パターンを検索して、複数レベルのトランザクションを定義します。たとえば、OrderSalesHeader テーブルが 1 つと OrderSalesLines テーブルが 1 つある場合、これら 2 つのレベルに対してトランザクションは 1 つのみ作成されます。
  • スキーマを生成: このオプションが True の場合、テーブルスキーマ情報は [ data view schema ] プロパティに格納されます。
  • 名前変更ルール:
    • Prefix only when needed:  データベース内の参照整合性の定義に基づき、URA (Universal Relation Assumption) に基づくテーブルについて競合を避けて関係を維持するために変更が必要な項目属性に、ツールが自動的に接頭語を追加します。これが既定のオプションです。
    • Prefix always: 項目属性に常にテーブル名の接頭語を付け、対応するサブタイプグループを定義してテーブルの関係を維持します。
    • Same name-same thing: このオプションは、GeneXus またはその他によって URA の定義に基づいて作成されたデータベースに適用されます。2 つのテーブルに同じ項目属性が含まれ、テーブル間に参照整合性コントロールが定義されていない場合、これらのテーブルは関連したテーブルであるとみなされます。
  • 名前区切り:  項目属性にテーブル名の接頭語を付ける必要がある場合に、この区切り文字が使用されます。
  • データストア: 既定で、データビューはすべて既定のデータストアに属します。このプロパティにより、ほかのデータストアを選択したり、新しいものを定義したりすることができます。
  • フォルダ: GeneXus ナレッジベース内で新しいオブジェクトを統合するフォルダ名を指定します。
  • データベースデスクリプションを使用:
    • True:  この項目属性のデスクリプションがデータベースからロードされて [ 名称項目属性 ] プロパティに設定されます。
    • False: 項目属性のデスクリプションが項目属性の名前と同じになります。
  • Transaction として表示を生成:  このプロパティを有効にすると、ユーザーはビューのキー項目属性を選択できるようになり、これに関連付けられた Transaction オブジェクトを作成することができます。
  • 統合前のモデルのバックアップ:  有効になっている場合、統合の実行前にモデルのバックアップが作成されます。
  • テーブルの接頭語の最大長1: DBRET は項目属性の接頭語にテーブル名を付けることがあります (前述の「名前変更ルール」を参照)。このプロパティでは、接頭語の最大長を設定することができます。(既定値: 200)
  • 項目属性の接頭語に置換ルールを適用1: True または False (既定値: False)。DBRET は項目属性の接頭語にテーブル名を付けることがあります (前述の「名前変更ルール」を参照)。このプロパティでは、項目属性に接頭語が付いた後 (True の場合) または付く前 (False の場合) に適用される「置換ルール」の適用範囲を変更できます。
    変更後の項目属性の名前が既存の名前と一致する可能性があるため、このプロパティの使用にはご注意ください (DBRET は接頭語を適用するときにだけ名前の一意性を制御します)。
注: 1 これらのプロパティは、GeneXus 15 Upgrade 5 以降で使用できます。
ルール
次の 4 つのタイプのルールがあります:
  • 名前を変更
  • 置換
  • タイプを変更
  • リレーションを追加
最初の 3 つのルールでは、以前の情報、新しい情報、および適用範囲を指定する必要があります。

ルールを定義したら、 [ ルールを追加 ] ボタンを押してルールのリストに追加する必要があります。 [ レポート ] タブダイアログに戻るとルールが自動的に適用されます。
 
  • 名前を変更:  テーブル、項目属性、またはインデックスの名前をすべて [ 新しい名前 ] に変更します。このルールは [ オブジェクトタイプ ] の範囲にのみ適用されます。 [ テーブル名 ] で範囲が指定されている場合は、このルールはそのテーブルにのみ適用されます。
  • 置換:  [ オブジェクトタイプ ] の範囲の名前で [ 置換対象文字列 ] の文字列をすべて [ 置換文字列 ] に置換します。 [ テーブル名 ] で範囲が指定されている場合は、このルールはそのテーブルにのみ適用されます。また、 [ オブジェクト名 ] パラメーターが指定されている場合は、このルールはこのテーブル/インデックス、またはテーブル/項目属性にのみ適用されます。 [ 項目属性の接頭語に置換ルールを適用 ] プロパティが True の場合、これらの接頭語に対してこのルールが適用されます。
  • タイプを変更: このルールにより、項目属性データタイプの変更が可能になります。 [ テーブル名 ] および [ 項目属性名 ] パラメーターでルールの適用範囲を指定します。
  • リレーションを追加:  このルールを使用して、DBRET が判別できなかった 2 つのテーブル間の関係を確立します。この情報は、ナレッジベース モデルを作成するために取得されます (実際のデータベースには影響しません)。
この例では、Customer のシーケンスをすべて FlightCustomer に命名し直します。そのため、対応する [ 名前を変更 ] ルールを次のように変更します:
         イメージ:6663.jpg
ルールの保存とロード: [ 保存 ] および [ ロード ] ボタンを使用してバックアップするか、以前保存されたルールを呼び出します。
手順はこれで完了です。 [ データベース リバース エンジニアリング ] ウィザードを終了します。 [ 終了 ] ボタンを押します。この後は次のようになります。手順実行前と後の [ KB エクスプローラー ] の画像を比較してください。
        イメージ:6665.jpg             イメージ:6668.jpg

左側の図を見ると、元のオブジェクトが Agency ナレッジベースにあることが分かります。右側の図は、同じ Agency ナレッジベースを示していますが、対応するスキーマの GeneXus オブジェクトがいくつか自動的に作成されています。 [ 名前を変更 ] ルールが適用された結果、次のとおり Customer オブジェクトがなくなり FlightCustomer オブジェクトになっています。
  • FlightCustomer トランザクション
  • Country トランザクション
  • FlightCustomer データビュー
  • Country データビュー
  • Country テーブル
  • FlightCustomer テーブル

参考情報

リバース エンジニアリング プロセス
GeneXus への統合を実行する際のリバースエンジニアリングの確認










サブページ
Created: 14/09/18 03:19 by Admin Last update: 22/04/05 18:20 by Admin
カテゴリ
Powered by GXwiki 3.0