誠ブログは2015年4月6日に「オルタナティブ・ブログ」になりました。
各ブロガーの新規エントリーは「オルタナティブ・ブログ」でご覧ください。

「A5:SQL Mk-2」という変態(←褒め言葉)なソフトがあった

「A5:SQL Mk-2」という変態(←褒め言葉)なソフトがあった

島田 徹

株式会社プラムザ 代表取締役社長。システムコンサルタント。1998年に28歳で起業し、現在も現役のシステムエンジニア、コンサルトとして、ものづくりの第一線で活躍しつつ、開発現場のチームとそのリーダーのあり方を研究し続けている。

当ブログ「そろそろ脳内ビジネスの話をしようか」は、2015年4月6日から新しいURL「​http://blogs.itmedia.co.jp/noubiz/」 に移動しました。引き続きご愛読ください。



この誠ブログで書くようになってから約3年。

いろいろなことを書いてきましたが、技術的な話はほとんど無し。たまに消費税改訂の際のデータの持ち方はどうすべきか、みたいな話は書きましたが、基本的には組織論とか生き方論のような話ばかり。

私のブログを読んで入社してくるここ数年の社員は、まさか私が本当にシステムエンジニアをやってるとは思わなかったと口を揃えて言ってます。

やってます。

まだ時代は私を必要としているようです。毎回お仕事をいただくたびに、もう今回限りで現場仕事は辞めたいな、とは思ってますが。

ということで、昔、「プログラマはとりあえず業務システムをやっておけ」という記事を書きましたが、業務システムのSEは、リアルに50くらいまで現場で活躍できます。

ソースレベルの技術はよく分かってないことも多いですが、業務解析や表画面の設計、DB設計の部分は、まだまだ若いモンには負けられんて。だいたい、DB設計はソースの書きやすさに引きずられちゃいかんじゃろうし。


と、老害ぶりを惜しみなく発揮している私ではありますが、先日、ちょっと衝撃を受けた事件がありました。

考えられないようなすごいツールに出会ったのです。というか、こんなツールにどこまで命をかけてるんだよというエンジニアの存在を知ったのです。


いや、実はちょっと前からそのツールの存在は、弊社の若いシステムエンジニアから聞いて知っていたのです。

「すごいスグレモノのツールがあるんですよ」と。

あ、申し遅れました。今回非常にマニアックな話ですので、分からない人にはまったく分からないと思います。すみません。ブログは『誰に向けて何を書くか』ではなく、『書きたいことを誰か分かってくれる人に向けて書く』、というポリシーでやっておりますので。。


それは、私の本業の一部でもあるのですが、データベースのER図をGUIでひょいひょいっと作るツールらしいです。

(ああ。。ER図作成ツールね。。これまでもAccessのリレーションシップ描画ツールとか、先に実際にテーブルを作って行ってDBの機能でリバース出力するとか、visioでやろうかと思ったこともあったけど、もういいよ。ボクはExcel方眼と共に生きて、このまま老いさらばえて行くよ。ごめんよ、開発チームのプログラマのみんな...。でも...なんだか...とっても眠いんだ...)

と半眼になっていたところでした。

で、まあ、彼には「へぇー、いいね」と適当に言っていたのですが、今回、彼が私の案件の詳細設計以降をやることになり、そのツールのパワーをまざまざと見せつけられることになりました。

これまでのツールのダメなところは、テーブルが50個も100個もある大規模システムになると、リレーションを表す接続線がテーブル(エンティティ)の上をまたいだりして見にくくなるし、ものすごく長くなってどことどこがつながっているのか、A3用紙4枚ぐらいに印刷して、セロテープで貼って蛍光ペンでなぞっていかないと分からなくなりました。

また、ER図を一生懸命書いても、結局細かいテーブルやカラムを定義したDB定義書は別に必要となります。これが二度手間で、大抵設計が中盤になるとER図は更新されずに放置されることが多かったです。

あと、ER図は所詮ER図。そこから実データの参照をすることはできませんし、サーバのデータベースの定義を変更したりすることはできません。エンティティの関連性を表すのがER図。それ以上の役割を持たせられる(持たせるべき)とはまったく思っていませんでした。

だから、もうER図はExcelで書けばいいやと。

設計の序盤でマインドマップ的に大枠を書いて、「見えた」と思ったらそれはいったん放置して、テーブル設計に集中して、混乱してきたらまたER図にまとめてみて立ち位置確認、、、みたいな感じです。

それが、このツール「A5:SQL Mk-2」を実際に使用しているところを見てみたところ、驚きました。

まず、ER図を精緻に作れば、それがそのままテーブル定義書に出力されます。それだけでも「二度手間」が克服され驚きなのですが、なんとデータベースの定義を変更するDDL(CREATETABLEなど)の生成までやってしまいます。

これであれば、[1]これまでER図の作成(更新大変だなー。もう構造分かったのに延々と更新しないといけないのかなー?)、[2]テーブル設計(あれ?このデータってどんだけJOINすれば取ってこれるんだっけ?テーブルとの関連や命名やサイズや型のポリシーなんだっけ?)、[3]テーブル生成や変更(プログラマのみなさん、あとはよろしく)という3つの作業が1人で一瞬で完結します。

これはすごいことです。超業務効率がアップします。

ただ、やはりテーブルの数が多いと視認性が悪くなるのがER図。

それはまあ仕方ないよね、、、と思いきや、このソフトはそれを「ページ」や「サブタイプ」の概念を入れて解決します。つまりたとえば請求関連のテーブルは「請求」というページの上に配置しておけば、それだけ表示させることができるというもの。

複数のページにまたがったテーブルの配置も可能なようですので、これによってER図を立体的にレイアウトすることができます。A3用紙4枚とかに印刷して必死に追っていく必要もなくなるわけです。

また、これはよくある機能ではありますが、SQLクライアントの機能も持っているので、その手のソフトを使用しているのであればそれも統合できます。

これは感動しました。設計業務のツールにここまで命をかけるものかと。変態です。エンジニアは変態じゃないといけませんね。


とりあえず、先般の若いシステムエンジニアが使っているファイルを借りて、いろいろ研究してみたいと思います。この歳になると一から勉強するのは本当にしんどいですから。




フリーウェアですが、これを真面目に使いさえすれば、設計の業務効率は大幅にアップするだろうという希望をいただいた感謝を込めて、いくばくか送金しておきました。双子さん生まれて大変そうですし。

ああ、フリーウェアに対して自発的に寄付したのは、秀丸以来かも知れません。

それくらいの優れたソフトウェア。私の好きなニッチ分野。



追記

その後、いろいろ調べてみたら、
とか
とか、いろいろ似たようなソフトウェアは出ているようですね。

私は、SQLクライアントツールとしては、NaviCatなどは使っていましたが、設計でこういったツールを使おうという発想がなかったです。やはり若いエンジニアとは付き合っていかないといけないですね。

経験を積んで、ある程度生産性が安定すると発想が硬直化するんです。。