« 優れたツールが備える「BDT特性」 | トップページ | 「何かと便利」な設計方針? »

2006.12.17

モデリングのスタイル:意味論と統辞論

 DOA(データ中心アプローチ。DBシステム設計においてDB構造の検討を優先させる手法)の考え方では、それぞれのテーブル(エンティティタイプ)について、「リソース」か「イベント」かを区別するやり方が主流である。

 主流派の向こうを張ろうってわけでもないのだが、筆者はデータモデリング手法の前提としてそれらを区別しない。なぜかというと、それらの区別が各テーブルの「絶対的な特性」ではなく、「相対的な傾向」でしかないと考えるからだ。ある文脈ではイベントとみなされるテーブルが、別の文脈ではリソース的なものに見えるなんてことが実際にはある。

 たとえば、イベントの代表であるような「受注」や「売上」も、一定期間向けキックバックの計算過程においては、「顧客」同様にリソース的なものとして見える。また、リソースの代表であるような「品目」も、品目分類や商品企画を云々するモジュールにおいてはイベント的なものに見える。

 このレトリックの鍵は「参照方向」や「順序」である。ある情報のまとまりAがすでに存在していて、それを一方的に参照するまとまりBがあるとすると、Aはリソース(利用されるべきモノ。名詞的概念)、Bはイベント(起こるコト。動詞的概念)っぽく見える。「参照するほうか、されるほうか」も「何かが起きたときにすでに存在するかどうか」も「関係的」な基準である。

 リソースかイベントかといった「意味的な区別」の代わりに筆者が用いるものは、「関数従属性」と呼ばれる「統辞論的な枠組み」である。「関数従属性」に着目することで、個々のテーブルがリソースかイベントかを意識せずにモデリングを進められるようになっている。とはいっても、上述のアプローチと比べてより簡単というわけではない。

 脚本を書くための基本知識を習っても、いきなり面白い話を書けるようになるわけではない。同様に、関数従属性を理解しても、いきなり的確にモデリングできるようになるわけではない。幅広い業務知識を地道に身につける必要もあるし、複雑なデータ要件に対応する構造を洞察するためのある種の絵画的直観も要る。

 個々のテーブルが表す対象がイベントかリソースかを意識することも、データ項目間の関数従属性を捕捉することも、最終的なデータモデルに至るための手がかりのひとつでしかない。結局のところは、データモデリングの効率を高めるための工夫を重ねると、モデラーの経験や性格傾向に合わせて「意味論的アプローチ」と「統辞論的アプローチ」とにスタイルが分かれる傾向があるという話なのかもしれない。じっさい、これらの異質なアプローチは現場でどちらも有効に機能している。腕利きモデラーであれば、プロジェクトの性格や場面によって両者を使い分けるのかもしれない。

|

« 優れたツールが備える「BDT特性」 | トップページ | 「何かと便利」な設計方針? »

コメント

初めて、投稿させていただき、失礼します。

ご指摘のようにリソースとイベントは相対的だという点は悩ましいところですが単純に参照する側とされる側という定義だけだと率直なところ違和感を覚えます。

その定義だと業務連鎖において後続イベントに対して先行イベントは全てリソースということになってしまわないでしょうか。

私自身はS氏、T氏、H氏・・・の自身で納得するもののパクリの集合方式で恐縮ですが、

・リソースはマスタ、イベントはトランザクション
・マスタは通常業務でデータは発生しないが、トランザクションは業務によりデータが発生する。
(案件とか物件もイベントとみています。動詞か名詞かだけでは便宜的でちょっと間違えてしまいます)
・マスタの異動データはトランザクションなのでイベント
・単なるリソース、イベント以外に在庫型、要約型のような2次加工、T字形でいう対照表、対応表、TH形でいうサブストラクチャーがある。
・マスタは階層構造を持つことがある(品目と品目分類とか)
等々・・、

上記のパターンの当てはめと、更に
・リソースはコード体系を元にボトムアップ中心
・イベントはコード体系は参考程度で業務に関わるデータの発生タイミングや意味を元にトップダウン中心
で分析しています。
(これが個人的には一番効率的に作業が進みます)

上記のように分けるのは
・イベントは業務により変更が発生しやすいので
区別したい
・リソースは汎化・特化の対象として集めたい
・2次加工ファイルは区別したい
という利点も感じています。

徒然な文章ですが、この掲示板をみている方の参考になればと投稿いたしました。

投稿: tomoki | 2007.11.11 03:54

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: モデリングのスタイル:意味論と統辞論:

» [ER]関数従属性は統辞論的(シンタックス的)か [開発思考実験日記]
モデリングのスタイル:意味論と統辞論について 上記でERモデルを作成する方法として、『関数従属性』を利用する方法と『リソース・イベントを区別』する方法について言及されています。 いくつか気になる点があり、その中でも「関数従属性」が「統辞論的な枠組み」としてい... [続きを読む]

受信: 2006.12.17 14:44

« 優れたツールが備える「BDT特性」 | トップページ | 「何かと便利」な設計方針? »