開発効率向上 #1 ~DB設計ツール~

2011.08.12

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

どうもCMの良心 江刺家です。

少しはエンジニアらしいネタを書いてみようかな、と。いうことで今回は「便利なツールのご紹介」です。

最近のシステム開発においてデータベースの設計は避けては通れない作業かとおもいますが、皆さんはどのようなツールで設計していますでしょうか?Oracle,MySQL,DB2と専用のクライアントは提供されていますが「DBの管理コンソール」としては純正のものを使ったほうが良いと思うのですが、そのDB上で実行されるSQLのエディターとしては、いまいちな印象があります。

Visioやエクセルで設計されてる方も多いと思いますが、今回は「無償」で「便利」で「助かる」ツールとして
「CSE(Common SQL Environment)」と「A5:SQL Mk-2」を紹介します。

CSE(Common SQL Environment):つみきウェブ様

http://www.hi-ho.ne.jp/tsumiki/
開発自体は2003で止まってしまっているのかな・・・・

結構使われている人が多いのはないかと思います。
SQLエディター/SQL開発クライアントとして非常に便利なツールです。
一番の特徴はOracle、PostgreSQL、MySQLではネイティブに接続できるということ。
ODBC経由での接続も可能です。

 

 

CSEの便利機能

  • 自分が開発者時代に便利だったのは「SQL崩し」が非常に賢くコマンド一発でできるのは非常に便利でした。
  • SQLを記述中もキーワードがカラー表示されるので可読性があがり記述ミスが少なくすみます。
  • SQL実行結果からすぐにExplainの参照が可能です。(Explain句がなくても、画面切り替えですぐに参照できる)
  • SQL実行結果のCSV出力。
  • テーブルからリバースエンジニアされテーブル定義書やビュー定義書がエクセルで出力せることができます。おかげで見積もり上から「テーブル定義書+DDL」という項目が消えてなくなりました。
  • 選択状態でのSQL実行。長文のSQLやUNIONされたSQLの場合、刻んで実行し確認をしたい場面があると思います。そういう場面では非常に強力な機能です。
  • クライアント上からのデータエキスポート/インサート。

A5:SQL Mk-2:matsubara様

http://www.wind.sannet.ne.jp/m_matsu/developer/a5m2/

こちらは今も現役でお世話になっております。CSEよりも機能満載なERエディター/SQLエディター/SQL開発クライアント。
もうDB設計統合開発ツールと呼べるものになっております。
MySQL以外のDBはODBC経由での接続となります。

 

A5:SQL Mk-2の便利機能
CSEで便利と紹介した機能はすべて実装されています。
さらに!

  • ER図が書ける!ちゃんと論理表示:物理表示を分けて記述できますし、表示モードでも論理モード or 物理モードさらに「カラムの型」まで表示してくれるので、一目瞭然なER図がサクサクかけます!
  • 対象DBと接続されていれば、ER図から直接DDLの流し込みも可能!
  • テーブルの結合条件も細かく設定できるので、依存関係など緻密な設計にも対応できます。
  • SQLエディターでは「入力補助」が行われるのです!
  • クライアントからDBへ接続された状態であれば、SQL記述中に入力補完機能が有効になりCtrl+spaceで目的のテーブルからカラムを参照し選択するだけというサクサク実装が可能になります。
  • ER図・定義書を行き来しながら記述するようなストレスはなくなり、記述ミスによるSQLエラーともお別れです。
  • ACCESSのようなクエリデザイナー機能もついており、SQLに詳しくない人でも動くものは作れます。

ほかにも色々語りたいのですが、使っていただければ良さは分かっていただけると信じています。

わがままな呟き
個人的にはCSEにもA5:SQLにも不満はなく、日々業務を助けていただいています。
ただ、昔から探しているのですが「SQL実行結果(Explain)のビジュアライザ」ツールでよいものがないかなぁ。。。と探してます。
IBM DB2をお使いの方でしたらご存知かと思いますがDB2ClientのSQLビジュアライザは結合順序・条件をテーブル単位で箱として表現してくれ
FULL SCANのかかっている箇所は赤で表示してくれるなど、SQLチューニングの際非常に役立ちます。
是非そういったツールがあるよーという情報がありましたらご紹介いただけると非常に喜びます。