Why do you use CASE tools?

各システムの資料を読んでいて思ったことがある.それは,なぜわざわざこんな設計ツールを使っているのだろう?ということである.
RDBの設計でERwinなどの設計ツールを使って,ERモデルを書いている事が多い.しかし,私が見ている設計書には,ほとんどリレーションもなく,かつ,属性が多いため,属性をグループ化するためのコメントの文字列が入っているモデルがよく見うけられる.COBOL的な感覚なのだろう.コメントがあると便利だ,ということはまぁ,わからなくもない.
リレーションが必要かどうかというのは議論される点ではある.MySQLのように必要性をマニュアルで否定していたエンジンもあるくらいだ.私は整合性チェックの最終防衛ラインとして使っているが,バグをほとんどださないシステムであれば,そういう整合性のチェックは速度を低下させる良くないものなのだろう.
ところで,グループコメントの列のようなリレーショナルモデルに違反した設計をしたモデルをERwinのような設計ツールに入力することは,苦痛以外の何ものでもない.なぜなら,ERwinはそういうようには作られていないからだ.また,ERwinのよさは,そのモデルをそのままDBのDDL(データ定義文)に置き換えることができ,物理的なパラメータも格納することによって,テーブルの情報を一括して扱うことができる.という点である.しかし,このような列を設定してしまうと,このままDDLとしてcreate table文を作ることができない.物理モデルに変換するときに列を消去しているのだろうか?
私が言いたいのは,リレーションがないのに,図にする必要はもはやほとんどない,ということだ.巨大な列を持った,箱が整然と並んでいるだけのERモデルにいったい何の意味があるのだろう?
図にする必要はなく,表でよい.Excelなどの表形式で表の定義を記述し,それをDDL文に変換できるようなツールを作ればよいだけである.それほど難しい話ではないはずだ.
DWHの場合は,履歴を積み重ねていくだけなので,正規化をする必要はほとんどない.よって,ERモデルを作る必要もない.そういうわけで,ERwinなどのツールでERモデルを書く気もない.だいたい,ERwinなんて,入力がスクリプトなどで,自動で行えなかったから(今は知らない),あれに対して,ひたすらたくさんの列を入力するという気にならない.
馬鹿正直にたくさんの列を入力し,出力した時間がAM2:00など,可愛そうな状況の資料を見ると,そう思ってしまう.