18
MySQL Workbench モデリングツールとして使ってみた MySQL勉強会 in 大阪(第9回) なかむら

MySQL Workbench をモデリングツールとして使ってみた

Embed Size (px)

Citation preview

MySQL Workbench を

モデリングツールとして使ってみた

MySQL勉強会 in 大阪(第9回)

なかむら

自己紹介

2

• 中村範夫(なかむらのりお)

• 15年以上システム開発に従事

• 共通チームで方式設計や開発DBAの経験が長い

• 現職:データベースコンサルタント

• 現在、M/FからオープンソースDBへの移行案件

アジェンダ

3

• モデリングツール使ってますか?

• 開発プロジェクトでモデリングツールに求められる機能

• MySQL Workbench はどこまで対応できるか

• まとめ

4

みなさんモデリングツール使ってますか?

5

• ERWin

• ER/Studio

• Object Browser ER

• astah (JUDE)

• A5:SQL Mk-2

• Microsoft Visio

主なモデリングツール

6

• モデル描画(論理モデリング)

• ボトムアップ取り込み

• データ項目定義管理

• モデル管理(論理/物理)

• ドキュメント出力

• 物理DBのフォワード/リバースエンジニアリング

• (テストデータの生成)

モデリングツールに求められる主な機能

参考:「独習 データベース設計」 真野 正 著

7

モデル描画(論理モデリング)

通常の論理モデリングは可能

日本語も扱えて、リレーションの依存・非依存も自動で判断!

8

モデル描画(論理モデリング)

注意点:フォントの設定を日本語に

日本語が文字化け

9

ボトムアップ取り込み

MySQL Workbenchに該当機能はなし

<参考> ER/Studio ER/Worksheet

• 規模の大きいシステムでは扱うエンティティは数百以上、データ項目は数千以上

• 論理データモデルをゼロから作成することは、とても非効率

• 既存の資産(Excel/CSVその他)からモデリングのメタデータとして取り込む機能を有している商用モデリングツールは多い

10

データ項目定義管理

<参考> Object Browser ER ドメイン管理、オブジェクト名一括置換

• モデリングの基本はネーミング

• プロジェクトで統一されたエンティティ名、項目名は品質、生産性に大きく影響する

• ドメイン管理、項目名をエンティティ横断で一括置換、型変換、桁数変換等

MySQL Workbenchに該当機能はなし

11

• モデル管理(論理/物理)

• 論理モデル/物理モデル 二面管理機能はなし

• プロジェクトフェーズ毎に、論理モデル・物理モデルを管理していく(?)

• 論理モデルから物理モデルへの変換が困難で、現状二重管理するしかない。

<論理モデル> <物理モデル>

12

• モデル管理(論理/物理)

<参考>A5:SQL Mk-2 MySQL Workbench の現状:おしい…

コメントとして論理名を

保持することは可能

コメントをダイアグラム上

に表示することさえできれば..

13

ドキュメント出力

PDF出力した例

• PDF出力は秀逸 フォンの埋め込みで検索可能(File – Export – Export single page PDF)

• SVG・PNG形式にも出力可能

• よくあるテーブル定義書的なExcel形式の出力はない

14

ちなみにサンプルの sakilaモデルをPDF出力するとこんな綺麗なPDFができます

ドキュメント出力

15

物理DBのフォワード/リバースエンジニアリング

• 必要な基本機能は備えている

• フォワードは、外部キーの作成/非作成、インデックスを別DDLにする等、きめ細かな設定が可能

• リバースも外部キーを元にリレーションまで完璧にモデルに再現することが可能

<フォワードエンジニアリング> <リバースエンジニアリング>

外部キー、インデックスのDDLに関する細かい設定が可能 日本語のコメントも問題なし

リレーション、日本語コメントまで含めて完璧にリバース

16

テストデータの生成

<参考>

• あると、プロトタイプ作成時や、テストフェーズで重宝する

MySQL Workbenchに該当機能はなし

17

機 能 評 価 コメント

モデル描画(論理モデリング) ○操作性は軽くストレスを感じない。リレーションの自動判断(依存・非依存)やレイアウトの自由度も高い。レイヤーを駆使すれば、サブモデルの表現も容易にできる。

ボトムアップ取り込み ×既存の物理DBが存在する環境ではテーブル情報をMySQLに移行しリバースで対応できるが、論理モデルを一から作るとなると規模にもよるが、相当厳しい。

データ項目定義管理 ×代替手段としては、MySQL上でのメタデータをリスト化することで一覧の確認はできるかも。ただし、規模が大きくなれば厳しい。

モデル管理(論理/物理) △論理・物理の二面管理は不可。二重管理を許容するしか現状手がない。コメント情報をダイアグラム上に表現できる機能さえ追加しれもらえれば、非常にうれしい。

ドキュメント出力 ○PDF出力は、モデルをそのままPDFにすることができ秀逸。Excel

ベースにできればなお良くなると思う。

物理DBのフォワード/リバースエンジニアリング ◎

MySQL専用というだけあって、フォワード/リバース共に完璧な再現性を見せる。すばらしい。

(テストデータの生成) ×現状は他のツールで代替か、SQLでがんばる。

まとめ(機能評価)

18

• 規模の小さいシステムなら使える局面はある

• MySQL上に既にテーブルが存在し、ER図欲しいな的な場面では非常に重宝(Railsとか)

• 規模の大きいシステムで一からモデリングしていく場面ではまだまだしんどい

• 日本語論理名の扱いと項目管理機能を強化してくれればすごく使えそうな予感

まとめ(所感)