データベースやスクリプトからモデルをリバースエンジニアリングする方法
リバースエンジニアリングとは、データベースやスクリプトからデータモデルを作成するプロセスです。 モデリングツールは、選択したデータベースオブジェクトとオブジェクト間のリレーションシップのグラフ表示を作成します。 このグラフィカル表現は、論理モデルまたは物理モデルにすることができます。
注:リバースエンジニアリングできるのは、空白のモデルにのみです。 オブジェクトが含まれているモデルにリバースエンジニアリングすることはできません。
データベースをリバースエンジニアリングするには、次の理由があります:
- オブジェクトがどのように相互に関連しているかを理解し、その上に
- を構築してデータベース構造
を示すには、リバースエンジニアリングプロセスが完了した後、次のタスクを実行できます:
- 新しいデータベースオブジェクトの追加
- システムドキュメントの作成
- 要件に合わせてデータベース構造を再設計
リバースエンジニアリングする情報の大部分は、物理スキーマで明示的に定義されています。 ただし、リバースエンジニアリングは、スキーマから情報を導出し、それをモデルに組み込 たとえば、ターゲットDBMSが外部キー宣言をサポートしている場合、リバースエンジニアリングプロセスでは、識別関係と非識別関係、および既定のロール名が
現在、SQLデータベース管理システムがサポートしていないため、サブタイプの関係を除くすべての主要なモデル情報を導出できます。 ただし、ターゲットデータベースは、物理スキーマに含まれる論理データモデル情報の量が異なります。 このため、結果のモデルは、選択されたターゲットデータベースによって異なる場合があります。 また、主キー、外部キー、テーブルの関係など、いくつかの論理情報を推測することもできます。 表の索引定義または列名を使用して、これらのキーとリレーションシップを推測できます。
リバースエンジニアリングプロセスにRIトリガを含めるか除外することができます。 RIトリガをモデルオブジェクトとして扱うか、forward engineeringオプションを使用してriトリガをスキーマに含めることができます。 リバースエンジニアリング中にこれらのオプションを含めるか除外するかを選択することもできます。
データベースをリバースエンジニアリングするときに、オブジェクトを取得するために実行されるクエリを記録するトレースファイルを設定できます。 リバースエンジニアリングのプロセスが完了した後にクエリを確認できます。
次の図は、データベースまたはスクリプトからモデルをリバースエンジニアリングする手順を示しています:
モデルをリバースエンジニアリングするには、次の手順を実行します:
- (省略可能)データベースクエリをトレースファイルに保存します。
- モデル詳細を選択します。
- リバースエンジニアリングのオプションを選択します。
- データベースとリバースエンジニアに接続します。
リバースエンジニアリング固有のオブジェクト
このセクションでは、さまざまなデータベースオブジェクトのリバースエンジニアリング
Index
データベースをリバースエンジニアリングすると、サーバーで定義されている各インデックスの名前、定義、およびパラメータがインポートされます。 サーバーからインデックス情報をインポートすると、各インデックスの格納場所情報が維持されます。 したがって、同じ記憶域割り当てを使用してデータベースを再作成できます。 各インデックスの格納場所を手動で再割り当てする必要はありません。
索引をインポートした後、索引ダイアログで索引のプロパティ、定義、および表の関連付けを表示または変更できます。 DB2z/OS、Informix、Oracle、SQL Server、およびSAP ASEデータベースの索引ダイアログで、物理ストレージ-オブジェクトに索引を割り当てることができます。 ターゲット-データベースがDB2z/OS、InformixおよびOracleの場合は、”索引”ダイアログで記憶域パラメータを変更することもできます。
DB2z/OS、Informix、Oracle、またはSAP ASEデータベースに対して物理ストレージ-オプションが選択されている場合、スキーマには索引物理ストレージ-パラメータが含まれます。
物理ストレージオブジェクト
データベースをリバースエンジニアリングするときに、ターゲットサーバーで定義した物理ストレージオブジェクトの名前と定義 インポートは、物理テーブル、インデックス、およびその他の物理スキーマ情報がインポートされるのと同じ方法で実行されます。 物理ストレージオブジェクトをインポートした後、標準エディタを使用してオブジェクト定義とテーブルの関連付けを表示または変更できます。
検証ルール
スキーマファイル、スクリプト、またはシステムカタログからリバースエンジニアリングすると、検証ルールがインポートされ、結果のモデルの適切なテーブルまたは列にアタッチされます。 インポートされた検証ルールに名前を付けるために使用される規則は次のとおりです。
Valid_Rulen
ここで、nはゼロから始まる連番です。 スキーマ全体が処理されるまで、最初に検出される検証規則の名前はVALID_RULE0、次の規則のVALID_RULE1などとなります。