ERMasterは、ER図用GUIエディタです。
Eclipseプラグインとして動作します。
ER図の作成、ER図の印刷、ER図からのDDL出力などをグラフィカルに行うことができます。
また、DBからのインポート、グループ管理、履歴管理などをサポートします。
ERMasterは、現在 Eclipse 4.3(Kepler) で開発を行っています。
現在、以下のデータベースに対応しています。
(完全ではありません)
Eclipseの
[ヘルプ] -> [ソフトウェア更新] -> [検索およびインストール] -> [インストールする新規フューチャーを検索]
[新規リモートサイト] にて、以下のURLを追加してください。
http://ermaster.sourceforge.net/update-site/
追加したURLが選択されている状態で、[終了] ボタンを押します。
[更新]ダイアログで、ERMasterにチェックをいれて、[次へ] ボタンを押します。
表示されるメッセージに従って、インストールを実施してください。
Eclipseの再起動後に、Eclipse の [ファイル] メニューに
[新規] -> [その他] -> [ERMaster] が追加されていれば成功です。
拡張子「*.erm」のファイルをダブルクリックで開くと、デフォルトでERMasterエディタが起動します。
新規に作成する場合は、
[プロジェクトを右クリック] -> [新規] -> [その他] -> [ERMaster] -> [ERMaster] を選択してください。
ウィザードが開いたら、ファイル名を入力し、使用するデータベースを選択してください。
(データベースの変更は、ファイル作成後でも可能です。)
[終了] を押すと、ファイルが作成され、エディタが起動します。
ERMasterでは次の5つの Eclipse のビューを使用しています。
エディタビューは、ERMaster のメインビューです。
このビューでER図を描きます。左側にはパレットが表示されています。
下には、[カテゴリ] 毎にタブが表示されます。
アウトラインビューには、上側にオブジェクトの一覧が表示され、
下側には、ER図の全体像が縮小されて表示されます。
問題ビューには、現在のER図が抱えている問題が表示されます。
問題ビューの内容はデータを変更しただけでは更新されず、[保存] を行うことで更新されます。
タスクビューには、作成者がタスクとして記述している内容が表示されます。
タスクは、[テーブル] や、[カラム] 等の [説明] 欄に "// TODO" で始まる記述をすることで登録できます。
タスクビューの内容は、問題ビュー同様 [保存] を行うことで更新されます。
プロパティービューには、現在選択しているオブジェクトのプロパティーが表示されます。
表示される内容は現在はまだわずかしかありませんので、あまり役には立たないかもしれません。
キャンパスをクリックすると、現在のデータベースが表示されます。
プロパティービューでは値の確認だけでなく、値の変更も行うことができます。
[Ctrl]+[S] またはメニューバーの [File] -> [Save] で保存できます。
「*.erm」ファイルはXML形式となっています。
テキストエディタで開いて直接編集することが可能です。
ERエディタのパレットで、[新規テーブル] ツールをクリックし、選択状態になったら、
キャンバスの任意の場所をクリックします。
[新規テーブル] ツールをクリックした状態で
キャンバスをクリック
作成したテーブルをダブルクリックすると、[テーブル情報] ダイアログが開きます。
このダイアログでテーブル名称、カラムの編集などを行うことができます。
作成したテーブルを右クリックし、ポップアップメニューで [削除] を選択します。
テーブルが選択されている状態で、[Delete] キー、または、ツールバーの [削除] アイコンを押すことでも削除ができます。
ポップアップメニューで [削除] を選択
ツールバーの [削除] アイコン
[テーブル情報] ダイアログで、[追加] ボタンを押すと、[列情報] ダイアログが開きます。
このダイアログで、カラムに対する『物理名』『論理名』『型・長さ』『制約』『説明』『デフォルト値』等の設定を行い、[OK] を押すと、[テーブル情報] ダイアログに反映されます。
[テーブル情報] ダイアログで [OK] を押すと、テーブルにカラムが追加されます。
[テーブル情報] ダイアログで [追加] ボタン
[列情報] ダイアログ
[テーブル情報] ダイアログに反映
テーブルにカラムが追加
既にあるカラムの編集を行う場合は、カラムを選択して[編集] ボタンを押します。
開いた [列情報] ダイアログで、『物理名』『論理名』『型・長さ』『制約』『説明』『デフォルト値』等の変更を行い、[OK] を押すと、[テーブル情報] ダイアログに反映されます。
[テーブル情報] ダイアログで [OK] を押すと、テーブルのカラムが変更されます。
[テーブル情報] ダイアログで、カラムを選択して [編集] ボタン
[列情報]ダイアログで編集
[テーブル情報] ダイアログに反映
テーブルのカラムが変更
ERMaster では、カラムには[単語]という考え方が導入されています。
詳細は 単語の管理 を参照してください。
カラムを別の単語として作り変える場合は、[列情報]ダイアログでの編集時に、単語プルダウンを空白に設定します。
カラムの削除を行う場合は、[テーブル情報]ダイアログで、カラムを選択して [削除] ボタンを押します。
[テーブル情報] ダイアログに反映された後、[OK] ボタンを押すとテーブルからカラムが削除されます。
[テーブル情報] ダイアログで、カラムを選択して [削除] ボタン
[テーブル情報] ダイアログに反映
テーブルのカラムが変更
カラムに対して主キー、NOT NULL、一意キー制約の設定をするには、[列情報] ダイアログで、
それぞれ、主キー、NOT NULL、UNIQUE チェックボックスへチェックを入れます。
[列情報] ダイアログは、テーブルをダブルクリックして開く [テーブル情報] ダイアログにて、
変更対象のカラムを選択して、[編集] ボタンを押すことで表示されます。
[テーブル情報] ダイアログで、カラムを選択して[編集]ボタン
[列情報] ダイアログで、任意のチェックボックスをチェック
主キー、NOTNULL、一意キー以外の制約を設定するには、
[列情報] ダイアログの [詳細] タブに記述します。
例えばカラムに CHECK 制約を設定したい場合は、次の図のようにします。
主キーの制約名の設定は、[列情報]ダイアログではなく、[テーブル情報]ダイアログの [制約/オプション]タブで行います。
また、複合一意キーの制約名の設定は、[テーブル情報]ダイアログの [複合一意キー]タブで行います。
なぜなら、これらは、列に対する制約ではなく、テーブルに対する制約だからです。
カラムのデフォルト値は[列情報] ダイアログで設定します。
[列情報] ダイアログは、テーブルをダブルクリックして開く [テーブル情報] ダイアログにて、
変更対象のカラムを選択して、[編集] ボタンを押すことで表示されます。
デフォルト値を入力して、[OK] を押します。
デフォルト値は、直接値を入力するだけではなく、
Type が文字列の場合、<空文字> を特別な値として選択することもできます。
また、Type が日付の場合、<現在日時> を特別な値として選択することもできます。
カラムの説明は[列情報] ダイアログで設定します。
[列情報] ダイアログは、テーブルをダブルクリックして開く [テーブル情報] ダイアログにて、
変更対象のカラムを選択して、[編集] ボタンを押すことで表示されます。
説明を入力して、[OK] を押します。
[テーブル情報]ダイアログで、移動させたいカラムを選択して[↑]ボタンまたは[↓]ボタンを押すことで、カラムの順番を入れ替えることができます。
カラムを素早く簡単に追加するには、[簡易登録]ダイアログが便利です。
[簡易登録]ダイアログは、[テーブル情報]ダイアログで[簡易登録]ボタンを押すと開きます。
[簡易登録]ダイアログでカラムの情報を入力して、[OK]ボタンを押します。
入力したカラムがテーブルに追加されます。
[管理登録]ダイアログでは、OSのクリップボードを使うことができます。
選択した領域のデータをタブ区切りのデータとして、コピー / 切り取り / 貼り付け が行えますので、
Excel からコピーして ERMaster に貼り付けることもできます。
また、右クリックして開くメニューから[コピー]/[切り取り]/[貼り付け]を選択するか
Ctrl + [c] / Ctrl + [x] / Ctrl + [v] を押すことで Excel シートのように
データの[コピー]/[切り取り]/[貼り付け]や行の挿入等を行うことができます。
テーブルに対する複合一意キーの追加は、[テーブル情報] ダイアログの、[複合一意キー] タブにて行います。
[複合一意キー] タブで、対象のカラムのチェックボックスをチェックして、[追加] ボタンを押します。
複合一意キーが追加され、プルダウンに追加した複合一意キーが表示されます。
複合一意キーを構成するカラムの組を変更したい場合は、変更したい複合一意キーをプルダウンで選択した状態で
チェックボックスのチェック状態を変更し、[更新] ボタンを押下します。
複合一意キーを構成するカラムの組が更新され、プルダウンの表示も更新されます。
複合一意キーを削除したい場合は、削除したい複合一意キーをプルダウンで選択した状態で [削除] ボタンを押下します。
複合一意キーが削除され、プルダウンからも消えます。
外部キーにより参照されている複合一意キーに対する更新および、削除は出来ません。
外部キーにより参照されている複合一意キーをプルダウンで選択した際には、
[更新] および、[削除] ボタンが非活性になるようになっています。
[テーブル情報]ダイアログの[制約/オプション]タブでは、テーブルに対する制約とオプションを設定することができます。
例えば、次のように記述した場合
DDLを生成した際に、次のようになります。
テーブルに対するインデックスの追加は、[テーブル情報] ダイアログの、[インデックス] タブにて行います。
[インデックス] タブで、[追加] ボタンを押すと、[インデックス情報] ダイアログが表示されます。
[テーブルをダブルクリック] -> [インデックス] タブを選択 [追加] ボタンを押下
[インデックス情報] ダイアログ
インデックス名を入力して、インデックスの対象とする列を全て、[インデックス列] に移動します。
[インデックス] 列は、[↑] [↓]ボタンで順番を入れ替えることができます。
[OK] を押すと、[テーブル情報] ダイアログのインデックスタブに反映されます。
さらに、[テーブル情報]ダイアログの [OK] を押すと、アウトラインのインデックス欄に追加したインデックスが表示されます。
テーブルをダブルクリックして、[インデックス] タブを選択した後、
変更したいインデックスの、上部のラジオボタンを選択して、[編集] を押します。
[インデックス情報] ダイアログで、編集を行い、[OK] を押すと、[テーブル情報] ダイアログに反映されます。
さらに、[テーブル情報]ダイアログの [OK] を押すと、アウトラインのインデックスが変更されます。
テーブルをダブルクリックして、[インデックス]タブを選択した後、
削除したいインデックスの、上部のラジオボタンを選択して、[削除]を押します。
[テーブル情報]ダイアログから、インデックスが削除されますので、[OK]を押します。
[OK]を押すと、アウトラインのインデックスが削除されます。
パレット上にあるボタンを押すことで関連を作成できます。
デフォルトでは、関連の線はそれぞれのテーブルの中点を結ぶ直線となります。
関連は参照可能な列が存在しない場合には作成することはできません。
参照可能な列とは、次のいずれかをさします。
パレット上の、[1:N 関連]ツールをクリックします。
マウスポインタが、関連用のものに変更されますので、
1のテーブルをクリックしてから、Nのテーブルをクリックします。
Nのテーブルに、関連用のカラムが追加されていますので、適宜編集を行います。
また、関連を選択すると、関係カラムが色つきで表示されます。
[1:N 関連]ツールはNのテーブルに外部キーを自動で追加するようになっています。
Nのテーブルに外部キーにしたいカラムが通常のカラムとして既に存在して、関連だけを作成
したいような場合は、[1:N 関連]ツールではなく[既存の列を使った関連]ツールを使用します。
パレット上の、[既存の列を使った関連]ツールをクリックします。
マウスポインタが、関連用のものに変更されますので、
1のテーブルをクリックしてから、Nのテーブルをクリックします。
参照される列と参照する列の対応を設定するためのダイアログが表示されます。
参照される列と参照する列の対応を設定して[OK]を押すと、関連が作成されます。
パレット上の、[N:N 関連]ツールをクリックします。
マウスポインタが、関連用のものに変更されますので、
片方のテーブルをクリックしてから、
もう片方のテーブルをクリックします。
関連テーブルが作成されますので、適宜編集を行います。
パレット上の、[自己関連]ツールをクリックします。
マウスポインタが、関連用のものに変更されますので、
自己関連を作成するテーブルをクリックします。
対象のテーブルに関連用のカラムが追加されますので、適宜編集を行います。
生成された関連の線をダブルクリックします。
[関連情報]ダイアログが表示されますので、必要な部分の編集を実施します。
[参照列]では、参照可能な列のみが選択できるようになっています。
参照可能な列とは、次のいずれかをさします。
関連の線をクリックして、選択状態にし、さらに右クリックします。
その後、ポップアップメニューで、[削除]を選択します。
外部キーに設定していたカラムを同時に削除するかどうかの確認ダイアログが表示されます。
確認ダイアログで[はい]を選んだ場合は、関連と同時に外部キーも削除されます。
確認ダイアログで[いいえ]を選んだ場合は、関連のみが削除され、外部キーは通常のカラムとして残ります。
ビューの追加、変更、削除は、テーブルの追加、変更、削除と似ています。
ERエディタのパレットで、[新規ビュー]ツールをクリックし、選択状態になったら、
キャンバスの任意の場所をクリックします。
[新規ビュー]ツールをクリックした状態で
キャンバスをクリック
作成したビューをダブルクリックすると、[ビュー情報]ダイアログが開きます。
このダイアログでビューの名称、カラムやSQLの編集などを行うことができます。
作成したビューを右クリックし、ポップアップメニューで[削除]を選択します。
ビューが選択されている状態で、[Delete]キー、または、ツールバーの[削除]アイコンを押すことでも削除できます。
ポップアップメニューで[削除]を選択
ビューのカラムの管理はテーブルのカラムの管理と同様ですので、カラムの管理を参照してください。
ただし、ビューのカラムには、主キー、NOTNULL、一意キー制約といった制約の設定および
デフォルト値の設定はできません。
また、ここで設定したカラムの情報は、ER図や、Excel/HTML形式のDB定義書に表示するためだけのもの
ですので、DDLには、一切反映されません。
ER図に、ノートを追加することができます。
パレットの[ノート]ツールをクリックします。
マウスポインタが変更されますので、キャンバスの任意の場所をクリックします。
ノートをダブルクリックすると編集が可能になります。
ノートと、テーブルを繋ぐには、パレットの [ノートを繋ぐ]ツールをクリックし、ノートとテーブルを順にクリックします。
カテゴリとは、いくつかのテーブルが分類されていることを表現するためのツールです。
複数のカテゴリに所属したテーブルも表現することができます。
パレットの [] を選択します。
マウスが変更されたらキャンバスをクリックして、そのまま、カテゴリーに所属させたいテーブルを選択するようにしてクリックを離します。
クリックした場所にカテゴリが作成されます。
カテゴリが生成されると、キャンバス下部に、カテゴリ用のタブが作成されます。
それぞれのカテゴリのタブには、そのカテゴリに所属しているテーブルのみが表示されます。
例えば、下図のように3つのカテゴリが存在する状態で、1つのカテゴリのタブを選択すると、
そのカテゴリに所属するテーブルのみが表示されます。
[キャンバスを右クリック] -> [カテゴリ] -> [カテゴリ管理] を押して表示される[カテゴリ]ダイアログで、
カテゴリ名を入力して、[追加] ボタンを押下することでもカテゴリを追加できます。
カテゴリ名を入力して、[追加]ボタンを押下
カテゴリ名は[カテゴリ管理]ダイアログで変更することができます。
[キャンバスを右クリック] -> [カテゴリ] -> [カテゴリ管理]
変更したいカテゴリを選択状態にして、
カテゴリ名を変更、[更新] ボタンを押下します。
キャンバスに表示されるカテゴリ名、タブ名が変更されます。
また、 キャンバス下のカテゴリのタブをダブルクリックすると[カテゴリ名の変更]ダイアログが開きます。
このダイアログでもカテゴリ名を変更することができます。
カテゴリを右クリックし、ポップアップメニューで [削除] を選択します。
カテゴリが選択されている状態で、[Delete]キー、または、ツールバーの[削除]アイコンを押すことでも削除できます。
また、[キャンバスを右クリック] -> [カテゴリ] -> [カテゴリ管理]で表示される[カテゴリ]ダイアログで、カテゴリを選択して、[削除]ボタンを押下することでもカテゴリを削除することができます。
[カテゴリ]ダイアログの左側のカテゴリ一覧に表示されているカテゴリのチェックボックスをはずすことで、カテゴリを一時的に無効にすることができます。
カテゴリの領域にテーブルをドラッグすることで、カテゴリへのテーブル追加ができます。
カテゴリーの枠をドラッグしてカテゴリ領域を広げることによってテーブルを完全に囲むことでも、
テーブルをカテゴリに追加することができます。
また、[キャンバスを右クリック] -> [カテゴリ] -> [カテゴリ管理]で表示されるカテゴリダイアログでカテゴリを選択した後、
右のオブジェクト一覧で追加したいテーブルのチェックボックスをチェックして、[OK]を押下することでもカテゴリへテーブルを追加できます。
テーブルをドラッグして、カテゴリの領域から完全に外すことで、カテゴリからのテーブル削除ができます。
ドラッグしたテーブルがカテゴリの領域から完全に外れずに残っていた場合は、
テーブルは、カテゴリーから削除されずに、カテゴリの領域がテーブルを含むように広がります。
また、[キャンバスを右クリック] -> [カテゴリ] -> [カテゴリ管理]で表示されるカテゴリダイアログでカテゴリを選択した後、
右のオブジェクト一覧で削除したいテーブルのチェックボックスをチェックして、[OK]を押下することでもカテゴリからテーブルを削除できます。
デフォルトでは、それぞれのカテゴリのタブには、そのカテゴリに属しているテーブルだけが表示されます。
もし、参照されているテーブルも表示したい場合は、ポップアップメニューで[カテゴリ] -> [参照されているテーブルも表示]を選択します。
例えば、下の図のような状態で、[緑]カテゴリを選択すると、
そのカテゴリに属しているテーブルだけが表示されますが、
ポップアップメニューで[カテゴリ] -> [参照されているテーブルも表示]を選択すると、
参照されているテーブルも表示されるようになります。
ER図には[画像]を挿入することができます。
パレットの[画像挿入]ツールをクリックします。
マウスポインタが変更されますので、キャンバスの任意の場所をクリックします。
すると、ファイルの選択ダイアログが開くので、挿入したい画像ファイルを選択します。
選択された画像がER図に挿入されます。
挿入した画像のプロパティを変更するには、画像をダブルクリックします。
すると、[画像情報]ダイアログが開くので
色相、彩度、明度、透明度を変更できます。
これらの値を変更して[OK]を押すと、
キャンバスの画像が変更されます。
デフォルトでは、画像の縦横比は固定されています。
縦横比を変えたい場合は、[画像情報]ダイアログで、[画像の縦横比を維持する]のチェックボックスのチェックをはずします。
こうすることで、縦横比を自由に変えられるようになります。
ERMasterでは、「論理名」「物理名」「型」「長さ」「小数」「説明」を
ひとまとめにしたものを[単語]という言葉で表現しています。
各テーブルのカラムは、[単語]から作成され、「制約」や「デフォルト値」が追加されます。
[単語]の集合は[辞書]と呼び、アウトラインビューに表示されます。
[単語]をそれだけで追加することはできません。
カラム追加時に、[単語]を選択せずに登録した場合に、自動で追加されます。
新規にテーブルを作成し、
2つのカラムを[単語]を選択せずに追加します。
すると、[アウトライン]ビューで2つの[単語]が追加されたのを見ることができます。
[単語]の下には、その[単語]を使用しているテーブルの一覧が表示されます。
[列情報]ダイアログで、[単語]を選択して登録した場合は、
新しい[単語]は追加されずに、同じ[単語]を使用するテーブルが増えます
[列情報]ダイアログで、[単語]を選択せずに登録した場合は、たとえ他に同じ「論理名」「物理名」「型」を持ったカラムがあったとしても
同じ情報を持った新しい[単語]が違う[単語]として追加されます。
[単語]を変更すると、その[単語]を使用している全てのカラムに変更内容が反映されます。
[単語]の情報を変更する方法は2つあります。
1つ目の方法は[単語]を使用しているカラムの情報を変更する方法です。
カラムの情報を変更すると、使用している[単語]の情報も同時に更新されます。
従って、次の図のように複数のカラムで同じ[単語]を使用している場合
片方のテーブルのカラム編集で、情報を変更すると、
同時にもう片方のテーブルのカラム情報も更新されます。
もし、片方のテーブルのカラム情報だけを更新したい場合は、別々の[単語]を使用するように更新する必要があります。
次の図のように、カラムの編集時に、[単語]の選択欄を空にすることで、同じ情報を持つ新しい[単語]が作成されます。
こうすることで、元々同じ1つの[単語]を使用していた2つのカラムを、
元の[単語]を使用したカラムと、新しく追加された[単語]を使用するカラムとに分けることができます。
2つ目の方法は[アウトライン]ビューの[辞書]ツリーの中から、[単語]アイコン[]をダブルクリックすることで
開く[単語情報]ダイアログで変更する方法です。
[アウトライン]ビュー
[単語情報]ダイアログが開いて、[単語]を編集することができます。
「単語」を削除する操作はありません。
どのカラムにも使われなくなった[単語]は自動的に削除されます。
[アウトライン]ビューの単語アイコン[]を、キャンバスのテーブルにドラッグドロップすることで、テーブルへ、その「単語」の情報をもったカラムを追加することができます。
いくつかのカラムを集めたグループを作成することで、
グループ単位でのカラムの登録、更新、削除が行えます。
例えば、更新日時、登録日時、更新者、登録者などの、全てのテーブルで共通となるようなカラムを、1つのグループとして登録しておけば、
各テーブルに対して、4つのカラムを追加するような作業を、簡単に行えるようになります。
[アウトライン]ビューの、[グループ列]アイコンを右クリックして、表示されたポップアップメニューから[グループの管理]を選択します。
[グループ管理] ダイアログが開きますので、[グループ追加] ボタンを押します。
グループ情報が入力可能となります。
グループ名を入力し、[追加] ボタンを押します。
表示される [グループ列情報] ダイアログで、カラム情報を入力して [OK] ボタンを押します。
グループに、カラム情報が追加されます。
この手順で必要なだけのカラムをグループに追加します。
カラムの追加が終了したら、[更新] ボタンを押すと、グループ一覧にグループが追加されます。
グループ管理ダイアログの [OK] ボタンを押すと、追加したグループが反映されます。
尚、テーブルをダブルクリックすると開く [テーブル情報] ダイアログの [グループ管理] ボタンを押すことでも、
[グループ管理] ダイアログを開くことができます。
[アウトライン]ビューの、[グループ列]から変更したいグループをダブルクリックします。
[グループ情報]ダイアログが開きますので、変更したいカラムを選択して[編集]を押下します。
[グループ列情報]ダイアログが表示されますので、内容を変更し、[OK]ボタンを押します。
全てのカラムの編集が終了したら、[OK]ボタンを押下します。
テーブルに反映されます。
[アウトライン]ビューから、削除したいグループを選択して右クリックし、
[削除]メニューを選択します。
グループが削除され、グループを使用している全てのテーブルからグループが削除されます。
[アウトライン]ビューに表示されているグループをドラッグして対象のテーブルの上でドロップします。
また、以下の方法でもグループを追加できます。
テーブルをダブルクリックして開く[テーブル情報]ダイアログで、[グループ]プルダウンを選択。
[グループ項目をテーブルに追加する]ボタンをクリック。
[OK]ボタンを押して確定すると、テーブルにグループが追加されます。
テーブルからグループを削除するには通常のカラムを削除するのと同じようにします。
テーブルをダブルクリックして開く[テーブル情報]ダイアログで、削除対象のグループを選択し、[削除]ボタンを押下します。
グループ情報が削除されますので、[OK]ボタンを押して確定します。
複数のプロジェクトで共用したいグループは[グローバルグループ]として登録することができます。
[グローバルグループ]として登録されているグループは、新しく .erm ファイルを作成した場合に、最初からグループ一覧に追加された状態で作成されます。
グローバルグループの管理を行うには、Eclipse のメニューから、[Window] -> [Preferences...]を選び、表示された[Preferences]ダイアログの[ERMaster]を選び、[グローバルグループの管理]ボタンを押します。
グループの作成、変更、削除方法は、通常のグループ管理と同じです。
通常のグループの[グループ管理]ダイアログで、グループを選択して[グローバルグループに追加]ボタンを押すと
選択しているグループをグローバルグループに追加することが出来ます。
テーブルに追加しているグループは、デフォルトでは展開されてすべての列が表示されています。
キャンバスを右クリックして表示されるポップアップメニューの[表示] -> [表記レベル] -> [グループを展開する]を選択することで、
カラムを折りたたんでグループ名を表示するように出来ます。
トリガーの追加、変更、削除は、[アウトライン]ビューで行います。
[アウトライン]ビューの中の、[]トリガーアイコンを右クリックし、[トリガー追加]を選択します。
[トリガー情報]ダイアログが開きますので、トリガー名と、トリガーを構成するSQLを入力して[OK]ボタンを押します。
[アウトライン]ビューに、作成したトリガーが追加されます。
[アウトライン]ビューの、トリガーの中から、編集したいトリガーをダブルクリックします。
[トリガー情報]ダイアログが開きますので、必要な情報を編集して[OK]ボタンを押します。
変更が、[アウトライン]ビューに反映されます。
[アウトライン]ビューの、トリガーの中から、削除したいトリガーを右クリックし、
ポップアップメニューで[削除]を選択します。
トリガーが削除され、[アウトライン]ビューに反映されます。
シーケンスの追加、変更、削除は、[アウトライン]ビューで行います。
尚、作成したシーケンスをテーブルに関連付けることはできません。
[アウトライン]ビューの中の、[]シーケンスアイコンを右クリックし、[シーケンスの追加]を選択します。
[シーケンス情報]ダイアログが開きますので、必要な情報を入力して[OK]ボタンを押します。
[アウトライン]ビューに、作成したシーケンスが追加されます。
[アウトライン]ビューの、シーケンスの中から、編集したいシーケンスをダブルクリックします。
[シーケンス情報]ダイアログが開きますので、必要な情報を編集して[OK]ボタンを押します。
[アウトライン]ビューの、シーケンスの中から、削除したいシーケンスを右クリックし、
ポップアップメニューで[削除]を選択します。
シーケンスが削除され、[アウトライン]ビューに反映されます。
表領域の管理は現在開発中です。
[全属性編集]ダイアログを使うと、ひとつのダイアログの中で全てのテーブルの全てのカラム情報を編集することができます。
[全属性編集]ダイアログを表示するには、ポップアップメニューで、[全属性編集]を選択します。
[Ctrl]+[c]で選択しているテーブルのコピー、
[Ctrl]+[v]でコピーしたテーブルのペーストが出来ます。
[Ctrl]+[c]でコピー
[Ctrl]+[v]でペースト
テーブルのコピー/ペーストは現在のファイル内でけでなく、他のファイルからも行うことができます。
[Ctrl]+[c]でコピー
他のファイルを開いて、[Ctrl]+[v]でペースト
別のファイルからコピーして張り付けたテーブルが、貼り付け先のファイルに既にあるグループと同じ名前のグループを含んでいた場合、
グループの情報はコピーされず、貼り付けたテーブルに含まれていたグループは、貼り付け先のファイルに元々あったグループで置き換えられます。
カラムを他のテーブルに移動したい場合は、ドラッグアンドドロップで行うことができます。
移動したいカラムを選択して
移動先のテーブルにドラッグアンドドロップ
カラムを選択できない場合は、ツールバーの[]がロック状態になっていないことを確認してください。
テーブルの移動は、テーブルを直接ドラッグすることで行います。
[アウトライン]ビューの下方に、全体像が出ますので、それを参考にしてください。
また、図の拡大・縮小を行うには、[スケール変更]を参照してください。
[カラムの移動]を出来るようにするために、テーブルを選択するには、
デフォルトではテーブルのカラム以外の部分を選択しなければならなくなっています。
テーブルが選択しずらい場合は、ツールバーの[]をロック状態にすることで
カラム部分をクリックしてもテーブルが選択できるようになります。
現在表示されているキャンバスよりも外に移動したい場合は、
ドラッグしているテーブルを、キャンバスの端にもってゆき、キャンバス内で静止させることで、画面がスクロールします。
テーブルをつかんでドラッグ
キャンバスの端付近でドラッグを停止すると画面がスクロールします。
移動させたい位置でドロップします。
複数のテーブルを選択状態にして、メニューバーにある以下のアイコンを押すことにより、テーブルの整列を行うことができます。
テーブルを選択した際に表示される、白い点(ハンドル)をドラッグして、テーブルサイズを変更します。
テーブルを選択してから、
右クリックして表示されるポップアップメニューで[サイズの自動調整]を選択することで
テーブルサイズを現在のデータ量にあわせて調整することができます。
テーブルを選択して、メニューバーにある アイコンを押すと、テーブルの色が変更されます。
テーブルを選択して
メニューバーのアイコンをクリックすると
色が変更されます。
メニューバーの アイコンの色を変更するには、
アイコン横の
アイコンを押下し、
表示されるダイアログで、色の選択を行います。
関連の線は、デフォルトで直線となりますが、
テーブルへの接続点を変更したり、折り曲げたりすることができます。
関連線を選択すると、テーブルの接続部分にハンドルが表示されます。
これをドラッグすることによって、テーブルの任意の場所に移動することができます。
また、関連線を選択すると、線の中央に、ハンドルが表示されます。
これをドラッグすることによって、線を折り曲げることができます。
また、線を選択して、右クリックし、
ポップアップメニューで、[直角に整列]を押すことによって、線を直角に変更できます。
関連線生成時のものに戻す場合は、
線を選択して右クリックし、表示されるポップアップメニューで、[デフォルトに戻す]を選択します。
テーブルを選択して、メニューバーにあるフォントプルダウン で値を変更すると、テーブルのフォントを変更することができます。
同様に、メニューバーにあるフォントサイズプルダウン で値を変更すると、テーブルのフォントサイズを変更することができます。
キャンバスの表示スケールは[Ctrl]キーを押しながら、マウススクロールすることで変更できます。
縮小:25%
拡大:200%
また、メニューバーの [] [
] [
] のいずれかのアイコン、
または、スケールプルダウン でも変更することができます。
スケールを小さくすると、テーブル名の判別が難しくなります。そんなときは、マウスオーバーや範囲選択を行った際に、ツールチップでテーブル名を表示することができます。
メニューバーの[ツールチップ]をオンにします。
マウスオーバーすると、テーブル名が表示されます。
範囲選択をしてもテーブル名が表示されます。
キャンバスにはデフォルトでグリッド線が表示されています。
グリッド線が邪魔で図が見難い場合は、ツールバーの[グリッド]をオフにすることでグリッド線を非表示にすることができます。
また、ツールバーの[描画オブジェクトをグリッド線に合わせる]をオンにすると、
テーブルを動かす際に、グリッド線に沿って動くようになります。
IE と IDEF1X 2つの表記法を選択することができます。
IE 表記法
IDEF1X 表記法
切り替えは、キャンバスを右クリックして表示されるポップアップメニューの [表記法] から
どちらかを選択することで行えます。
キャンバス上のテーブルや、[アウトライン]ビューのテーブルの表示レベルを変更することができます。
キャンバス、アウトラインビュー共に、論理名のみ表示、物理名のみ表示、論理/物理どちらも表示を選ぶことができます。
キャンバスの場合は、キャンバスを右クリックして表示されるポップアップメニューの [ビューモード] からいずれかを選択することで行えます。
[アウトライン]ビューの場合は、[アウトライン]ビューを右クリックして表示されるポップアップメニューの [アウトラインのビューモード] からいずれかを選択することで行えます。
キャンバスにおけるテーブルに対して、以下の表示レベルを選択することができます。
選択できる3つのデザインが準備されています。
それぞれのイメージは以下のようになります。
ファニー
フレーム
シンプル
変更するには、
キャンバスを右クリックして表示されるポップアップメニューの[デザイン]から
いずれかを選択することで行えます。
次の図のようにテーブルやカラムの物理名が小文字で設定されている場合、
キャンバスを右クリックして表示されるポップアップメニューの[大文字で表示]を選択することで、
表示上は大文字で表示するようにすることができます。
[大文字で表示]を選択
物理名が大文字で表示される
[大文字で表示]を選択すると、キャンバス上の表示だけでなく、[DDL (TXT)]も大文字で出力されます。
逆に言うと、DDL を小文字で出力したい場合は, [大文字で表示]のチェックをはずす必要があります。
ER図にプロジェクト名や作成者などのプロパティーを設定してスタンプとして表示することが出来ます。
スタンプを表示するには、キャンバスを右クリックして表示されるポップアップメニューの
[スタンプを表示]を選択します。
[スタンプを表示] を選択すると、ER図にスタンプが表示されます。
スタンプに表示されるプロパティーは、スタンプをダブルクリックすることで表示される [モデルのプロパティー] ダイアログで
設定します。
[モデルのプロパティー] ダイアログでは、デフォルトで用意されているプロパティーの値を設定するだけでなく、
プロパティー自体の追加や削除も行うことができます。
設定したプロパティーの情報は図のスタンプに反映されます。
データベースからテーブル定義を読み込んでER図を作成することができます。
空の ER 図を作成します。
キャンバスを右クリックして表示されるポップアップメニューの [インポート] -> [データベース] を選択します。
[データベースからインポート] ダイアログが開きますので、接続のために必要な情報を入力して [OK] ボタンを押します。
選択したデータベースに接続するのが始めての場合、[JDBCドライバのパス]ダイアログが開くので、データベースに接続するための[JDBCドライバ]のパスの入力してください。
一度 JDBCドライバを設定すると、2回目からはこのダイアログは表示されなくなります。[JDBCドライバ]のパスの設定については、[JDBC ドライバ]も参照してください。
接続に成功すると、選択したデータベースがスキーマをサポートしている場合、[インポートするスキーマの選択]ダイアログが表示されます。
選択したデータベースがスキーマをサポートしていない場合は、このステップはスキップされます。
データベースに存在するテーブルなどの一覧が表示されるので、インポートしたいものをチェックして、[OK]を押します。
[インポートするスキーマの選択]ダイアログでスキーマを選択するか、選択したデータベースがスキーマをサポートしていない場合は
[インポートするオブジェクトの選択]ダイアログが表示されるので、インポートしたいテーブルや、ビュー等をチェックして、[OK]を押します。
チェックしたテーブル等を読み込んでER図が生成されます。
[データベースからインポート]ダイアログでは、デフォルトで使用するJDBCドライバ は選択した[データベース]により自動的に決まります。
例えば、[データベース]が Oracle の場合、ERMasterのデフォルトの[JDBC URL]は[thin ドライバ]のものになります。
[OCI ドライバ]を使いたい場合は、[デフォルトのドライバを使用する]のチェックをはずして、[OCI ドライバ]の URL を直接[JDBC URL]に入力します。
他の *.erm ファイルから、テーブル定義を読み込んでインポートすることができます。
元となる erm ファイル
インポートする erm ファイル
キャンバスを右クリックして表示されるポップアップメニューの[インポート] -> [ファイル]を選択します。
[開く]ダイアログが表示されますので、読み込む erm ファイルを選択して[開く]ボタンを押します。
選択したファイルに存在するテーブルなどの一覧が表示されるので、インポートしたいものをチェックして、[OK] ボタンを押します。
他の erm ファイルから読み込まれたテーブル定義が図に追加されます。
別のファイルからインポートするテーブルが、インポート先のファイルに既にあるグループと同じ名前のグループを含んでいた場合、
グループの情報はコピーされず、インポートされたテーブルに含まれていたグループは、インポート先のファイルに元々あったグループで置き換えられます。
ファイルからのインポートと、[他のファイルからのコピー/ペースト]はほぼ同じ結果を得ることができますが、
単純にテーブルをコピーするだけであれば、[他のファイルからのコピー/ペースト]の方が簡単でしょう。
テーブルだけでなく、シーケンスやトリガー等も一緒にインポートしたい場合は、ファイルからのインポートの方が優れています。
作成したER図から、画像、DB定義書(EXCEL形式)、DB定義書(HTML形式)、DDL、辞書、翻訳辞書の出力を行うことができます。
出力ファイルは、相対パスと絶対パスの両方での指定が可能です。
相対パスで指定した場合、[.erm]ファイルが存在するプロジェクトのルートディレクトリからの相対パスとなります。
いくつかの出力機能は出力ディレクトリの指定が必要です。
出力ディレクトリのパスは、相対パスと絶対パスの両方での指定が可能です。
相対パスで指定した場合、[.erm]ファイルが存在するプロジェクトのルートディレクトリからの相対パスとなります。
さらに、出力ディレクトリは空の指定も可能です。この場合、エクスポートされたファイルは、[.erm]ファイルが存在するプロジェクトのルートディレクトリに出力されます。
作成したER図を、画像に出力することができます。
キャンバスを右クリックして表示されるポップアップメニューの[エクスポート] -> [画像]を選択します。
[画像出力]ダイアログが開くので、出力ファイルのパスを入力して、[OK]を押します。
画像は、"*.png", "*.jpeg", "*.bmp" の何れかの形式で出力することができます。
[全て]タブを表示中に[エクスポート] -> [画像]を選択した場合に、
[画像出力]ダイアログで、[カテゴリ毎の画像を'categories'ディレクトリに出力する]のチェックボックスをチェックすると、
[出力ファイル]で指定したディレクトリに'categories' ディレクトリが作成され、全てのカテゴリの画像が'categories'ディレクトリに出力されます。
また、特定のカテゴリのタブを表示中に[エクスポート] -> [画像]を選択した場合は、そのカテゴリの画像だけが出力されます。
作成した ER 図から、Excelドキュメントを出力することができます。
エクセル操作には jakarta POI を使用しています。
キャンバスを右クリックして表示されるポップアップメニューの[エクスポート] -> [Excel]を選択します。
[DB定義書(Excel)出力]ダイアログが表示されるので、出力ファイルのパス及び、使用するテンプレートを指定して[OK]ボタンを押します。
次の図のようなExcelファイルが出力されます。
独自のテンプレートファイルを作成することで、出力されるエクセルのレイアウトを変更することも出来ます。
テンプレートファイルの作成方法は[Excelドキュメントのカスタムテンプレートの作成]を参照してください。
Excelドキュメントは指定されたテンプレートに基づいて生成されます。
テンプレートの指定の仕方には2つの方法があります。
1つ目の方法は、登録されているテンプレートから選択する方法です。
新しいテンプレートを登録する方法は、[テンプレートの登録]を参照してください。
2つ目の方法は、ローカルファイルシステムからテンプレートファイルを選択する方法です。
作成したER図から、HTMLドキュメントを出力することができます。
キャンバスを右クリックして表示されるポップアップメニューの[エクスポート] -> [HTML]を選択します。
[DB定義書(Html)出力]ダイアログが表示されるので、出力ディレクトリを指定して[OK]ボタンを押します。
指定したディレクトリに、[dbdocs]という名前のディレクトリが作成され、その下に、次の図のようなファイルが作成されます。
生成された、DB設計書はJavadoc風のデザインになっています。
DB定義書(EXCEL形式)とは違い、このデザインのテンプレートをカスタマイズすることはできません。
[DB定義書(Html)出力]ダイアログで、
作成したER図から、データベース構築用のDDLを出力することができます。
キャンバスを右クリックして表示されるポップアップメニューの[エクスポート] -> [DDL]を選択します。
[DDL出力]ダイアログが表示されますので、必要な情報を入力して[OK]ボタンを押します。
出力されたDDL
テーブル定義に不備がある場合、メッセージダイアログが表示されますが、
続行することでそのままDDLを出力することができます。
また、特定のカテゴリタブを開いた状態で[DDL出力]ダイアログを開くと、
DDLは、そのカテゴリに属するオブジェクトの分だけが出力されます。
作成したER図で使用している、[単語]をCSV形式で出力することができます。
キャンバスを右クリックして表示されるポップアップメニューの[エクスポート] -> [辞書]を選択します。
名前を付けて保存ダイアログが表示されますので、CSVデータを保存するファイル名を入力して[保存]ボタンを押します。
出力成功の場合はメッセージが表示されます。
出力形式は、"物理名","論理名","型","説明"となります。
ERMaster には DBからのインポートを行う際に、論理名に、物理名から翻訳した単語を使用するようにする
[翻訳]という機能が存在します。
翻訳は、翻訳辞書に沿っておこなわれますが、あるデータベース設計で作成した物理名と論理名の対応を
他のデータベース設計でも使用できるようにするために、ER図から翻訳辞書ファイルを出力することができます。
ER図から翻訳辞書ファイルを出力するには、
キャンバスを右クリックして表示されるポップアップメニューの[エクスポート] -> [翻訳辞書]を選択します。
[翻訳辞書の生成]ダイアログが表示されますので、翻訳辞書の名前を入力して[OK]を押します。
生成された辞書は、'$workspace$/.metadata/.plugins/org.insightech.er/translation/' に格納され、
今後辞書ファイルとして他のER図から使用することができます。
翻訳辞書の使い方については、[翻訳]を参照してください。
作成したER図から、テーブル構築用のDDLを直接DBに対して実行することができます。
※ 本機能はデータベースの内容を一旦全て削除するため、
データベースの内容が削除されても問題がない場合のみ使用するようにしてください。
DBにエクスポートを行うには、ツールバーの[DBにエクスポート]アイコンをクリックします。
ER図が不完全な場合は、エラーダイアログが表示されるので、
エラーを解決してから、再度実行してください。
ER図に問題がない場合は、DDLを実行するデータベースを指定するためのダイアログが表示されます。
[データベースからインポート]ダイアログでは、[データベース]フィールドは選択が可能ですが、
[DBへエクスポート]ダイアログでは[データベース]フィールドは、現在のデータベースに固定されています。
[OK]ボタンを押すとこれから実行するSQLが全て表示されます。
全てのSQLではなく、表示されたSQLの一部のみを実行したい場合は、
実行したい部分を選択状態にして[実行]ボタンを押してください。
また、表示されたSQLを変更してから[実行]ボタンを押すことで、変更後のSQLを実行することもできます。
[実行]ボタンを押すと、実行するかどうかを確認するダイアログが表示されるので[OK]ボタンを押してください。
データベースの更新に成功した場合は、次のようなダイアログが表示されます。
データベースの更新に失敗した場合は、エラーの内容を表す次のようなダイアログが表示されます。
作成したER図から、テーブルに対応する Java のソースコードを生成することができます。
キャンバスを右クリックして表示されるポップアップメニューの[エクスポート] -> [Java]を選択します。
[Javaソース出力]ダイアログが開くので、必要な情報を入力して[OK]を押します。
下の図にあるようなファイルが[出力ディレクトリ]で指定したディレクトリの下に生成されます。
生成された Java のソースコードのサンプル
[Hibernate マッピングファイルを出力する]をチェックすると、Java のソースコードだけでなく、[.hbm.xml]ファイルも生成することができます。
残念ながら、Java のソースコードの生成に使われている テンプレートをカスタマイズすることはできません。
ここではExcelドキュメントのテンプレートを独自にカスタマイズする方法を説明します。
まずは、ERMaster で用意している標準のテンプレートをダウンロードします
Eclipse のメニューから[Window] -> [Preferences]を選択します。
左のツリーから[ERMaster] -> [Excelドキュメントのテンプレート]を選択します。
[テンプレートダウンロード(日本語)](または[テンプレートダウンロード(英語)])、ボタンを押します。
[名前をつけて保存]ダイアログが表示されるので、適当な場所にファイルを保存します。
次に、ダウンロードしたテンプレートを編集します。
標準のテンプレートはいくつかのシートから構成されています。
一つ目のシートは、[表紙] シートです。
表紙のシートは必要なければ削除しても良いですし、
他に固定で付与したいシートがあれば何枚でも好きな名前でシートを追加することもできます。
これらの固定シートは生成されたExcelドキュメントにも固定シートとして残されます。
二つ目のシートは [history_template] シートです。
このシートは、変更履歴になります。
このシートは ER図の [履歴] の情報から生成されます。
使用できるキーワードは [words] シートの
[history_template で使用できるキーワード ]に定義されています。
[シート名] の [表示文字] が生成されたシートのシート名になります。
三つ目のシートは、[sheet_index_template] シートです。
このシートは、生成された Excel のシート一覧になり、各シートへのリンクが張られます。
使用できるキーワードは [words] シートの
[sheet_index_template で使用できるキーワード ]に定義されています。
[シート名] の [表示文字] が生成されたシートのシート名になります。
四つ目のシートはER図を張り付けるための [ER図] シートです。
[ER図]シートのシート名は任意です。他の名前に変更してもかまいません。
[$ER(幅, 高さ)] と記述してある部分に ER図の画像 が貼り付けられます。
この際、サイズは元の画像の縦横比を維持したまま、()内で指定した幅と高さに収まるように、伸縮されます。
幅と、高さを指定せずに、[$ER] とのみ記述することも出来ます。
この場合、サイズは画像のサイズがそのまま使用されます。
各テンプレートシートの中身は自由に変更することができます。
また、いらないテンプレートシートは削除することもできます。
テンプレートシートはキーワードを使用して記述します。
使用できるキーワードは[words]シートに定義されています。
各テンプレートシートと[words]シートおよび[loops]シートは生成されたExcelドキュメントには残りません。
テーブル毎にシートが作成され、シート名はテーブルの物理名または論理名になります。
使用できるキーワードは[words]シートの
[table_template/category_template/all_tables_template で使用できるキーワード]に定義されています。
1カラムの情報は1行で記述しなければいけないという制約があります。
[$PIDX]または[$LIDX]と記述した部分は、
インデックスのマトリックス表で置き換えられます。
標準のテンプレートには記述されていませんが、カラムの情報として[$ORD]を記述した部分には、
1から順に項番が振られますので項番が必要な場合は使用してください。
インデックス毎にシートが作成され、シート名はインデックスの物理名になります。
使用できるキーワードは[words]シートの
[index_template/all_indices_template で使用できるキーワード]に定義されています。
1カラムの情報は1行で記述しなければいけないという制約があります。
カラムの情報として[$ORD]を記述した部分には、1から順に項番が振られます
シーケンス毎にシートが作成され、シート名はシーケンスの物理名になります。
使用できるキーワードは[words] シートの
[sequence_template/all_sequences_template で使用できるキーワード]に定義されています。
ビュー毎にシートが作成され、シート名はビューの物理名または論理名になります。
使用できるキーワードは[words]シートの
[view_template/all_view_template で使用できるキーワード]に定義されています。
トリガー毎にシートが作成され、シート名はトリガーの物理名になります。
使用できるキーワードは[words]シートの
[trigger_template/all_trigger_template で使用できるキーワード]に定義されています。
すべてのテーブルのすべてのカラムを記述するためのテンプレートです。
使用できるキーワードは[words]シートの
[column_template で使用できるキーワード]に定義されています。
このシートの名前は[words]シートの[column_template で使用できるキーワード]の中の
[$SHTN]の[表示文字]で指定可能です。
カテゴリー毎にシートが作成され、シート名はカテゴリー名になります。
使用できるキーワードは[words]シートの
[table_template/category_template/all_tables_template で使用できるキーワード]に定義されています。
カテゴリー毎のシートには、カテゴリーに含まれる全てのテーブルがテンプレートの内容で記述されます。
カテゴリーとしてのヘッダー部分を記述できるように、何行目からを繰り返すかを
[loops]シートの[category_template]の[開始行]で指定することができます。
同様に、テーブルとテーブルの間にスペース行をいくつ入れるかを[スペース行]で指定することができます。
例えば、デフォルトのテンプレートでは [category_template] の [開始行] は [1] に設定されています。
したがって、生成されたカテゴリー毎のシートには、ヘッダー部分はなく、
テンプレートシートの1行目から最終行までが、それぞれのテーブルに対して繰り返され、
テーブルとテーブルの間には 5 行のスペース行が設けられます。
[category_template]
一方、デフォルトのテンプレートの [all_indices_template] シートの定義を見ると、
[開始行] は [3] に設定されています。
従って、テンプレートシートの1行目と2行目は、ヘッダー行として扱われ、3行目から最終行までが、それぞれのインデックスに対して繰り返されます。
[all_indices_template]
また、それぞれのカテゴリーのシートとは別に、どのカテゴリーにも含まれないテーブルを集めたシートも作成されます。
このシートの名前は、[loops]シートの[category_template]の[シート名]で指定可能です。
すべてのテーブルを1つのシートに記述するためのテンプレートです。
使用できるキーワードは [words] シートの
[table_template/category_template/all_tables_template で使用できるキーワード]に定義されています。
このシートには、全てのテーブルがテンプレートの内容で記述されます。
ヘッダー部分を記述できるように、何行目からを繰り返すかを
[loops]シートの[all_tables_template]の[開始行]で指定することができます。
同様に、テーブルとテーブルの間にスペース行をいくつ入れるかを[スペース行]で指定することができます。
このシートの名前は、[loops] シートの [all_tables_template] の [シート名] で指定可能です。
すべてのインデックスを1つのシートに記述するためのテンプレートです。
使用できるキーワードは[words]シートの
[index_template/all_indices_template で使用できるキーワード] に定義されています。
このシートには、全てのインデックスがテンプレートの内容で記述されます。
ヘッダー部分を記述できるように、何行目からを繰り返すかを
[loops]シートの[all_indices_template]の[開始行]で指定することができます。
同様に、インデックスとインデックスの間にスペース行をいくつ入れるかを[スペース行]で指定することができます。
このシートの名前は、[loops] シートの [all_indices_template] の [シート名] で指定可能です。
すべてのシーケンスを1つのシートに記述するためのテンプレートです。
使用できるキーワードは [words] シートの
[sequence_template/all_sequences_template で使用できるキーワード]に定義されています。
このシートには、全てのシーケンスがテンプレートの内容で記述されます。
ヘッダー部分を記述できるように、何行目からを繰り返すかを
[loops] シートの [all_sequences_template] の [開始行] で指することができます。
同様に、シーケンスとシーケンスの間にスペース行をいくつ入れるかを [スペース行] で指定することができます。
このシートの名前は、[loops] シートの [all_sequences_template] の [シート名] で指定可能です。
すべてのビューを1つのシートに記述するためのテンプレートです。
使用できるキーワードは [words] シートの
[view_template/all_view_template で使用できるキーワード] に定義されています。
このシートには、全てのビューがテンプレートの内容で記述されます。
ヘッダー部分を記述できるように、何行目からを繰り返すかを
[loops]シートの[all_view_template]の[開始行]で指定することができます。
同様に、ビューとビューの間にスペース行をいくつ入れるかを[スペース行]で指定することができます。
このシートの名前は、[loops]シートの[all_view_template]の[シート名]で指定可能です。
すべてのトリガーを1つのシートに記述するためのテンプレートです。
使用できるキーワードは [words] シートの
[trigger_template/all_trigger_template で使用できるキーワード] に定義されています。
このシートには、全てのトリガーがテンプレートの内容で記述されます。
ヘッダー部分を記述できるように、何行目からを繰り返すかを
[loops] シートの [all_trigger_template] の [開始行] で指定することができます。
同様に、トリガーとトリガーの間にスペース行をいくつ入れるかを [スペース行] で指定することができます。
このシートの名前は、[loops] シートの [all_trigger_template] の [シート名] で指定可能です。
[words] シートには、各テンプレートシートで使用できるキーワードが定義されているだけでなく、
各キーワードに対応する[表示文字]の値を変更することで、生成されたExcelドキュメントに書き込まれる
文字列を変更することができます。
たとえば、[words] シートで [PK] の [表示文字] を [#] に変更すると、
カラムがプライマリーキーの場合、テンプレートシートに記述した [$PK] の位置に [#] が書き込まれます。
[loops] シートは、繰り返しがあるシートすなわち
作成したテンプレートを登録するには [Excelドキュメントのテンプレート] の設定画面で
[New] ボタンを押します。
ファイル選択ダイアログが表示されるので、作成したテンプレートを選択します。
カスタムテンプレートの一覧に選択したテンプレートが追加されます。
これでテンプレートの登録は終了です。
登録したテンプレートは、[DB定義書(Excel)出力]ダイアログのテンプレート選択プルダウンに表示されるようになります。
ここではHtmlドキュメントと、Java のソースコードのテンプレートを独自にカスタマイズする方法を説明します。
これらのテンプレートは、細かい部品に分割されたいくつかのテンプレートファイルから成り立っています。
カスタマイズの元となるファイルは、jar ファイルを解凍して取得してください。
ERMaster の jar を解凍すると、、テンプレートファイルの部品に
これらのテンプレートのカスタマイズの自由度は高くはありませんが、工夫すればそれなりのカスタマイズが可能です。
の組み合わせによって
カスタマイズした、Htmlドキュメントのテンプレートや、Java ソースコードのテンプレートを格納するディレクトリを設定します。
Eclipse のメニューから、[Window] -> [Preferences...]を選び、表示された[Preferences]ダイアログの[ERMaster] -> [外部リソース]を選びます。
[外部リソース用ディレクトリ]に任意のディレクトリを指定します。
[外部リソース用ディレクトリ]に指定したディレクトリに、カスタマイズしたリソースを配置します。
ER図の中で使用されている全てのデータに対する検索を行うことができます。
物理名や論理名のみではなく、型や長さでも検索を行うことができます。
検索を行うためには、[Ctrl]+[F]または、
キャンバスを右クリックして表示されるポップアップメニューの[検索]を選択します。
[検索]ダイアログが表示されますので、[検索する文字列]を入力して、[すべて検索]ボタンを押します。
検索結果が[検索]ダイアログの[結果]タブに表示されます。
検索対象範囲を変更するには、[対象範囲]タブで[すべて]チェックボックスを外してから、
検索対象範囲とする項目にチェックを入れます。
また、検索対象文字列を置換することができます。
[置換後の文字列]を入力して、
検索結果の中から、置換したい項目を選択し、[置換]ボタンを押します。
置換された項目は検索ダイアログから消えますが、テーブルは変更されています。
ER図の状態を履歴として保存することができます。
保存した履歴と、現在のER図の比較、保存した履歴からの復旧を行うことができます。
[キャンバスで右クリック] -> [変更履歴] を選択すると、[変更履歴] ダイアログが表示されます。
[変更履歴] ダイアログで、変更内容を記入し、[追加] ボタンを押下します。
履歴が追加されます。
履歴内容を変更できます。
履歴変更ダイアログで、履歴詳細を変更したい履歴を選択し、変更内容を入力して、[更新]ボタンを押します。
履歴の内容が変更されます。
履歴を削除できます。
履歴変更ダイアログで、削除対象の履歴を選択し、[削除]ボタンを押下します。
該当する履歴が削除されます。
保存した履歴と現在のER図を比較する場合は、変更履歴ダイアログで、
対象の履歴を選択し、[変更内容を比較表示]ボタンを押下します。
テーブルやノートに関しては、
保存した履歴からの復元を行うためには、履歴ダイアログで、
対象の履歴を選択し、[この日付のデータを表示する]ボタンを押下します。
現在のデータを履歴として保存するかどうかを確認するダイアログが表示されます。
現在の履歴を保存しても、保存しなくても、選択された履歴に変更されます。
[DBからのインポート]を行う際に、論理名に、物理名から翻訳した単語を使用するようにすることができます。
翻訳機能を使用するためには、翻訳に使用する辞書ファイルが必要ですが、
この辞書ファイルはデフォルトでは日本語のものしか用意されていません。
したがって、デフォルトでは、ロケールが日本語の場合のみ翻訳機能が ON になっています。
日本語以外で翻訳機能を使用したい場合は、まず辞書ファイルを用意する必要があります。
辞書ファイルは次のようなCSV形式で記述します。
文字コードには UTF-8 を使用します。
updated_date,更新日時
date,日付
first_name,姓
last_name,名
name,名前
item,項目
厳密なCSV形式ではなく、最初のカンマまでを物理名とし、それ以降を論理名としています。
辞書に記述されている単語は上から順に _*物理名_* (正規表現)を論理名で置き換えるようにして適用されます。
そのため、上記のように記述されている場合、
first_name -> 姓
item_name -> 項目名前
item_ID -> 項目ID
というように翻訳されます。
また、大文字、小文字両方に適用するため
ITEM_NAME も item_name 同様に 「項目名前」へと翻訳されます。
作成した辞書ファイルを登録するには、
Eclipse のメニューから、[Window] -> [Preferences...]を選び
表示された[Preferences]ダイアログの[ERMaster] -> [翻訳辞書]を選びます。
複数の辞書ファイルがある場合、リストの上のファイルから順に適用されるため、
優先順位を考慮して、ファイルの順番を適宜入れ替えてください。
辞書ファイルは登録しただけでは使用されません。
翻訳でどの辞書ファイルを使用するかの設定は、[翻訳]ダイアログで行います。
[翻訳]ダイアログは、[キャンバスを右クリック] -> [翻訳管理]を選択することで表示されます。
翻訳機能を使用するには、[翻訳機能を使用する]のチェックボックスを チェックします。
(日本語環境以外ではデフォルトで、翻訳機能は OFF になっています)
次に翻訳で使用する辞書ファイルをチェックボックスで選択します。
翻訳機能が ON になっている場合、[DBからのインポート]を実施すると自動的に翻訳機能が使用されます。
[DBからのインポート]時に、必要な JDBC ドライバが登録されていない場合 JDBC ドライバの設定ダイアログが表示されます。
一度正しい設定を行うと、このダイアログは再度表示されることはありません。
使用する JDBC ドライバを変更したい場合は、Eclipse のメニューから、[Window] -> [Preferences...]を選び、表示された[Preferences]ダイアログの[ERMaster] -> [JDBCドライバー]を選びます。
ERMaster は JDBCドライバーを内包していませんので、JDBCドライバーは適切なダウンロードサイトからダウンロードする必要があります。
参考として、執筆時点でのダウンロードサイトの URL を以下に記述します。
Database | JDBC Driver Jar | Download URL |
---|---|---|
DB2 | db2jcc4.jar, db2jcc_license_cu.jar | http://www-01.ibm.com/support/docview.wss?uid=swg21363866 |
H2 | h2-<version>.jar | http://www.h2database.com/html/download.html |
HSQLDB | hsqldb.jar | http://sourceforge.net/projects/hsqldb/files/hsqldb/ |
MSAccess | sun.jdbc.odbc.JdbcOdbcDriver | - |
MySQL | mysql-connector-java-<version>.jar | http://dev.mysql.com/downloads/connector/j/ |
Oracle | ojdbc7.jar | http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html |
PostgreSQL | postgresql-<version>.jdbc4.jar | http://jdbc.postgresql.org/download.html |
SQLServer | sqljdbc4.jar | http://www.microsoft.com/ja-jp/download/details.aspx?id=11774 |
SQLite | sqlite-jdbc-<version>.jar | https://bitbucket.org/xerial/sqlite-jdbc/downloads |
印刷は Eclipse の標準機能を使って行うことができます。
Eclipse のメニューから [File] -> [Print...] を選択してください。
印刷は、キャンバスのグリッド線の太い線でページ分割されて行われます。
従って、次の図のように、ページ分割線にテーブルが被っていると、印刷時に複数の紙に
テーブルがまたがってしまいます。
このような場合は、ページ設定で拡大縮小の設定や、余白の設定を行うことで調整することができます。
ページ設定では、このほかに、印刷の向きや、用紙サイズの変更も行うことができます。
ページ設定は、[キャンバスで右クリック] -> [ページ設定] を選択すると表示される [ページ設定] ダイアログで行います。
ページ設定で拡大縮小率等の変更を行うと、それに合わせてページ分割線の位置が変更されます。
[キャンバスで右クリック] -> [オプション] を選択すると表示される [オプション] ダイアログでこのER図の設定を行うことができます。
[オプション] ダイアログの[データベース]タブでは、ファイルを作成した際に指定したデータベースを変更することが出来ます。
データベースを変更すると、変換できなかったデータベース固有の情報は失われてしまうため、その旨の確認ダイアログが表示されます。
[テーブルスペース]に関しては開発中です。
[固有の設定]タブでは、現在のデータベースに特有の情報を設定することができます。
設定可能な項目はデータベースごとに異なります。
このオプションのチェックボックスがチェックされている場合、
論理名や、説明などの入力フィールドにフォーカスを移動した際に、IME が ON に切り替わります。
デフォルトでは、この機能はオフになっているため、必要な場合はオンにしてください。
ERMaster ではデフォルトで、物理名に使える文字を、[a-ZA-Z0-9_] に制限して、これ以外の文字は入力エラーになるようにしています。
物理名にこれ以外の文字を使用したい場合は、このオプションのチェックボックスのチェックをはずしてください。
ERMaster では関連線にベジェ曲線を使用することも出来ます。
ベジェ曲線を使用する場合は、このオプションのチェックボックスをチェックして下さい。
ベジェ曲線を使用するかどうかは、全体での設定になります。線ごとに指定することは出来ません。
デフォルトでは、ERMaster は保存時に自動で、ER図のエラーチェックを行います。
ファイルに問題がある場合、警告が [問題]ビューに表示されます。
また、[Packageエクスプローラー] にはファイルのアイコンの上に、警告マークが表示されます。
これらの警告を表示したくない場合は、[Validator を使用しない]のチェックボックスをチェックしてください。
本機能を利用することで、様々な形式のテストデータを作成することができます。
右クリックして開くメニューから、[テストデータ作成] をクリックします。
表示されたテストデータ作成ダイアログで [追加] ボタンをクリックします。
テストデータの名前を入力したら、このテストデータでデータを作成するテーブルを、全てのテーブル一覧から選択して、[→] ボタンをクリックし、選択されたテーブル一覧に移動させます。
次に、選択されたテーブル一覧から、テーブルを一つ選んでデータの入力を行います。
データの入力が終了したら、[OK] ボタンをクリックします。
データの入力方法は、2つあります。
1つ目は、データの値をひとつひとつ設定していく方法です。
こちらは、正確なデータが必要な場合に使用します。
2つ目は、繰り返しの情報を設定する方法です。
こちらは、規則的な大量のデータが欲しい場合に使用します。
[テストデータ編集] ダイアログの画面下の [直接入力] タブをクリックします。
最終行以外の行がすべてデータ行となります。
セルをダブルクリックすることで、セルに対して値を設定することができます。
行を追加したい場合は、最終行でデータを入力するか、右クリックして[挿入](もしくは、[挿入して貼り付け])を選択します。
Ctrl + [;] を押すことで、セルの値として現在日付を設定することができます。
テストデータの入力では、OS のクリップボードを使用することが出来ます。
選択した領域のデータをタブ区切りのデータとして、コピー / 切り取り / 貼り付け が行えますので、Excel からコピーして ERMaster に貼り付け、もしくはその逆などということもできます。
コピー / 切り取り / 貼り付け は右クリックして開くメニューから選択するか、Ctrl + [c] / Ctrl + [x] / Ctrl + [v] を押すことで行えます。
[テストデータ編集] ダイアログの画面下の [繰り返し入力] タブをクリックします。
[レコード数]に、作成したいレコードの数を入力すると、デフォルトで設定されている繰り返し条件に従って作成されるレコードのプレビューが表示されます。(プレビューは、50 件まで表示されます。)
プレビューで表示されている値を変更することもできます。変更されたセルは、背景が緑色になります。
変更したセルを元のプレビュー値に戻すには、元の値と同じ値を入力します。
繰り返し条件は、列ヘッダをクリックすることで表示される [繰り返し条件設定] ダイアログで変更できます。
指定できる繰り返し条件のタイプは、
このタイプを指定した場合、値は全て null が設定されます。
このタイプを指定した場合、指定したフォーマットに従って、値が設定されます。
フォーマット
値の元となるフォーマットです。このフォーマットの % の部分が他の指定から決まる値で置き換えられます。
繰り返し数
この値で指定している回数だけ、同じ値を繰り返してから次の値を使用します。
開始、終了、増分
フォーマットの % の部分には、開始値から終了値まで、増分で指定した値づつ増えた値が設定されます。
型が日付型の場合は、yyyy-MM-% のように指定すると 2010-01-31 の次の値は、2010-02-01 になります。
外部キーの列に対しては、この繰り返しタイプがデフォルト値となっています。
タイプとして外部キーが設定されているカラムは、外部キーとして参照されている列のテストデータを元にして値が設定されます。
繰り返し数
この値で指定している回数だけ、同じ値を繰り返してから次の値を使用します。
フォーマットでは、数字のみが異なるデータしか作成できないため、「りんご、みかん、もも」といったようなデータを作成する事は出来ません。
このようなデータを作成したい場合は、列挙タイプを使用します。
列挙値
設定したいデータを改行区切りで列挙します。
繰り返し数
この値で指定している回数だけ、同じ値を繰り返してから次の値を使用します。
繰り返し入力データでも、OS のクリップボードを使用することが出来ますが直接入力と違い使用できる機能は、コピーのみになります。
右クリックして開くメニューから、[テストデータ作成] をクリックします。
表示された [テストデータ作成] ダイアログで、変更したいテストデータを選択して、[変更] ボタンをクリックします。
テストデータの追加と同様にしてテストデータの情報を設定したら [OK] ボタンをクリックします。
右クリックして開くメニューから、[テストデータ作成] をクリックします。
表示された [テストデータ作成] ダイアログで、削除したいテストデータを選択して、[削除] ボタンをクリックします。
右クリックして開くメニューから、[テストデータ作成] をクリックします。
表示された [テストデータ作成] ダイアログで、[テストデータ出力] ボタンをクリックします。
[テストデータ出力] ダイアログが表示されるので、
出力するテストデータと、形式、出力ディレクトリを選択して、[出力] ボタンをクリックします。
テストデータは、指定された[出力ディレクトリ]の下に出力されますが、その際に、テストデータの名前は出力ファイルのパスになります。
従って、テストデータの名前に、[/] を用いることで、出力ディレクトリの下にサブディレクトリを作成し、サブディレクトリの下にテストデータのファイルを作成するようにすることができます。
ERMaster は、いくつかの Ant タスクを提供しています。
ただし、これらの Ant タスクは全て Eclipse 上でしか動作しないので注意して下さい。
これらの Ant タスクをバッチファイルから実行したい場合は、[equinox.launcher] を用いることで実現可能です。
<?xml version="1.0" encoding="UTF-8"?> <project default="ddl"> <target name="ddl"> <ermaster.ddl diagramFile="newfile.erm" outputFile="ddl.sql" encoding="UTF-8" /> </target> <target name="image"> <ermaster.image diagramfile="newfile.erm" outputfile="newfile.png" withCategory="true" /> </target> <target name="report_html"> <ermaster.reportHtml diagramFile="newfile.erm" outputDir="." /> </target> <target name="report_excel"> <ermaster.reportExcel diagramfile="newfile.erm" outputfile="newfile.xls" template="default_en" outputimage="true" uselogicalnameassheetname="true" /> </target> <target name="testdata"> <ermaster.testdata diagramFile="newfile.erm" outputDir="." format="0"> <testdata name="init/xxx" /> <testdata name="result/yyy" /> </ermaster.testdata> </target> </project>
ERMaster のプラグインがインストールされた Eclipse であれば、設定や Taskdef による定義などは、何も必要ありません。
build.xml にタスクを記述するだけで実行できます。
Eclipse 上で実行したにも関わらず、次のようなエラーが出て実行できない場合は、
Ant 実行時の JRE 環境が Eclipse になっていないのが原因です。
次のようにして、Ant実行時の JRE 環境を設定してください。
1.build.xml を右クリックしてメニューから [Run As] -> [External Tools Configurations...] を選択します。
2.[External Tools Configurations] ダイアログの [JRE] タブの [Runtime JRE:] がおそらく [Separate JRE] になっているので、[Run in the same JRE as the workspace] を選択します。
ERMaster の Ant タスクは Eclipse に依存していますが、[equinox.launcher] を使うことで、バッチファイルから実行することができます。
バッチファイルのサンプルは次のようになります。
@echo off set EQUINOX_LAUNCHER_JAR=c:/eclipse/4.3-2/plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar set BUILD_FILE=./build.xml if "%EQUINOX_LAUNCHER_JAR%" == "" goto HELP pushd %~dp0 echo Launching equinox ... java -jar %EQUINOX_LAUNCHER_JAR% -application org.eclipse.ant.core.antRunner -buildfile %BUILD_FILE% %1 goto end :HELP echo EQUINOX_LAUNCHER_JAR environment variable is not defined goto end :end popd pause
ERMaster は、現在次の Ant タスクを提供しています。
DDL を出力するためのタスクです。
<ermaster.ddl diagramFile="newfile.erm" outputFile="ddl.sql" encoding="UTF-8" />
画像を出力するためのタスクです。
<ermaster.image diagramFile="newfile.erm" outputFile="ddl.png" withCategory="true" />
HTML 形式のデータベース定義書を出力するためのタスクです。
<ermaster.reportHtml diagramFile="newfile.erm" outputDir="html_report" />
Excel 形式のデータベース定義書を出力するためのタスクです。
<ermaster.reportExcel diagramFile="newfile.erm" outputFile="sample.xls" template="default_en" outputImage="true" useLogicalNameAsSheetName="true" />
テストデータを出力するためのタスクです。
<ermaster.testdata diagramFile="newfile.erm" outputDir="." format="0"> <testdata name="init/xxx" /> <testdata name="result/yyy" /> </ermaster.testdata>
ERMaster は、Eclipse プラグインの拡張ポイントを提供しています。
ここでは、ERMaster の拡張方法を説明します。
ポップアップメニューに独自のメニューを追加することができます。
ここでは、単純な [Greeting] メニューを追加する方法を紹介しながら、ポップアップメニューの拡張方法を説明します。
これから作成する [Greeting] メニューは、ポップアップメニューに追加され、選択するとダイアログが開いて、"Hello World!" といメッセージが表示されます。
最初に、Eclipse プラグインのプロジェクトを作成します。
Eclipse のメニューから、[File] -> [New] -> [Project] を選択します。
[New Project] ダイアログで、[Plug-in Project] を選択して、[Next] ボタンを押します。
[Project name] を入力して、[Next] ボタンを押します。
[Name] を入力して、必要に応じて、[Activator] のクラス名を編集し、[Next] ボタンを押します。
プラグインプロジェクトが生成され、[plugin.xml] ファイルが開きます。
[Dependencies] タブを開いて、[Required Plug-ins] の [Add] ボタンを押します。
[org.insightech.er] (ERMaster) プラグインを選択して、 [OK] ボタンを押します。
同様にして、[org.eclipse.gef] プラグインを追加します。
[Extensions] タブを開いて、[All Extensions] の [Add] ボタンを押します。
[New Extension] ダイアログが開くので、[Extension Point filter] 欄に [insightech] と入力し、
[org.insightech.er.popupMenus] を選択して、[Finish] ボタンを押します。
すると、[org.insightech.er.popupMenus] extension が追加されます。
[path] に、"Export" と入力して、[class] に任意のクラス名を入力します。
この時点では、指定するクラスはまだ作成されている必要はありません。
次のステップで、[class] のリンクをクリックすると、クラスを作成することができます。
[path] に入力した "Export" という値はこの拡張メニューを ERMaster のポップアップメニューのどの位置に表示するかを決定するのに使われます。
指定可能な値は、"Export" または、"Import" のみです。
指定可能な値についてもっと詳しく知りたい場合は、ERMaster のソースコードの [org.insightech.er.editor.view.ERDiagramPopupMenuManager.java]
を参照してください。
[class] のリンクをクリックすると、[New Java Class] ダイアログが開くので、[package] と [Name] を編集して、[Finish] ボタンを押します。
すると、指定したクラスが生成されます。
ここで、このクラスは一旦置いておいて、独自のメニューを実装する [Action] クラスを作成します。
[Action] クラスは、[org.insightech.er.editor.view.action.AbstractBaseAction.class] を拡張して作成するのをお勧めします。
このクラスは、いくつかの有用なメソッドを提供します。
下の図のサンプルでは、メニューのラベルに "Greeting" と指定して、メニューがクリックされたら、ダイアログが開いて、"Hello World!" といメッセージが表示されるようにしています。
[Action] クラスを作成したら、[Action Factory] クラスの [createIAction] メソッドを、作成した [Action] クラスのインスタンスを作成するように編集します。
これで、単純な拡張メニューの作成は終了です。では、テストとして実行してみましょう。
Exlipse プラグインをテストするには、プロジェクトを右クリックして、ポップアップメニューから [Run As] -> [Eclipse Application] を選択します。
すると、Eclipse がもうひとつ起動します。
[.erm] ファイルを作成して、作成した [Greeting] メニューをポップアップメニューから選択してみてください。
ポップアップメニューから [Greeting] を選択すると、ダイアログが開いて、"Hello World!" といメッセージが表示されます。
プラグインの jar ファイルを作成するには、プロジェクトを右クリックして、ポップアップメニューから [Export] を選択します。
[Export] ダイアログでは、[Plug-in Development] -> [Deployable plug-ins and fragments] を選択して[Next] ボタンを押します。
最後に、[Directory] に任意のパスを入力して、[Finish] ボタンを押すと、プラグインの jar ファイルが作成されます。
ここまで、単純なメニューの作成方法を紹介しました。
より実用的なメニューを作成する方法は、[ERMaster のソースコード] を参考にしてください。