DB設計的神器--ERMaster =DB設計の神ツール「ERMaster」なら(未
原文: http://www.atmarkit.co.jp/fjava/rensai4/devtool11/devtool11_1.html ------------------------------------------------------------------------------------------------------------------------------------------------ データベースのテーブ
原文:
http://www.atmarkit.co.jp/fjava/rensai4/devtool11/devtool11_1.html
------------------------------------------------------------------------------------------------------------------------------------------------
データベースのテーブル設計を行うときに皆さんは、どのようにしているでしょうか?
いくつかの無料で利用できるツールが提供されているので、筆者はそれらを利用していましたが、
最近「ERMaster」と呼ばれるEclipseプラグインの存在を知りました。
ERMasterは、ほかのツールに比べ、直感的で分かりやすいUI(ユーザーインターフェイス)に、
カスタマイズ可能な、Excelで出力できるテーブル定義書、
辞書機能など痒いところに手が届くERモデリングのツールです。本稿では、このERMasterについてご紹介します。
----------------------------------------------------------------------------------
進行數據庫設計的時候,同學們,你們都在怎麼個樣子工作的呢?
有幾個可以免費使用的工具可以提供,筆者就是使用這些東西的,
最近呢,又知道了一個叫做【ERMaster】的eclipse插件
所謂ERMaster,與其他工具比較,有直感的易於理解的UI,
可以個性化的,並輸出成excel的表設計書,
字典功能等等。本稿,是這個ERMaster相關的介紹
図1 ERMasterの画面(画像をクリックすると、拡大します) |
----------------------------------------------------------------------------------
ERMasterの主な特徴、8つ
ERMasterには、主に次のような特徴があります。
■ 【1】直感的で使いやすいUI
先ほどの図1のように、テーブルや関連などを左のペインから選択して、画面にテーブルを配置したり、テーブル同士を接続して関連付けるなど、サクサクとテーブル設計ができます。
また、ノートでメモを残せたり、カテゴリによるグループ化など、テーブルの物理モデルには直接影響を与えない部分に関しても、開発者が分かりやすくテーブル設計ができる工夫が施されています。
■ 【2】論理ビュー、物理ビュー、同時表示をサポート
論理ビューと物理ビュー、双方の同時表示をサポートしています。上流工程でのモデリングから、下流工程での詳細な設計まで、幅広い用途で利用できます。
----------------------------------------------------------------------------------
ERMaster的主要特點,共8點
■ 【1】直感的易於使用的UI
如剛剛圖1所示,表和關聯等組件在左邊的面板裡選擇,拖到畫面之上,然後建立關聯,很輕鬆地可以設計表結構
而且,可以利用Note組件留下你的說明,可以利用分類組件把表分組化,在不直接影響表的物理模式的前提下,開發者便可作出易於理解的表設計來
■ 【2】支持邏輯View,物理View的同時表示
支持邏輯View和物理View,雙方的同時表示。從項目初期的模塊劃分,到項目後期的詳細設計,可以在很廣泛的用途範圍裡利用
----------------------------------------------------------------------------------
図2 論理ビュー |
図3 物理ビュー |
図4 論理/物理ビュー |
■ 【3】豊富なデータベースサポート
商用のデータベースではOracle、DB2、オープンソースのデータベースとしては、PostgreSQL、MySQLに加え、HSQLDBや組み込み向けで利用されているSQLiteなどをサポートしており、主要なデータベースは、ほぼサポートしているといえます。
----------------------------------------------------------------------------------
■ 【3】豐富的數據庫支持
商用的數據庫支持Oracle,DB2,開源的數據庫有PostgresSql,MySql, 還有HSQLDB和SQLite等嵌入式DB也支持,主要的數據庫,大部分都支持
----------------------------------------------------------------------------------
図5 ERMasterがサポートしているデータベース一覧 |
----------------------------------------------------------------------------------
■ 【4】Excel/HTML/画像への出力
ExcelやHTML、そしてPNG形式への画像でER図でモデリングしたテーブルを出力できます。ExcelやHTMLでは、HTMLやExcelファイルで提供されるテンプレートをカスタマイズして、プロジェクト独自のフォーマットで出力もできます。
----------------------------------------------------------------------------------
■ 【4】Excel/HTML/圖片輸出
可以用Excel/Html,還有PNG形式的圖片等方式,輸出模塊化之後的表的ER圖。Excel/Html形式時,Html/Excel文件提供的
----------------------------------------------------------------------------------
図6 Excelへの出力例 |
図7 HTMLへの出力例 |
■ 【5】表記方法にIEとIDEF1Xをサポート
ERダイアグラムの表記方法においては、「IE(Information Engineering)」「IDEF1X」をサポートしているので、慣れた表記方法で利用できます。IE表記法の例は、次のようになります。本稿のほかの図は、すべてIDEF1X法の表記モードを利用しています。
図8 IE表記法による表時 |
■ 【6】スタンプ機能
ER図に成果物情報のスタンプを入れられます(図9)。プロジェクト名や作成者、更新日時などを管理できるので、便利です。
図9 スタンプ機能 |
■ 【7】辞書機能
辞書機能は、一度定義した列を使いまわす機能です。例えば、あるテーブルにおいて、ある列を次のように定義したとします。
- 物理名:CID
- 論理名:顧客ID
- 型:varchar(8)
- 説明:顧客を一意に識別するID
一度定義した列情報は、辞書に登録されるので、別のテーブルを作成する際に単語を選択するだけで、論理名や型情報を入力でき、型の不一致を減らせます。また、一個所を変更すれば、同じ単語を利用した個所が自動的に変更されるので、DB設計のリファクタリングも簡単にできます(図10)。
図10 辞書機能による列の定義 |
定義した辞書を、Excelやテキストで出力する機能もあります(図11)。
図11 Excelへ出力された単語辞書 |
■ 【8】リバースエンジニアリング機能
すでにデータベース上に存在するテーブルから、ERダイアグラムをリバースして生成できます。
ERMasterプラグインをEclipseにインストール
ERMasterは、Eclipse 3.3以上で動作するEclipseプラグインとして提供されています。下記のアップデートサイトから、Eclipseのインストール機能を利用してインストールできます。
- http://ermaster.sourceforge.net/update-site/plugins/
なお、本稿では、Eclipse 3.5に日本語化やJava開発に有用なプラグインを同梱した「Pleiades All In One」のJavaエディションを利用しました。Pleiades All In Oneは、こちらから入手してください。
ERMasterでERダイアグラムを作ってみよう
インストールが完了したら、ERダイアグラムを作成してみましょう。Eclipseのメニューの[ファイル]→[新規]→[その他]→[ERMaster/ERMaster]を選択します。ファイル名と利用するデータベースを選択すると、ダイアログの編集画面が表示されます。左のペインから操作を選択して、ダイアグラムを作成します。
図3 テーブル定義画面(再掲) |
ERMasterでは、無償で使えるほかのERダイアグラム作成ツールにない特徴的な機能としてノート機能とカテゴリ機能があります。商品情報テーブルには注釈(ノート)が付けれらています。カテゴリ機能を利用すると、カテゴリでテーブルをグルーピングできます。
図12 カテゴリによるテーブルのグルーピング |
テーブルを配置して、テーブルをクリックするとテーブルの編集画面になります。ここで、テーブルの列を定義していきます。[テーブル情報]ダイアログの[追加]から、列を追加していきます(図13)。
図13 列の追加 |
次ページでは、豊富なダイアグラム操作メニューやエキスポート機能も紹介します。
■ 【5】表記方法にIEとIDEF1Xをサポート
ERダイアグラムの表記方法においては、「IE(Information Engineering)」「IDEF1X」をサポートしているので、慣れた表記方法で利用できます。IE表記法の例は、次のようになります。本稿のほかの図は、すべてIDEF1X法の表記モードを利用しています。
図8 IE表記法による表時 |
■ 【6】スタンプ機能
ER図に成果物情報のスタンプを入れられます(図9)。プロジェクト名や作成者、更新日時などを管理できるので、便利です。
図9 スタンプ機能 |
■ 【7】辞書機能
辞書機能は、一度定義した列を使いまわす機能です。例えば、あるテーブルにおいて、ある列を次のように定義したとします。
- 物理名:CID
- 論理名:顧客ID
- 型:varchar(8)
- 説明:顧客を一意に識別するID
一度定義した列情報は、辞書に登録されるので、別のテーブルを作成する際に単語を選択するだけで、論理名や型情報を入力でき、型の不一致を減らせます。また、一個所を変更すれば、同じ単語を利用した個所が自動的に変更されるので、DB設計のリファクタリングも簡単にできます(図10)。
図10 辞書機能による列の定義 |
定義した辞書を、Excelやテキストで出力する機能もあります(図11)。
図11 Excelへ出力された単語辞書 |
■ 【8】リバースエンジニアリング機能
すでにデータベース上に存在するテーブルから、ERダイアグラムをリバースして生成できます。
ERMasterプラグインをEclipseにインストール
ERMasterは、Eclipse 3.3以上で動作するEclipseプラグインとして提供されています。下記のアップデートサイトから、Eclipseのインストール機能を利用してインストールできます。
- http://ermaster.sourceforge.net/update-site/plugins/
なお、本稿では、Eclipse 3.5に日本語化やJava開発に有用なプラグインを同梱した「Pleiades All In One」のJavaエディションを利用しました。Pleiades All In Oneは、こちらから入手してください。
ERMasterでERダイアグラムを作ってみよう
インストールが完了したら、ERダイアグラムを作成してみましょう。Eclipseのメニューの[ファイル]→[新規]→[その他]→[ERMaster/ERMaster]を選択します。ファイル名と利用するデータベースを選択すると、ダイアログの編集画面が表示されます。左のペインから操作を選択して、ダイアグラムを作成します。
図3 テーブル定義画面(再掲) |
ERMasterでは、無償で使えるほかのERダイアグラム作成ツールにない特徴的な機能としてノート機能とカテゴリ機能があります。商品情報テーブルには注釈(ノート)が付けれらています。カテゴリ機能を利用すると、カテゴリでテーブルをグルーピングできます。
図12 カテゴリによるテーブルのグルーピング |
テーブルを配置して、テーブルをクリックするとテーブルの編集画面になります。ここで、テーブルの列を定義していきます。[テーブル情報]ダイアログの[追加]から、列を追加していきます(図13)。
図13 列の追加 |
次ページでは、豊富なダイアグラム操作メニューやエキスポート機能も紹介します。
ERダイアグラムの豊富なダイアグラム操作メニュー
ダイアグラムエディタ上で右クリックを押すと、メニューが表示されて、ここからさまざまな操作ができます。
図14 メニューの表示 |
-
[検索]
テーブル名や列名で検索を行える。また、単語を一括置換する置換もできる -
[ビューモード]
表示項目を物理名だけにするか論理名だけにするか、あるいは、物理名?論理名両方表示するか選択できる -
[表記法]
ダイアグラムの表記をIEとかIDEF1Xで切り替える -
[表記レベル]
テーブル名のみ、テーブル名、キーのみ、列名、全部から選択 -
[デザイン]
ダイアグラムのデザインを変更 -
[大文字で表示]
アルファベットの小文字で入力したテーブル名や列名をアルファベットの大文字で表示 -
[スタンプを表示]
プロジェクト情報などを記述したスタンプを挿入 -
[インポート]
データベース上のテーブルやほかのダイアグラムをインポート -
[エキスポート]
画像、HTML、Excelでダイアグラムを出力。また、列の型を定義した「辞書」や物理名と論理名を対応付けた「翻訳辞書」も出力可能 -
[ページ設定]
印刷時のページ設定を行う -
[変更履歴]
ダイアグラムの変更履歴をコメントを入れて管理できる -
[テストデータ作成]
テストデータを作成。執筆時点(2009年12月)では、開発中の機能であり、利用できない -
[カテゴリ管理]
テーブルをグループ化したカテゴリを管理 -
[オプション]
データベースの指定やテーブルスペースの設定を行う
各メニューは選択すれば、おおよそ使い方は分かると思いますので、詳細は省略します。エキスポートについては、文字化けという問題点や、テンプレートのカスタマイズ機能があるなど説明が必要ど思う部分があるので、紹介します。
ERMasterのエキスポート機能、2つの注意点
画像(PNG形式)でダイアグラムを出力際にデフォルトのフォント設定では、ノートに日本語を入れると、文字化けします。フォントを「Tahoma」から、「MS Pゴシック」などに変更してください(図15)。
図15 文字化け回避のためのフォントの変更 |
またExcelで出力する際には、出力するExcelのテンプレートをカスタマイズできます。テンプレートの設定は、Eclipseのメニューの[ウィンドウ]→[設定]より設定ダイアログを開いて、[ERMaster]→[DB定義書テンプレート]から行います(図16)。
図16 Excelテンプレートの変更 |
上部の[テンプレートのダウンロード(日本語)]をクリックすると、テンプレートのひな型がダウンロードできます。ダウンロードしたテンプレートをカスタマイズして同画面上の[新規]ボタンをクリックすれば、プロジェクトでカスタマイズしたテンプレートを登録できます。
ダイアログ上のエキスポートメニューでExcelを選択すると、テンプレートを選択する画面が表示されるので、ここで登録したテンプレートを選択すれば、カスタマイズしたテンプレートに基付き、Excelでテーブル定義書を出力できます。
痒いところに手が届くERMaster
本稿ではERMasterを紹介しましたが、いかがでしたでしょうか。ERMasterの現在開発中の機能として、テストデータ作成支援機能があり、この機能が実装されれば、テストデータを簡単に作成できるようになりそうです。
案件によっては痒いところに手が届く機能がオープンソースのプロダクトとして提供されているのは、非常に魅力的に感じます。ぜひ機会があれば利用してみてください。
■ 【5】表記方法にIEとIDEF1Xをサポート
ERダイアグラムの表記方法においては、「IE(Information Engineering)」「IDEF1X」をサポートしているので、慣れた表記方法で利用できます。IE表記法の例は、次のようになります。本稿のほかの図は、すべてIDEF1X法の表記モードを利用しています。
図8 IE表記法による表時 |
■ 【6】スタンプ機能
ER図に成果物情報のスタンプを入れられます(図9)。プロジェクト名や作成者、更新日時などを管理できるので、便利です。
図9 スタンプ機能 |
■ 【7】辞書機能
辞書機能は、一度定義した列を使いまわす機能です。例えば、あるテーブルにおいて、ある列を次のように定義したとします。
- 物理名:CID
- 論理名:顧客ID
- 型:varchar(8)
- 説明:顧客を一意に識別するID
一度定義した列情報は、辞書に登録されるので、別のテーブルを作成する際に単語を選択するだけで、論理名や型情報を入力でき、型の不一致を減らせます。また、一個所を変更すれば、同じ単語を利用した個所が自動的に変更されるので、DB設計のリファクタリングも簡単にできます(図10)。
図10 辞書機能による列の定義 |
定義した辞書を、Excelやテキストで出力する機能もあります(図11)。
図11 Excelへ出力された単語辞書 |
■ 【8】リバースエンジニアリング機能
すでにデータベース上に存在するテーブルから、ERダイアグラムをリバースして生成できます。
ERMasterプラグインをEclipseにインストール
ERMasterは、Eclipse 3.3以上で動作するEclipseプラグインとして提供されています。下記のアップデートサイトから、Eclipseのインストール機能を利用してインストールできます。
- http://ermaster.sourceforge.net/update-site/plugins/
なお、本稿では、Eclipse 3.5に日本語化やJava開発に有用なプラグインを同梱した「Pleiades All In One」のJavaエディションを利用しました。Pleiades All In Oneは、こちらから入手してください。
ERMasterでERダイアグラムを作ってみよう
インストールが完了したら、ERダイアグラムを作成してみましょう。Eclipseのメニューの[ファイル]→[新規]→[その他]→[ERMaster/ERMaster]を選択します。ファイル名と利用するデータベースを選択すると、ダイアログの編集画面が表示されます。左のペインから操作を選択して、ダイアグラムを作成します。
図3 テーブル定義画面(再掲) |
ERMasterでは、無償で使えるほかのERダイアグラム作成ツールにない特徴的な機能としてノート機能とカテゴリ機能があります。商品情報テーブルには注釈(ノート)が付けれらています。カテゴリ機能を利用すると、カテゴリでテーブルをグルーピングできます。
図12 カテゴリによるテーブルのグルーピング |
テーブルを配置して、テーブルをクリックするとテーブルの編集画面になります。ここで、テーブルの列を定義していきます。[テーブル情報]ダイアログの[追加]から、列を追加していきます(図13)。
図13 列の追加 |
次ページでは、豊富なダイアグラム操作メニューやエキスポート機能も紹介します。
ERダイアグラムの豊富なダイアグラム操作メニュー
ダイアグラムエディタ上で右クリックを押すと、メニューが表示されて、ここからさまざまな操作ができます。
図14 メニューの表示 |
-
[検索]
テーブル名や列名で検索を行える。また、単語を一括置換する置換もできる -
[ビューモード]
表示項目を物理名だけにするか論理名だけにするか、あるいは、物理名?論理名両方表示するか選択できる -
[表記法]
ダイアグラムの表記をIEとかIDEF1Xで切り替える -
[表記レベル]
テーブル名のみ、テーブル名、キーのみ、列名、全部から選択 -
[デザイン]
ダイアグラムのデザインを変更 -
[大文字で表示]
アルファベットの小文字で入力したテーブル名や列名をアルファベットの大文字で表示 -
[スタンプを表示]
プロジェクト情報などを記述したスタンプを挿入 -
[インポート]
データベース上のテーブルやほかのダイアグラムをインポート -
[エキスポート]
画像、HTML、Excelでダイアグラムを出力。また、列の型を定義した「辞書」や物理名と論理名を対応付けた「翻訳辞書」も出力可能 -
[ページ設定]
印刷時のページ設定を行う -
[変更履歴]
ダイアグラムの変更履歴をコメントを入れて管理できる -
[テストデータ作成]
テストデータを作成。執筆時点(2009年12月)では、開発中の機能であり、利用できない -
[カテゴリ管理]
テーブルをグループ化したカテゴリを管理 -
[オプション]
データベースの指定やテーブルスペースの設定を行う
各メニューは選択すれば、おおよそ使い方は分かると思いますので、詳細は省略します。エキスポートについては、文字化けという問題点や、テンプレートのカスタマイズ機能があるなど説明が必要ど思う部分があるので、紹介します。
ERMasterのエキスポート機能、2つの注意点
画像(PNG形式)でダイアグラムを出力際にデフォルトのフォント設定では、ノートに日本語を入れると、文字化けします。フォントを「Tahoma」から、「MS Pゴシック」などに変更してください(図15)。
図15 文字化け回避のためのフォントの変更 |
またExcelで出力する際には、出力するExcelのテンプレートをカスタマイズできます。テンプレートの設定は、Eclipseのメニューの[ウィンドウ]→[設定]より設定ダイアログを開いて、[ERMaster]→[DB定義書テンプレート]から行います(図16)。
図16 Excelテンプレートの変更 |
上部の[テンプレートのダウンロード(日本語)]をクリックすると、テンプレートのひな型がダウンロードできます。ダウンロードしたテンプレートをカスタマイズして同画面上の[新規]ボタンをクリックすれば、プロジェクトでカスタマイズしたテンプレートを登録できます。
ダイアログ上のエキスポートメニューでExcelを選択すると、テンプレートを選択する画面が表示されるので、ここで登録したテンプレートを選択すれば、カスタマイズしたテンプレートに基付き、Excelでテーブル定義書を出力できます。
痒いところに手が届くERMaster
本稿ではERMasterを紹介しましたが、いかがでしたでしょうか。ERMasterの現在開発中の機能として、テストデータ作成支援機能があり、この機能が実装されれば、テストデータを簡単に作成できるようになりそうです。
案件によっては痒いところに手が届く機能がオープンソースのプロダクトとして提供されているのは、非常に魅力的に感じます。ぜひ機会があれば利用してみてください。
----------------------------------------------------------------------------------
----------------------------------------------------------------------------------
上一篇: PHP 根据key 给二维数组分组详解