TMについてひとりごち その2

俺っちがTM(当時のT字形ER手法)に出会ったのは1999年なので17年近く前。
SRCのセミナーを聴いてもさっぱりわからんかったね。
そもそもRDBってのを触ったことないし、業務システムを当時はまだ作ったことも触ったこともなかった。

実は当時からTMDを作図するためのアプリケーションが2つあった。マサミさん非公認のやったと思うけど。
自分でアプリケーションを設計する上で一番優先したのは、その2つの先行者に似せないこと。
要するにパクったって言われるのも、パクったって思われるのも嫌やったって話。パクられるのは別に良い、真似たなるほどよくできてるってことやから。

さらに言えば、俺っちは当時からUI/UXに相当なこだわりがあったので、その点は絶対に負けないようには考えてた。
とはいえ、.NETはまだない、CPUなんてPentiumⅢが出始めた頃でWindows95上で動かさなアカン・・・書いててわらけるな。
VC++6.0での開発やった。もちろん、先行の2つの製品も同じ環境やったわけやけど。

ぶっちゃけTM自体がマイナーやったはずなので牧歌的な時代やったのかも知らんけどね。
ま、本音を言えばそれよりつらかったのはTMのシンタックスに準拠するって制限がある中で、TM自体がセマンティック上の理由からシンタックスを少しづつ変化させてってことにある。
それは今でも同じなのかもしんないけどねw

マサミさんの中ではその変化は一貫性があったのかも知らんけど、TMのシンタックスを守るだけでもシステム開発におけるデータモデリングのメリットが十分に発揮されてたので、従来のTMファンの人たちの間では葛藤あったんじゃないのかなあ。
マサミさん的に、「L-真とってF-真で験正するやり方」ってのは俺っちの言葉言うと「Tの字のルールを使って、その結果が実際の業務に合致してるかチェックすることでモデルの正しさを担保する」ってことになる。(ほんとかどうかは知らん)
余談
 ネット上にTMについて書かれてる資料が本家以外のがあまりにも少ないのは、マサミさん自身が反主流志向が強いってだけじゃ無くて、TMについて俺はこう思う、俺はこう理解してるって言いにくい難解さがあるからなんじゃね?こんなこと書いたらマサミさんにこのMMがーとかアホがって思われんっちゃうかってドキドキしちゃうw

もとい、シンタックスを守るだけでメリットが十分に発揮されるってのはなんでかと言うと、「L-真のみ保障したTMD」も「F-真をきんと験正したTMD」も「物理実装しちゃえば同じ形」になるからなのな。
表記がMOやろうとER(エンティティロール)やろうと、(R)がRefereceKeyやろうとRe-usedやろうと物理実装後には何の関係もない。だから、そこに重心を置いてるTM利用者にとってはぶっちゃけTMを変更されることの方がつらい。

ここまでをまとめると

  • TMのシンタックスとして正しいモデルとそのモデルの意味が正しいかどうかは一致しない。
  • TMのシンタックスとして正しいモデルとセマンティックス上正しいモデルも物理実装形は同じ。
  • 物理実装形を重視するならTMのシンタックスを守るだけで十分。(効き目がでる)

具体的な例でいえば
2つのテーブル(A、B)に 1 : n の関係があるとする。
この時、モデル上 1: n のカーディナリティがあったとして、実際にA/B テーブルのデータがそうなるかどうかはプログラム依存になる。言い換えればカーディナリティが n : n だったとしても、プログラム上のアルゴリズムで 1 : n に制限することができる。ただし、モデルとしては n : n にとしか読み取れない。

これが是か非かって話なのな。
ビジネスプロセスにおけるデータ構造は大まかにTMのシンタックスを守るだけで担保できる、でもそこまでやとモデルでは表現できない制約をプログラムでのみつけることになる。
マサミさんがどう思ってるかはともかくとして、これを是だと考えるのもありやと思う。すべてのTM利用者が原理主義になる必要はないと思うし、メリット/デメリットをコストも踏まえて選択すれば良い。

平易に自分の言葉で書こうとしてもやっぱ難しくなっちゃうんだよなあ。俺っち文学青年やないんやけどなあ。

つづくかも。