こんにちは、皆さん頑張って設計していますか?
SI Object Browser ER(以下OBER)はER図を用いたデータモデリングツールです。
その名の通りOBERを用いてER図を作成できるのですが、作成しただけでは終わりません。
フォワードエンジニアリング、リバースエンジニアリングを行えることはご存じの通りですが、データベース同期という便利な機能があります。
今回は「データベース同期」を用いた、ER図とデータベースのメンテナンスついて紹介していきます。
「データベース同期」とは
「データベース同期」機能は、ER図と実際のデータベースの情報を比較、同期する機能です。
ER図とデータベースの状況を同期することにより、双方のメンテナンスコストを削減することが可能です。
利用する例としては以下のようなものがあります。
- ER図の修正を行った後、フォワードエンジニアリング前に変更点を再確認したい
- 大規模な修正を行っている最中のER図と、現行データベースの差分を確認したい
- ER図のメンテナンスが漏れたため、現行データベースと同期したい
様々な理由で、ER図とデータベースの状況を比較したい場面に遭遇すると思います。
通常であれば、目視かExcelに出力して比較を行うなどの方法が考えられますが、OBERに任せてしまいましょう。
「データベース同期」の実行
ここからは「データベース同期」の使い方を見ていきましょう。
「データベース同期」の実行は、OBERの[データベース]メニューから[データベース同期]をクリックします。
データベース同期の実行
実行すると、データベースにログインしていない場合はログイン画面が表示されます。
ログインが完了すると、データベース同期画面が表示されます。
データベース同期画面
全般タブでは、データベース同期を行う際のデフォルトの同期方法や、比較対象を選択することができます。
デフォルトの同期方法では、同期処理でER図とデータベースのどちらを変更するかを選択できます。
ここで設定した内容をもとに比較結果が表示されますが、比較後に変更することも可能です。
比較対象では、データベース同期で比較を行う範囲を指定することができます。
不要な差分を表示したくない場合などは、ここで比較対象を絞っておきましょう。
データベースオプションタブでは、同期時のデータベースに対する操作オプションを選択できますが、フォワードエンジニアリングやリバースエンジニアリングと同様のため、今回は割愛合します。
設定が完了したら、開始ボタンでデータベース同期を開始します。
結果:相違なし
おっと、何も相違が無い場合は「相違がありませんでした。」と表示されますね。
次はエンティティの属性を変更してから同期を実行してみます。
今回はemployeeエンティティを用意していますので、emp_nameの長さを20→40に変更してみます。
同期実行前(長さを変更)
変更を行った後、再度データベース同期を行うと、以下のような結果が表示されます。
結果:相違あり
変更した属性が相違点として表示されていることがわかります。
今回はデフォルトの同期方法でモデル変更を選択したため、操作列はモデル変更となっています。また、操作列はダブルクリックすることで矢印の向きを変更することが可能です。
開始を行うと操作列の矢印の方向に従って同期が実行されます。
同期完了
同期実行後のエンティティを参照すると、長さが同期されていることがわかります。
同期実行後
なお、DB変更で開始すると、必要なSQL文が発行されてデータベースの変更が行われます。
実行前と実行後のデータベースの情報を見ていきましょう。
実行前:データベース(Si Object Browser)
データベース同期はDB変更で開始します。
結果:DB変更
開始すると必要なSQLが実行されました。
(開始ボタンクリック後に、実行前のSQL文も確認可能です。)
スクリプト実行
実行後のデータベースでは長さが変更されていることがわかります。
実行後:データベース(Si Object Browser)
データベース同期の実行で、ER図とデータベースの比較と同期を行いました。
なお、データベース同期で比較を行うことができる対象は以下の通りです。
- エンティティ
- ビュー
- 属性
- インデックス
- リレーションシップ
- トリガー
まとめ
いかがでしたか?今回はOBERのデータベース同期についてご紹介しました。
データモデリングツールとしてER図の作成をサポートするOBERですが、データベース同期を利用することで、既存のER図やデータベースのメンテナンスとしても活用できます。
ER図の作成、フォワードエンジニアリング、リバースエンジニアリングだけでなく、データベース同期も活用して、OBERをトコトン極めてください。
- カテゴリ:
- キーワード: