skillup

技術ブログ

Database ドキュメント作成

ER図作成ツールについて(Mac版)

投稿日:

ER図作成ツールについてMacで色々と調べましたので、メモを。

フリー限定で。

ちなみにwindowsを使っていればA5:SQLが一番使えるかと思います。

以前も下記リンクで説明させていただきました。

30分で完成!テーブル定義書&ER図 自動作成

MacでもEasyWineというツールを使っていれば使える様ですが、いれたところうまく動かずフリーズしてしまいました・・・

ということでMacでのER図生成ツールを調査してみます。

今回の用途ですが、下記の様な要件です。

  • あるシステムで稼働している業務システムで、外部キーなどが全くないテーブル同士(テーブル数70〜80)
  • 主にリレーションに関わるカラムに関して、業務で使用されるテーブルのリレーションがざっくりわかる様にしてほしい。(全カラムの詳細な情報とかはいらない)
  • なるべく短時間でサクッと作りたい。

graphviz

MacではSQLエディタとしてSequelProを使っています。SequelPro ER図で検索したところ、この方法が出てきました。

SequelProでER図を出力する方法

DOT言語というグラフを記述するスクリプト言語がある様なのですが、これを使うことができる様にするのが、 graphviz というライブラリの様です。拡張子は.dotになります。

噂のGraphvizを使ってみる

SequelProからはdotファイルが簡単に作れるのですが、 graphviz を使って簡単に画像ファイル化できます。

欠点としては外部キーなどがもともと設定されていないとダメです。

パーフェクトなDB設計がされていて、それをそのまま読み込めば全て意図通りの設計図が出てくるというなんてケースはあまりありません。

いじるためにはdot言語に多少習熟している必要があるでしょう。

MySQLWorkBench

Oracleの有名なツールです。元来は有償のツールですが、無償でもそこそこは使えます。

DBに関する機能はほとんど備わっているかと思いますが、大量にメモリーを消費することと、機能が多すぎて使いこなすのがやや大変かもしれません。

ある程度時間がある場合にはこれが良いでしょう。

wwwsqldesigner

普通にGitなどに上がっているPHP&JavaScriptのソースです。

https://github.com/ondras/wwwsqldesigner

pullしてきて、DB情報などを書き込んであげれば画面上にER図が作成されます。

カラムの編集や追加なども比較的簡単で画面からでも編集できますし、吐き出されるxmlなどをいじっても大丈夫ですし、ブラウザに保存などもできますし、SQLの作成などもできます。

かなりシンプルなPHPで書かれているので内部をみていただければわかると思いますが、

backend/php-mysql/index.php の下記部分を修正していただければOKです。

画面からラベルやテキストなどを自由に追加できない不便さはありましたが、簡単に使えることもあり、今回はこれを採用しました。

ER図ツールwwwsqldesignerを試してみる

-Database, ドキュメント作成
-,

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

no image

リレーションを含んだテーブルでの副問い合わせ

本日はSQLネタです。 下記のようなテーブル構成があったときとします。 注文ヘッダと注文詳細は(1:N)とします。 ここで、product_id=5を含んだ注文ヘッダーレコードを取り出したいとします。 …

no image

サブクエリ 分析関数の代替案として

今回は分析関数系のネタです。 以前にも分析関数を少し学習しましたがMySQLにはないので、サブクエリを使い書くことになります。 下記のような入出金講座があるとします。 Accounts prc_dat …

no image

データベース設計のアンチパターン 複数表結合,大作SQL,Blob型の乱用

データベースのアンチパターンに関して。 以前下記ブログでも書いたんですが設計のスキルに関してもう少し身に着ける必要があるとおもい、チェックします。 論理設計のグレーノウハウ サロゲートキー 論理設計の …

no image

EXISTSについて

今回はEXISTSについてです。 実務では伝票と明細との検索関連の処理で結構出てきます。 なお、達人に学ぶ~では論理学について少しふれており、この領域を本気で理解する場合は論理学を勉強する必要がありま …

no image

SQL基礎 ウィンドウ関数

SQLの基礎(主にSELECT)を whereはレコードに対しての集計、havingはレコードの集合に対しての集計 ビューは一時的なselect文なのでサブクエリとほぼ等価 条件分岐で出力項目を変えた …

アーカイブ