# リバースエンジニアリングの実行

前章ではER図情報を元にデータベースにテーブルを作成するフォワードエンジニアリング機能をを説明しましたが、反対に、データベースからER図を作成するリバースエンジニアリングという機能があります。

既存システムの改修案件など物理データベースにテーブル情報からER図を逆生成したい場合に使用することができます。 ここでは、そのリバースエンジニアリング機能について説明します。

■リバースエンジニアリングの実行

フォワードエンジニアリングを実行するにはツールバーにあるリバースエンジニアリングのアイコン、または「データベース」メニューの中にある「リバースエンジニアリング」をクリックします。

ログオン画面が表示されます。 「データベースタイプ」から接続するデータベースを選択し、
ユーザID、パスワード、接続モード(Oracleの場合)、サーバー(SQL Server/PostgreSQL/MySQLの場合)、ポート番号(PostgreSQL/MySQLの場合) を入力し、データベース接続を行います。

接続に成功すると、以下の画面が表示されます。接続ユーザー（スキーマ）が所有するテーブル一覧が表示されますので、ER図のエンティティとして生成したいテーブルを選択します。

既定ではログオンユーザーに紐づくスキーマのテーブル一覧のみ表示されますが、左側のスキーマ一覧より、他のスキーマをONにすることでそのスキーマのテーブルもリバース対象に含めることができます。

また、既定ではテーブル一覧のみ表示されていますが、左下の「対象オブジェクト」よりビューやプロシージャなどのオブジェクトをあわせてリバース対象に含めることができます。

リバース対象の設定後は「開始」ボタンをクリックします。リバースエンジニアリング処理が実行されます。

完了後は「終了」ボタンをクリックすると、生成されたER図が表示されます。エンティティの他、データベース側に外部キー制約（参照整合性制約）が設定されている場合はリレーションシップも自動で生成されます。

■その他の機能

・論理モデルの自動生成
リバースエンジニアリングでは通常、物理モデルのみ作成されます（論理名には物理データベースのテーブル名、カラム名がセットされます）が、あらかじめ「オプション」タブの「エンティティ名の取得方法」「属性名の取得方法」を設定しておくことにより、 論理モデルについても自動生成することができます。

「テーブルコメントを使用」「カラムコメントを使用」を選択した場合はコメント句で設定された情報を論理名としてセットします。また、「論理名変換テーブルで変換」では独自の変換テーブルを定義して論理名を自動生成することができます。当オプションを使用する場合はあわせて、右上にある「論理名変換テーブル編集」ボタンをクリックします。名称変換テーブルエディタ画面が表示されますので、変換設定を行ってください。

・外部キーの自動生成
通常、物理データベース側で外部キー制約が存在しない場合にはリレーションシップは生成されませんが、「オブジェクトの推定」欄にある推定オプションよりリレーションシップの自動生成もできます。例えば、「カラム名を元にリレーションシップを推定」をONにしてリバースエンジニアリングを実行した場合は、同名のカラムを持つエンティティの間にリレーションシップが自動生成されます。

その他のオプション項目の詳細についてはリバースエンジニアリングの画面説明をご覧ください。