最近のアクセス:
リバース エンジニアリング プロセス

概要

リバースエンジニアリングは広義の用語ですが、ここではデータベースのテーブルの構造およびリレーションシップを読み込み、スキーマを示すのに必要な GeneXus オブジェクト (データモデル) を定義するプロセスを指します。
 
イメージ:7601.jpg

リバースエンジニアリング

GeneXus の特長の 1 つは、URA 項目属性の名前の付け方にあります。同じ項目属性の名前の付け方を使用するデータベースは多くありません。このプロセスの主な目的は、データベーススキーマを URA に基づくスキーマに変換することです。URA 以外の一般的な入力をリバースエンジニアリングすると、スキーマで定義された参照整合性の制限に影響します。データベースの参照整合性を定義していない場合もこのツールは使用できますが、参照整合性を定義してから使用するほうが良いでしょう。

データベース リバース エンジニアリング ツールはデータベースを変更しません。テーブルの構造およびリレーションシップを読み取るだけです。テーブルデータの読み取りも行いません。

DB のリバース エンジニアリング プロセスを完了すると、データベースにポイントする GeneXus ナレッジベースが作成されており、これにアクセスしたり、これを更新したりすることができます。
 

リバースエンジニアリングによるナレッジベースの内容

同じ項目属性を持つ各データベーステーブルについて、GeneXus トランザクションを作成します。テーブルで定義されている制限により、実際の GeneXus 名の項目属性は元の名前とは異なる場合があります。DBRET は、URA の概念に基づいて内部項目属性名を変更する場合があります。次に例をいくつか示します。

例 1
次の 4 つのテーブルと参照整合性の制限を見てみましょう。テーブルの主キーすべて、および従属項目属性の一部で同じ項目属性名を使用しています。データベースでは次の制限も定義されています (矢印で示します):
 
Invoice.Client  --> Customer.Code
InvoiceLine.Code --> Invoice.Code
InvoiceLine.Prod --> Product.Code
イメージ:7602.jpg
DBRET がスキーマを処理した後、次の GeneXus トランザクションおよびテーブルを作成します。
イメージ:7603.jpg
 
 
項目属性名の一部が変更されています。Name 項目属性の他に、たとえば、コンテキスト情報を提供する ProductName 項目属性が作成されており、これにより、テーブルの結合方法を考えることなく新しいオブジェクトをプログラムできます。

例 2
GeneXus が同じものを表すのに同じ項目属性名を使用できないが、リレーションを維持する必要がある場合があります。たとえば、スペシャライゼーション、セルフリレーション、または同じテーブルに対して複数の外部キーがある場合などです。この場合は、Subtype Group オブジェクトを作成します。

次の例は、外部データベースのスペシャライゼーションダイアグラムを示しています。ここでは、主キーはすべて同じ名前で定義されています。
イメージ:7604.jpg
DBRET は次のとおり内部テーブルを定義します:
イメージ:7605.jpg
次のサブタイプグループも定義され、テーブル間のリレーションを維持します:
SALES GROUP
SalesEmployee subtype of Employee

SUPPORT GROUP 
SupportEmployee subtype of Employee
このプロセスで DBRET によって作成される 3 つ目の GeneXus オブジェクトは、データビューです。このオブジェクトには、内部テーブルと外部テーブルのマッピング情報が含まれています。上記のとおり、一部の内部項目属性名は変更されています。データビューは、Genexus とデータベーススキーマの間のマッピングなどを定義します。GeneXus オブジェクトでは内部名が使用されますが、生成されたプログラムは外部名を使用します。
参考情報: [ データベースリバースエンジニアリング ] ウィザード











 


サブページ
Created: 14/09/18 03:15 by Admin Last update: 21/05/21 03:32 by Admin
カテゴリ
Powered by GXwiki 3.0