製作著作 © 2011 なかじー & TMD-Maker Project
概要
このドキュメントでは、TMD-Makerの説明とTMD-Makerを使ったTMD(T字形ER図)の作成方法を解説します。
※内容はTMD-Makerの進化と、私のTM(T字形ER手法)の理解の深化に伴い順次更新します。
表の一覧
このパートでは、TMD-Makerの紹介と、TMD-MakerでTMD(T字形ER図)の作成するための事前準備について説明します。
尚、TMD-Makerをバージョンアップする際はインストールの章を参照してください。
いずれは簡単にバージョンアップできるようにしたいと考えてはいますので。。。
私が初めてTM(当時はまだT字形ER手法と呼ばれていました)を知った時から今日まで、 TMを勉強したり実践するにあたり、TMD(T字形ER図)を既存のドローツールで作成することは大変面倒な作業でした。 あまりにも面倒なのでTMの勉強をやめてしまおうかと思うほどでした。 私と同じ理由でTMを勉強したり実践することをあきらめてしまった人もいるのではないでしょうか?
商用のツールを買うほどのお金や権限もない。でもTMがやりたい。 私は「TMDを作成できるフリーのツールはないかなぁ」と常々考えていました。
私と同じようなことを考えていた人は手を上げてください。
お待たせいたしました。それがTMD-Makerです。 「TMDを作るもの」という意味です。 無料で誰もが使えるツールです。 結局自分で作ってしまいました。
TMD-Makerの特徴と現時点で、TMD-Makerで出来ることと、できないことをまとめました。
TMD-Makerは日々バージョンアップしていますので、できないことについては「あくまでも」現時点でのことでありますが、残念ながら必ずしもTMD-Makerで将来実現を保証するものではありません。
TMD-Makerへ追加して欲しい機能があれば、新規チケットでリクエストをください。
特徴
OS非依存!Javaが動作する環境で利用できます。Eclipseへインストールして動作するPlugin版と、スタンドアロンで動作するRCP版の2種類を用意しています。
オープンソース!特定のベンダーに依存しません。ソースが公開されていますので自分で弄れます。
無料!何回使っても、何人で使ってもお金は一切掛かりません。でもカンパしてくれたらうれしいかも・・・
無保証!バグがあっても責任はとれません。が、バグ報告してくれたら修正されるかも。
出来ること
TMの5つの文法によるTMD作成
TM'(みなし概念)のモデル(みなしエンティティ、みなしスーパーセット)の作成
ラピュタの作成
ダイアグラムをイメージファイルで出力
アトリビュートリストをHTML形式で出力
関係の検証表をHTML形式で出力
キー定義書をHTML形式で出力
物理実装情報の登録とデータベースを指定したテーブルとインデックス作成DDLの出力
さまざまな方法によるダイアグラムのレイアウト調整
(まだ?)出来ないこと
Eclipseのアップデート機能を利用したTMD-Makerのバージョンアップ
ダイアグラムからアプリケーションの雛形を作成
佐藤正美氏の頭脳のEclipseプラグイン化
TMD-Maker for RCPは、ほぼ全てのプラットフォームで動作可能なクライアントサイドの(Java)アプリケーションです。普段Eclipseを使用していない人や、命の危険に関わるので早急にTMを始めたい人にお勧めします。
動作環境
対応OS
対応プラットフォーム一覧で確認してください。
もしもあなたの環境に対応したファイルがなければ、新規チケットでリクエストをください。
Java 6 Runtime
新規インストール
Java 6 Runtimeのインストール
Javaのサイトから各自の環境に対応するファイルをダウンロードする。
ダウンロードしたファイルをダブルクリックして、あとは指示に従って進めればインストールできるでしょう。
既にインストール済みの人は、さっさと先に進みましょう。
TMD-Maker for RCPのインストール
tmdmaker_rcpのダウンロードサイトで各自の環境に合ったファイルを選んでダウンロードしたら、ダウンロードしたファイルを解凍して任意の場所に置く。
TMD-Maker for RCPの起動
解凍したフォルダを開いて、tmdmaker.exeをダブルクリックする。
画面が出たらおめでとう!インストールは完了です。
バージョンアップ
TMD-Maker for RCPの再インストール
TMD-Maker for RCPのインストール手順で最新のファイルを任意の場所に置く。
TMD-Maker for RCPの起動
解凍したフォルダ内の、tmdmaker.exeをダブルクリックする。
TMDファイルの移動
面倒ですが旧バージョンのプロジェクトフォルダ内のTMDファイルをコピー&ペーストで新バージョンのプロジェクトへ移動してください。移動後にF5キーを押すとプロジェクトエクスプローラに表示されます。
TMD-Maker Pluginは、Eclipse Pluginです。普段Eclipseを使用している人や、説明不足のマニュアル作成者に文句を言わずに自分で道を切り開ける人にお勧めします。少々脅してしまいましたが、あまり身構えずに一度深呼吸してから始めましょう。
動作環境
対応OS
恐らくJava6が動作するOSなら動作します
Java 6 Runtime または Java 6 SDK
Eclipse 3.4 以上(3.6推奨)
現在、Eclipse 3.6.1で開発しています。またPluginの動作確認では、バージョン3.4.2を使用していますので、多分バージョン3.5でも動作します。もしかしたらまだバージョン3.3でも動作するかも知れません。
GEF(Eclipse Graphical Editing Framework)
Eclipseのバージョンに合わせる
新規インストール
Java 6 Runtime or SDKのインストール
Runtimeをインストールする場合は、こちらから各自の環境に対応するファイルをダウンロードする。
SDKをインストールする場合は、こちら(の一番左)から各自の環境に対応するファイルをダウンロードする。
ダウンロードしたファイルをダブルクリックして、あとは指示に従って進めればインストールできるでしょう。
既にインストール済みの人は、さっさと先に進みましょう。
Eclipseのインストール
Eclipseのサイトからダウンロードする。どのエディションを選んでも良いです。
ダウンロードしたファイルを解凍して任意の場所に置く。
既にインストール済みの人は、さっさと先に進みましょう。
GEFのインストール
更新サイトからインストールするのが多分簡単です。
Help->Install New Software から探してインストールしてください。
既にインストール済みの人は、さっさと先に進みましょう。
TMD-Maker Pluginのインストール
tmdmaker_pluginのダウンロードサイトからtmdmaker_X.Y.Z.zip(X.Y.Zは任意のバージョン)をダウンロードする。
ダウンロードしたファイルを解凍し、同梱されているtmdmaker_X.Y.Z.jar、tmdmaker.ddlgenerator_X.Y.Z.jar、 tmdmaker.htmlgenerator_X.Y.Z.jarの3つのjarファイルをeclipseのplugins(またはdropins)フォルダに置く。
![]() | TMD-Maker Pluginのお勧めインストール方法 |
---|---|
tmdmaker_X.Y.Z.zipを解凍すると、tmdmaker_X.Y.Z → eclipse → plugins → tmdmaker~_X.Y.Z.jar というフォルダ構成になっています。 このフォルダ構成のままdropinsフォルダに置けば、他のプラグインと混在することがないので、バージョンアップの際等にとても便利です。 |
Eclipseの起動
Eclipseをインストールしたフォルダ内の、eclipse.exeをダブルクリックする。
Eclipseが起動したらインストールされているプラグインを見る。tmdmakerがリストにあれば、おめでとう!インストールは完了です。
バージョンアップ
旧バージョンのプラグインを削除
eclipseのplugins(またはdropins)フォルダに置いたTMD-Makerのjarファイルを削除します。
TMD-Maker Pluginの再インストール
TMD-Maker Pluginのインストール手順で最新のファイルを新しいプラグインを上記方法でeclipseのplugins(またはdropins)フォルダに置く。
Eclipseの再起動
Eclipseを-cleanオプションを付けて再起動する。
インストールが済んだらいよいよTMダイアグラムの作成です。でもまずその前にいくつか準備があります。
プロジェクト作成
プロジェクトとは簡単に言うとダイアグラムの保存先フォルダです。既にプロジェクトが作成済みの場合はダイアグラム作成へ進んでください。
プロジェクトエクスプローラを右クリックして、New->Projectを選択します。
ウィザードで、General->Projectを選択して、Nextボタンを押します。
プロジェクト名に、任意の名前を入力して他の設定はとりあえず無視。そしてFinishボタンを押します。
プロジェクトエクスプローラにプロジェクトが表示されます。
ちなみにworkspaceフォルダの下にプロジェクトフォルダが作成されています。
それではプロジェクトの下にダイアグラムを作成します。ダイアグラムは複数作成できます。
プロジェクトエクスプローラを右クリックして、New->Otherを選択します。
ウィザードで、TMD->TM Diagramを選択して、Nextボタンを押します。
ウィザードで、親フォルダに上で作成したプロジェクトを選択し、ファイル名を任意に付けて、Finishボタンを押します。
新しいダイアグラムが作成され、TMDエディタが開きます。プロジェクトエクスプローラで任意のファイルをダブルクリックすると選択したダイアグラムが開きます。
TMを理解している人は直感でどんどん進められるかもしれませんが、次パートで順序だててTMDを作っていきます。
このパートでは、TMD-Makerを使ってTM(T字形ER手法)によるデータベース設計方法をTMの手順に沿って説明します。
TMによるデータベース設計では、ER図を作成しつつデータを解析し、最終的にエンティティをテーブルに実装します。
よくテーブルを作成してからER図を作成するケースをみかけますが、ER図は単なる表記方法ではありません。
TMD(T字形ER図)が如何にパワフルかご覧頂きましょう。
※このパートは、まだ執筆中です。当面はwikiページも参考にしてください。
エンティティとは何か?データベース設計方法論数あれど、これに明確に答えている手法を知っていますか?「エンティティとは管理対象である。」とか説明している例もありますが、じゃあ何が管理対象なのでしょう?
TM(T字形ER手法)では、「エンティティとは個体指定子を付与されているもの」と定義しています。
個体指定子とは、○○番号とかXXコード、△△ID等、何かしらの番号体系が付与されたものです。
人が番号(個体指定子)を振ったものを個体(エンティティ)と認識します。これならエンティティの抽出に迷うこともありませんね。
人は管理したいものには番号を振る傾向があります。その習性を巧みに利用しているのです。
前置きが長すぎましたね。解析したい業務の画面や帳票は用意できていますか?それでは、TMD-Makerでエンティティを作成しましょう。
エンティティ作成方法
パレットの「エンティティ」をクリックします。
エディタ内でエンティティを配置したい任意の場所をクリックします。
すると、「エンティティ新規作成」ダイアログが開きます。
解析対象からコード、番号、ID等を見つけたら個体指定子として名称を入力します。
個体指定子の末尾から番号やコード体系を表す言葉と、レポート名を表す言葉を削除したものが自動的にエンティティ名になります。
![]() | エンティティ名の命名ルール |
---|---|
TMD-Makerでは、番号コード体系を表す言葉として"コード", "ID", "ID", "id", "id", "番号", "No"という単語を登録しています。 またレポート名を表す言葉として"伝票", "報告書", "書", "レポート"という単語を登録しています。 ※カスタマイズできた方が便利だと思う人はリクエストください。 |
自動的に名付けられたエンティティ名に不満があるときは「個体指定子からエンティティ名を自動生成」のチェックを外すと自由に名付けられます。
ちなみに個体指定子≠主キーです。
OKボタンをクリックするとエンティティが作成され、エディタ上に表示されます。
類別のリストについては次で説明します。
エンティティを作った後は、エンティティを2種類に分類します。
エンティティ名 + 日付を意味する項目がある場合はイベント、そのような項目がない場合はリソースに分類します。
ちなみにイベントの日付は取引日等のように、過去に起こった事実(過去日)を表す日付なので、将来や予定を表す日付等を持つエンティティはリソースに分類します。
TM(T字形ER手法)で勘違いされていそうなことなのですが、日付があれば何でもイベントに分類されるわけではないのでご注意を!
エンティティの分類方法
エディタの「エンティティ」をダブルクリックすると、エンティティ編集ダイアログが表示されます。
類別のリストをクリックすると、リソースとイベントが選択できます。
現在リソースなっていますが、試しにイベントに変更してOKボタンをクリックします。
するとエンティティの種類がイベントに変更されました。
エンティティの種類は、エンティティ作成時の「エンティティ新規作成」ダイアログでも変更できます。
新規作成時には、エンティティの種類がイベントの場合は「エンティティ名+日」、リソースの場合は「エンティティ名+名称」という名前でアトリビュートが作成されます。
また、エンティティの種類に「不明」を選択した場合は、ラピュタ(帰属不明なアトリビュートを一時的に置いておく入れ物)が作成できます。ラピュタは個体指定子の入力は不要です。
最後にエンティティの種類に合わせてエンティティを並べ替えます。
ポイントはイベント系エンティティです。エンティティの日付が発生する時系列に左から右へ並べます。リソース系エンティティは画面の上下に適当に並べておいてください。
イベントは並びが重要なエンティティです。その理由は次回以降で明らかになるはずです。
ちなみにエンティティの種類の変更は、この後説明する関係の文法でリレーションシップを持つと変更できなくなります。
エンティティを作って、エンティティを2種類に分類した後は、エンティティ間の関係を定義していきます。
以下、執筆中
エンティティ間の関係は4つのパターンがあります。
4つの関係文法
リソースとリソース間
対照表を作成します。対照表はリソース間の組合せを表す表(エンティティではないので注意)です。
リソースの組であるため、TMの関係文法では対照表はリソースと同じ扱いをします。
しかし、対照表の右側に日付(過去日)を付けた時に意味があれば、意味論上イベントとみなすことができます。
リソースとイベント間
リソースの個体指定子をイベントへ左側へコピーします。「リソースがイベントに関与する。」というそうです。見慣れたER図の依存リレーションシップと似ています。
イベントとイベント間
イベントの発生する時系列で早い方をfrom、遅い方をtoとした場合、先にマウスで選択した方がfromとなります。
fromとtoが1:1または1:Nの場合は、個体指定子をイベントへ左側へコピーします。
fromとtoがN:1の場合は、対応表を作成します。対応表はイベント間の対応を表す表(エンティティではありませn)。対応表は、他のエンティティや表と関係を持てません。
同一エンティティ間
再帰表を作成します。
ちなみに(R)は Referenceではなく、Re-usedと呼んでいます。
ダウンロードファイル名 | 対応OS | ウインドウマネージャー | プロセッサ | リリース | 動作確認 |
---|---|---|---|---|---|
未提供 | AIX | motif | ppc | - | - |
未提供 | HP-UX | motif | ia64_32bit | - | - |
未提供 | Linux | gtk | ppc | - | - |
未提供 | Linux | gtk | x86(32bit版) | - | - |
未提供 | Linux | gtk | x86_64bit | - | - |
未提供 | linux | motif | x86 | - | - |
未提供 | Mac OS X | carbon | ppc | - | - |
未提供 | Mac OS X | carbon | x86 | - | - |
未提供 | Mac OS X | cocoa | ppc | - | - |
未提供 | Mac OS X | cocoa | x86(32bit版) | - | - |
未提供 | Mac OS X | cocoa | x86_64bit | - | - |
未提供 | solaris | gtk | sparc | - | - |
未提供 | solaris | gtk | x86 | - | - |
tmdmaker_for_rcp.win32.win32.x86.zip | windows | win32 | x86(32bit版) | ○ | ○ |
tmdmaker_for_rcp.win32.win32.x86_64.zip | windows | win32 | x86_64bit | ○ | ○ |
未提供 | windows | wpf | x86 | - | - |
TMD-Maker は、DdlUtilsを利用しています。
データベース名 | 備考 |
---|---|
Axion | |
Cloudscape | |
DB2 | バージョン7 |
DB2v8 | バージョン8以降 |
Derby | |
Firebird | |
HsqlDb | |
Interbase | |
MaxDB | |
McKoi | |
MsSql | |
MySQL5 | バージョン5以降 |
MySQL | バージョン4 |
Oracle | バージョン8 |
Oracle9 | バージョン9 |
Oracle10 | バージョン10以降 |
PostgreSql | |
SapDB | |
Sybase | バージョン10.5以降 |
SybaseASE15 | バージョン15以降 |