version 0.2.0
製作著作 © 2009 Jiemamy Project and Others
概要
Jiemamy Eclipse Model Editorの各機能を網羅的に解説します。
目次
(TODO)
このマニュアルでは、Jiemamy Eclipse Model Editorの各機能を列挙し、それぞれに関して簡単な実例を 挙げながら解説します。
Copyright © 2006-2007 Jiemamy Project and the Others.
Licensed under the Apache License, Version 2.0 (the "License") you
may not use this file except in compliance with the License. You may
obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Jiemamyは、Webアプリケーションの開発に伴うデータベーススナップショット(スキーマと初期データ等)の管理スイートを提供します。 GUIエディタによるER図の管理を通じてDBの状態・履歴を管理し、データベースのリファクタリングなどをサポートします。
理由の如何を問わず、Jiemamy(以下、「本ソフトウェア」と呼ぶ。)のインストールに起因して 生じた損害または損失に対して、Jiemamy Project及びその関係者(以下、「甲」と呼ぶ。)は一切の責任を負いません。
甲は、本ソフトウェアおよびそのドキュメント類に関して一切の保証を行いません。 甲は、本ソフトウェアにバグがないこと、これが正常に動作すること、またはユーザ(以下、「乙」と呼ぶ。)の 期待通りに動作することを保証していません。
甲は、乙がご使用になるソフトウェア・プログラム(本ソフトウェアを含むがこれに限定されない)の 使用または使用不能に起因する、逸失利益、職務の中断、データの損失を含む(但しこれらに限定されない)、 特別、派生的、間接的又は類似した損害やその他いかなる損害において、あらかじめ甲がそのような損害の 可能性について知らされていた場合であっても、一切の責任を負いません。
![]() | 重要項目 |
---|---|
ソフトウェアの性格上、JiemamyからDBに対して操作を行うことがありますが、最悪の場合、 その際にDBのデータを破壊してしまう可能性もあります。Jiemamyの利用に先立っては、必ず データのバックアップをお取りください。 |
Jiemamyを初めて使用する場合は、システムに次のソフトウェアをインストールしておく必要があります。下記ソフトウェアのインストールに関しては、 Web上の各種リソースを参照して下さい。
Java 2 Platform Standard Edition (J2SE) 5.0 以降
Eclipse 3.3 (Europa)以降
![]() | 注意 |
---|---|
以上は、Jiemamy Model Editorの動作環境です。Jiemamyを使用して作るプロジェクトに関しては、Javaのバージョンの制限はありません。 Jiemamyは工夫次第で、Javaプロジェクト以外にも適用できる可能性があります。 |
また、Jiemamy Eclipse Model Editorの動作にあたっては、下記のEclipseプラグインが必要となります。インストールに関しては後述します。
Eclipse Graphical Editing Framework (GEF) 3.2 以降
まず、Jiemamy Model Editorのインストールを行います。
Eclipseのメニューバーより、Help > Software Updates > Find and install... をクリックし、ウィザードの Search for new features to install を選択し、Next をクリックします。
ウィザードの2ページ目において、Jiemamy Eclipseプラグイン配布サイトの登録を行います。New Remote Siteボタンをクリックし、
Nameに任意の名称("Jiemamy Update Site" を推奨)を、URLにhttp://eclipse.jiemamy.org/release/
を入力し、
OKボタンをクリックします。
Jiemamy Eclipse Model Editorの動作には、Eclipse Graphical Editing Framework (GEF) 3.2 以降が必要となります。 GEFは、EclipseのプラグインとしてEclipse公式サイト(Europa Discovery Site)にて配布されていますので、ここで同時にインストールを行います。 既にGEFがインストールされている場合は、Europa Discovery Siteを選択する必要はありません。
たった今登録した Jiemamy Update Site 及び Europa Discovery Site にチェックが入っていることを確認し、Finishボタンをクリックします。 プログレスバーの進行が完了すると次の画面に進みます。ツリーから Jiemamy Eclipse Model Editor Feature A.B.C.YYYYMMDDhhmm 及び、使用予定のデータベースのDialectを選択します。このチュートリアルでは MySQL を使用します。Dialectは必要に応じて複数 インストールすることも可能です。GEFをインストールする場合は、Graphical Editing Framework にもチェックを入れます。 選択が完了したら、Nextボタンをクリックします。
ライセンス許諾(Apache License Version 2.0)に同意の上、I accept the terms in the licese agreements を選択し、 Nextボタンをクリックします。
インストール先を確認し(通常、デフォルトのままで構いません)、Finishボタンをクリックします。
インストールするプラグインの確認がありますので、Install Allボタンをクリックします。
プログレスバーの進行が完了すると、Eclipseの再起動を促されます。YesボタンをクリックしてEclipseの再起動を行います。 以上でJiemamy Eclipse Model Editorのインストールは完了です。メニューバーから Help > About Eclipse Platform を選択し、 AboutダイアログにJiemamyのロゴが表示されていれば、インストール成功です。
新しくJiemamyモデルファイルを作成する場合は、File > New > Other より、Jiemamy ER Diagram を選択し、Nextボタンをクリックします。 次の画面でファイル名を入力します。拡張子は .jer でなければなりません。
![]() | ティップ |
---|---|
ファイルの拡張子を省略した場合は、自動的に .jer を補完します。 |
![]() | 注意 |
---|---|
Eclipseは、プロジェクトがなければファイルを作成することができません。1つもプロジェクトが無い場合は、新規にプロジェクトを作成してください。 |
既存のJiemamyモデルファイルを開く場合は、Package Explorer, Navigator, Project Explorer 等より、ファイルをダブルクリックする ことにより、エディタを開く事ができます。
ダイアグラムの背景を選択し、右クリックしたメニューから「プロパティ(P)」を選択することにより、データベース情報編集ダイアログを開く事ができます。 このダイアログでは、データベース・スキーマに関する全体的な設定や、ドメイン・データセット等の設定を行うことができます。
新しいJiemamyモデルファイルを開いたら、まずこれからモデリングするスキーマを適用するデータベースを選択します。 データベース情報編集ダイアログのデータベースの項目を変更し、OKボタンをクリックします。
ドメインとは、既存の型に対してサイズ等のオプション及び制約を付与した、ユーザ定義のデータ型です。ドメインを定義して使用することにより、 特定のドメインの仕様が変更になった際、そのドメインを使用する全てのカラムの型が同時に変更されます。
例えば、ある「名前」を表すカラムに対して使用する目的でNAMEというドメインを"CHAR(32) NOT NULL"で定義していて、いくつかのカラムでこの NAME型を使用していたとします。この時、SQLの出力に際しては"CHAR(32) NOT NULL"が出力されます。ここで、「名前」に関する仕様変更があり、 型について"VARCHAR(64)"を使用することになった場合、ドメイン定義を "VARCHAR(64)" に変更します。これにより、以後のSQLの出力に際して 全てのNAMEが "VARCHAR(64)" で出力されるようになります。
データベース基本情報編集ダイアログを開き、「ドメイン(O)」タブを選択します。
タブの上部には、現在設定されているドメインの一覧が表示されています。その直下にある「追加(A)」ボタンをクリックします。
最下段に新しいドメインが追加され、「ドメイン情報」部分にドメイン名やデータ型など、必要な設定を行います。
![]() | ティップ |
---|---|
「追加(A)」ではなく「挿入(I)」をクリックすることにより、現在の選択位置に新規作成を行うことができます。また、削除ボタンの右側に ある「▲」「▼」ボタンで、順番を入れ替えることができます。 |
ドメインの一覧から行を選択することにより、「ドメイン情報」が切り替わり、設定の編集を行うことができます。
また、ここで「削除(R)」ボタンをクリックすると、現在選択されているドメインが削除されます。
![]() | 警告 |
---|---|
この時、既にどこかから参照されていたドメインだった場合、それらの型は、ドメインに設定されていた型に展開されます。 |
最後に、ダイアログの「OK」ボタンをクリックすることにより、この設定が保存されます。
データベース基本情報編集ダイアログを開き、「データセット(T)」タブを選択します。
タブの上部には、現在設定されているデータベースの一覧が表示されています。その直下にある「追加(A)」ボタンをクリックします。
最下段に新しいデータセットが追加され、「データセット情報」部分にデータセット名を入力します。
データセット名の右側の「編集」ボタンをクリックすることにより、実際のデータ編集ダイアログが開きます。データ編集ダイアログについては 次項で説明します。
![]() | ティップ |
---|---|
「追加(A)」ではなく「挿入(I)」をクリックすることにより、現在の選択位置に新規作成を行うことができます。また、削除ボタンの右側に ある「▲」「▼」ボタンで、順番を入れ替えることができます。 |
データセットの一覧から行を選択することにより、「データセット情報」が切り替わり、設定の編集を行うことができます。
また、ここで「削除(R)」ボタンをクリックすると、現在選択されているデータセットが削除されます。
最後に、ダイアログの「OK」ボタンをクリックすることにより、この設定が保存されます。
最初、データ編集ダイアログには何も表示されていません。
表示エリアを右クリックしたメニューから「追加(A)」を選択することにより、INSERT対象のテーブルを追加することができます。テーブルを選択し、 「OK」ボタンをクリックします。
選択したテーブルタブが追加されます。
右クリックしたメニューから「削除(D)」を選択することにより、現在表示されているタブのテーブルに関するデータを削除することができます。
現在のバージョンでは、JiemamyのUIから行の追加・削除を行う事はできません。行の追加・削除をする場合は、一度データを CSV形式のファイルにエクスポートし、編集した後、インポートし直します。「CSVエクスポート(E)」ボタンをクリックして、エクスポートを行います。
テキストエディタやMicrosoft Excel等でCSVファイルを編集し、保存します。
「CSVインポート(I)」ボタンをクリックして、インポートを行います。
既存のデータはその場で編集することができます。
テーブルの追加は、まずパレットの「エンティティ」カテゴリから「テーブル」を選択します。
その状態で、ダイアグラム上をクリックします。
以上で、ダイアグラム上にテーブルが1つ作成されます。
![]() | ティップ |
---|---|
ダイアグラムをクリックした場合、デフォルトサイズ(必要に応じてサイズが自動調整される)のノードが作成されます。 ダイアグラムをドラッグした場合は、ドラッグしたサイズでテーブルが生成されます。この場合、手動でサイズ調整しない限り、カラムが隠れてしまう場合があります。 |
テーブルの削除は、削除したいテーブルを選択し、右クリックで表示されるコンテキストメニューから「Delete」を選択します。 メニュー選択の代りに、DELキーで削除を行うこともできます。
![]() | ティップ |
---|---|
複数のノードを同時に選択し、全てを同時に削除することも可能です。 |
ノードをドラッグ&ドロップすることにより、位置を移動することができます。また、ノードを選択した時、縁に8カ所配置されているハンドルを ドラッグすることにより、ノードのサイズを変更することができます。
![]() | ティップ |
---|---|
手動でノードのサイズを変更した場合は、カラム数に応じてサイズが自動調整されなくなります。一度手動調整したノードを自動調整に戻すには、 コンテキストメニューから「サイズ調整(Z)」>「サイズを自動調整(S)」を選択します。 |
テーブルをダブルクリック、またはコンテキストメニューから「プロパティ(P)」を選択することにより、テーブル編集ダイアログが開きます。
タブ上部のテーブル情報編集エリアで、テーブル名等の編集を行います。
テーブル編集ダイアログの最上段で、テーブルの基本情報を設定することができます。ここに、テーブルの物理名や論理名を入力し、また、 表示色の調整を行うことができます。
一番右にある「無効」チェックボックスをONにすると、エクスポーターがこのテーブルを無視するようになります。
テーブル編集ダイアログの「カラム(C)」タブで「追加(A)」をクリックすると、最下段にカラムを追加することができます。 また、上部のリストでカラムを選択し、「挿入(I)」をクリックすると、選択している位置(選択したカラムの1つ上)にカラムを挿入することができます。
上部のリストでカラムを選択し、「削除(R)」をクリックすると、選択したカラムを削除することができます。
上部のリストで選択したカラムは、下部の「カラム情報」で編集を行う事ができます。以下に、各項目の説明は以下の通りです。
「カラム名(M)」 -- カラムの物理名を設定します。
「論理名(L)」 -- カラムの論理名を設定します。
「データ型(T)」 -- カラムのデータ型を設定します。設定したデータベースにより、選択肢が変化します。
データ型オプション -- データ型によって、右側に「サイズ」等の追加のコントロールが表示される場合があります。
「主キー(P)」 -- このカラムを主キーカラムとする場合にチェックします。
「NOT NULL(N)」 -- このカラムにNOT NULL制約を付加する場合にチェックします。
「無効(G)」 -- このカラムを、エクスポーターが無視するようになります。
「制約名(M)」 -- チェック制約式(K)に設定するチェック制約の名前を設定します。
「チェック制約式(K)」 -- このカラムに対するチェック制約を記述します。
「デフォルト値(F)」 -- このカラムに対するデフォルト値を設定します。
「説明(D)」 -- このカラムに対する説明文(コメント)を記述します。
編集が終わり、変更を適用する場合はOKを、適用しない場合はCancelをクリックし、ダイアログを終了します。
ビューの追加は、まずパレットの「エンティティ」カテゴリから「ビュー」を選択します。
その状態で、ダイアグラム上をクリックします。
以上で、ダイアグラム上にビューが1つ作成されます。
![]() | ティップ |
---|---|
ダイアグラムをクリックした場合、デフォルトサイズ(必要に応じてサイズが自動調整される)のノードが作成されます。 ダイアグラムをドラッグした場合は、ドラッグしたサイズでテーブルが生成されます。この場合、手動でサイズ調整しない限り、カラムが隠れてしまう場合があります。 |
ビューの削除は、削除したいビューを選択し、右クリックで表示されるコンテキストメニューから「Delete」を選択します。 メニュー選択の代りに、DELキーで削除を行うこともできます。
![]() | ティップ |
---|---|
複数のノードを同時に選択し、全てを同時に削除することも可能です。 |
外部キーの追加は、まずパレットの「コネクション」カテゴリから「外部キー」を選択します。
その状態で、まず制約を受けるテーブルをクリックします。
続いて、参照されるテーブルをクリックします。
以上で、ダイアグラム上に外部キーが1つ作成されます。
![]() | ティップ |
---|---|
外部キーは、自分自身のテーブルを参照することも可能です。2回続けて同じテーブルをクリックすることにより、このような外部キーも 作成することができます。 |
外部キーの削除は、削除したい外部キーを選択し、右クリックで表示されるコンテキストメニューから「Delete」を選択します。 メニュー選択の代りに、DELキーで削除を行うこともできます。
![]() | ティップ |
---|---|
複数のコネクションを同時に選択し、全てを同時に削除することも可能です。 |
外部キーをダブルクリック、またはコンテキストメニューから「プロパティ(P)」を選択することにより、外部キー編集ダイアログが開きます。
このダイアログでは、外部キーに関する全ての情報を編集することができます。最下段の「マッピング」、参照元カラムと参照先カラムの 対応関係(マッピング)を設定します。
(TODO)
メモの追加は、まずパレットの「その他」カテゴリから「メモ」を選択します。
その状態で、ダイアグラム上をクリックします。
以上で、ダイアグラム上にメモが1つ作成されます。
![]() | ティップ |
---|---|
ダイアグラムをクリックした場合、デフォルトサイズ(必要に応じてサイズが自動調整される)のノードが作成されます。 ダイアグラムをドラッグした場合は、ドラッグしたサイズでテーブルが生成されます。この場合、手動でサイズ調整しない限り、カラムが隠れてしまう場合があります。 |
メモの削除は、削除したいメモを選択し、右クリックで表示されるコンテキストメニューから「Delete」を選択します。 メニュー選択の代りに、DELキーで削除を行うこともできます。
![]() | ティップ |
---|---|
複数のノードを同時に選択し、全てを同時に削除することも可能です。 |
外部のリソースからJiemamyモデルに情報の取り込みを行うことをインポート、Jiemamyモデルを別の形に変換して出力することをエクスポートと呼びます。 また、インポートやエクスポートを行う拡張ロジックを、それぞれインポータ・エクスポータと呼びます。
Jiemamyは拡張により、様々なインポートやエクスポートができるように設計されています。Jiemamyが標準で提供しているインポータは DatabaseImporter(実際のDBからスキーマを読み込むインポータ)、エクスポータはSqlExporter(JiemamyモデルをSQLに変換して出力する)です。 その他、JPA (Java Persistence API)のエンティティクラスからテーブル情報を読み出したり、逆にJiemamyモデルからJPAエンティティクラスを生成したり、 また、JiemamyモデルよりDB仕様書を出力する等のインポータ・エクスポータの開発が進んでいます。
ここでは、DatabaseImporter及びSqlExporterの説明を行います。その他のインポータ・エクスポータについては、それぞれのドキュメントを 参照してください。
既存のデータベースからJiemamyに、スキーマをインポートすることができます。
右クリックで表示されるコンテキストメニューから「インポート(I)」>「Database Importer」を選択します。
ポップアップしたウィザードで、まず「データベース種別(D)」にてインポート元のDBの種類(SQL方言)を設定します。
「追加(A)」ボタンをクリックし、JDBCドライバを含むjarファイルを選択します。ドライバの動作にあたって複数のjarが必要な場合は、 このステップを繰り返します。
ドライバjarに含まれるDriverクラスが「JDBCドライバクラス(C)」に表示されるので、適切なドライバクラスを選択します。
「接続URI(I)」に、データベース接続URIを設定します。
「接続ユーザ名(U)」と「接続パスワード(P)」に、接続アカウントを設定します。
「スキーマ名(S)」とにスキーマ名を設定します。空欄でも構いません。
以上を設定の上、「接続テスト(T)」ボタンをクリックし、結果のダイアログを確認します。
接続できることを確認したら、Finishボタンをクリックします。
インポートにはしばらく時間がかかる可能性があります。完了し次第、完了した旨のダイアログが表示されます。
Jiemamyで作成したモデルは、SQLとしてエクスポートすることができます。
右クリックで表示されるコンテキストメニューから「エクスポート(E)」>「SQL Exporter」を選択します。
ポップアップしたウィザードで、出力するSQLファイルのパスを指定します。「参照(B)」ボタンで保存先を指定することもできます。 また、指定したファイルが既に存在したら上書きを行いますが、出力を中止したい場合は「存在したら上書きする」のチェックを外して下さい。
このページの設定が終わればFinishボタンでSQLファイルのエクスポートを完了します。さらに細かい出力設定を行う場合は、 「Next >」ボタンをクリックします。
次のページでは、さらに出力の設定を行うことができます。CREATE文に先立ってDROP文も出力したい場合は「DROP文を出力する」に チェックを入れて下さい。CREATE SCHEMA文を出力したい場合は、「CREATE SCHEMA文を出力する」にチェックを入れて下さい。
CREATE TABLE文の後に、登録したデータセットのINSERT文を出力したい場合は、「出力するデータセット」にて該当するデータセットを 選択してください。
Finishボタンをクリックすることにより、SQLの出力を行うことができます。完了し次第、完了した旨のダイアログが表示されます。
Jiemamyが出力するXMLは、出来る限りの可読性を確保するよう考慮されています。モデルエディタを使用せず、内容を見ながら直接編集 することも可能です。また、Subversion等の構成管理を行った際のマージも行いやすい構成です。
このXMLは、XML Schemaによる制約を定義してありますので、そのサポートを受けられるXMLエディタを使用して編集することをお勧めします。
XMLのルート要素は <jiemamy>であり、その子要素として、大きく分けて以下の5つのセクションがあります。
DB基本情報セクション - SQL方言(dialect), スキーマ名(schemaName)等、モデル全体のプロパティ要素が定義されている。
ドメイン定義セクション - domains要素内にdomain要素が0~複数定義されている。
エンティティ定義セクション - entities要素内に、table要素やview要素が0~複数定義されている。
データセット定義セクション - dataSets要素内にdataSet要素が0~複数定義されている。
拡張定義セクション - 拡張による自由記述のセクション。JiemamyView拡張による、ER図の位置サイズ情報等が定義されている。
その他、table要素内にはattribute要素があり、その中にカラムや外部キー等の情報が定義されています。作成したデータのXMLを 観察することにより、大まかな定義方法は把握できるはずです。
配布ドキュメントやWebサイト上で解決できない問題に遭遇した場合は、以下のメーリングリストに質問を投稿することができます。
Jiemamy-usersメーリングリスト: jiemamy-users@lists.sourceforge.jp
質問を投稿する際は、以下のページを参考に投稿内容を検討してください。早期解決に繋がります。
技術系メーリングリストで質問するときのパターン・ランゲージ -- 「問題の解決」から「情報の共有」に至るために
http://www.hyuki.com/writing/techask.html