親バカエンジニアのナレッジ帳

webのエンジニアをやっており、日頃の開発で詰まったことや書き残しておきたいことを載せています。育児のイロハという育児サイト(https://ikujip.jp)の開発も行っているため、その開発で使用されている技術についても掲載しています。

MySQLWorkbenchでER図(モデル)からDBを作成 – フォワードエンジニアリング

ti-tomo-knowledge.hatenablog.com

前回は上記の記事でDBからER図(モデル)を作成する「リバースエンジニアリング」について書きましたが、ここではその逆である「フォワードエンジニアリング」について書こうと思います。

MySQLWordbenchのER図操作

MySQLWordbenchのER図では、下記のように新規でテーブルを作成したり編集したりすることができます。
もちろんテーブル同士の相関関係も作成できます。

f:id:tomotomo1129:20180521172538j:plain

ここからがMySQLWordbenchの素晴らしい機能なのですが、作成したモデルを簡単にDBに適用することができるのです。
つまり、モデルからスクリプトを吐き出し、テーブル定義などが簡単に行えます。

手順としては、まずは上記の画面の状態で「Database」→「Forward Engineer..」と進みます。

すると適用するDBを設定する画面になります。
この辺の設定は
https://ti-tomo-knowledge.hatenablog.com/entry/2018/05/21/082211
の時と同じ要領で進めてください。

f:id:tomotomo1129:20180521172548j:plain

テーブル作成にあたってオプションを指定する画面が出てきますが、
特にオプションが必要なければ何もチェックをせずに進んで大丈夫です。

次に作成対象となるオブジェクトをチェックするページが現れますので、自分が作成するオブジェクトに合わせてチェックを入れてください。
テーブルだけならデフォルトの設定で大丈夫なはずなので、先に進んでください。

f:id:tomotomo1129:20180521172625j:plain

するとCREATE文などのDDL文が書かれた画面が表示されます。

f:id:tomotomo1129:20180521172634j:plain

そのまま「Continue」を押すとDDL文が実行され、DBに変更が適用されます。

あっという間にデータベースのテーブルが完成しました。

フォワードエンジニアリングを使う場面

リバースエンジニアリングとは、工業製品の業界でよく使用される言葉のようですが、フォワードエンジニアリングはシステム用語としてIT業界で使われることが多いようです。
厳密に言えば、リバースエンジニアリングによって既存のシステムを分析・解析し、新規のシステムを開発するという意味になります。

今回の手順ではリバースエンジニアリングについて多くは触れませんでしたが、実際はリバースエンジニアリングによって既存のデータベースを分析し、モデルを取得することができます。
そのデータを基にして(そのまま、または、一部変更するなどして)フォワードエンジニアリングを行えば、SQLスクリプトを取得することができるため、データベースを新しく構築することができるのです。

いきなりスクリプトでがしがしデータベースを作るというよりは、モデルを作って視覚的に構造を俯瞰してからデータベースを作れるために全体を意識できるという点で有効ですね。

詳解MySQL 5.7 止まらぬ進化に乗り遅れないためのテクニカルガイド (NEXT ONE)

詳解MySQL 5.7 止まらぬ進化に乗り遅れないためのテクニカルガイド (NEXT ONE)