森川です。
巷ではエイプリルフールネタがおさかんですが、普通にデータベースのモデリングツールの紹介です(エイプリルフールネタが思いつかない…)。
普段MySQLならDBDesigner4、PostgreSQLならClayを使用しているのですが、他に何かよいツールはないものかと調べてみました。
言わずと知れた?モデリングツールです。Eclipseのプラグインで、無償でも使用可能です。MySQL、PostgreSQLで使用可能です。
無償版ではER-図や、DB定義書を出力できません。対応するDBが少なかったりもします。
個人的には、PostgreSQLを使用する場合によく使います。外部キー制約などにも対応しているのでそれほど困りません。
リバースエンジニアリングに対応しているのも気に入っている理由の一つです。
ちなみに、リバースエンジニアリングをするにあたってPostgreSQLのJDBCドライバが必要ですが、ここからダウンロードできます。
こちらも有名なモデリングツールです(スクリーンショット)。わりと古くから使用されているので、情報もたくさんあるし、機能も豊富です。
Propelで利用できる形式のXMLに変換するツールなどもあるので、重宝します。
ただ、すでに開発が止まっているので、新しいバージョンは出てこないようです(オープンソースなのでフォークして新しいプロジェクトも立ち上がっているようです)。
こちらはMySQL本家から出されているモデリングツールです。
リバースエンジニアリングも可能であったり、軽くさわっただけですができはそれなりによいと思います。何よりMySQL本家から出されているというのが安心です。
現在バージョンはRC2なので、あと少しで正式版としてリリースされるでしょう。DBDesigner4からファイルをインポートできるようなので、ぜひ使ってみたいところです。
こちらは完全にWebベースのモデリングツールです。ZIPファイルをダウンロードして解凍したら、そのファイルをPHPサーバ上に配置、それだけで一応動きます。
つい最近バージョンアップしたらしく、以前とはずいぶんインターフェースが変わっています。
MySQLにしかSQLとしてエクスポートできないようなのですが、以前はできていたPostgreSQLやPropelでのエクスポートには対応して欲しいところです。
さくっと手軽にという意味では確かに便利なのですが、ブラウザの再読込を誤ってやってしまうとすべてのデータが失われるので、あまり使いたくないというのが正直なところです。
こちらは日本人の方が開発しているモデリングツールです。もちろんインターフェースは日本語なので使いやすいです。
ただ、PostgreSQLで使用してみたところ、serial型が使えなかったりで少し面倒なことも多いです。また、インポート時にリレーションの情報が失われてしまいました。ER図のツールとしては少々役不足な感が否めません。
個人的にはモデリングツールというよりもテーブル定義書の雛形を作成させるために使用しています。手順としては、ODBC経由でデータベースに接続して、データベースをインポート、テーブル定義書の作成、といった感じです。
PostgreSQLでODBC接続をするには、ここからダウンロードできます。
これはモデリングツールというよりもRDBMS操作ツールと紹介されることが多いですが、ER図を作成することもできます。
機能も豊富でスクリーンショットから確認することができます。
こちらはリレーションもきっちりとインポート・エクスポートできるので、かなり使えそうです。
まとめ
いろいろと調べてみましたが、PostgreSQLを使用するときはClayが一番こなれていると感じました。PostgreSQLに関してはDB定義からモデル定義まで一括して管理できるソフトがないのが困りものです。結局モデリングツールでER図を更新して、ALTER用のSQLも作って、さらにモデルの定義まで修正するとなるとどこかでずれが起きそうで避けたいところです。
MySQLに関しては今後はMySQL Workbenchの方がよいのではないかと思います。MySQL WorkbenchからもPropelの形式でエクスポートできるようになれば、完全に移行できそうです。