今年2回目のブログも基本に立ち返り、データモデリングを取り上げてみたい。思うに、“基本“と言われるものほど、時がたって再考すると、そのディープな有用性を再認識したりすることが多い。ここで取り上げるデータモデルは、単にシステム内の各種エンティティとエンティティ間の関連を表すものではない。ましてや、物理データベース内のテーブルを生成することを最終目的とするものではない。ご紹介するデータモデル図は、エンティティの性質に応じた一律の配置ルールに従って描かれるものであり、ビジネスモデルの静的な側面を克明に可視化することを主な目的とするものである。
EAにおいてBA→DAへと一段下位層へのアーキテクチャを継承することは極めて重要なことであり、結果としてこのようなデータモデルを基に構築された企業システムはビジネスにマッチする。図1のエンタープライズ・データモデルのテンプレートを見ていただきたい。このテンプレートは、私が長年、様々な業種の概念データモデリングを描画してきた経験に基づくものであり、そのルーツは元データ総研会長の椿氏のTHモデルにヒントを得ている。ちなみに使用しているツールはSI OBJECT BROWSER/ER である。
まず縦軸のエンティティ配置であるが、上から下にかけて、マスタ→残高・集約→イベントの順で配置される。KEY項目の数は上に行くにつれ少なくなり、1レコードの示す範囲は広がる。マスタ群の中での配置は、中心にリソース系エンティティが位置し、上位に区分系テーブル、下位に取引先+品目等の複合KEYを有するビジネスルール系エンティティが位置づけられる。これらのエンティティ間リレーションシップ(関係線)が上から下にめがけて1:Nの関係となるように配置する。図1のテンプレートはSCMをスコープとしたものあるが、マスタ群の3層目のビジネスルール系エンティティは、受注、物流、生産といった各イベント発生時に用いられるルールを定義したものであり、リソース系エンティティのPKEYを複合したPKEYを有している。リレーションシップ(関係線)は個別のリソース系エンティティとは結ばず、ビジネスルール系エンティティと結ぶのが理にかなっており、かつ、美しい。
次に横軸の配置であるが、マスタ群では左から右へ、自社組織系(従業員含む)→取引先系→品目系という配置が良い。この理由は、取引先+品目という複合KEYによるビジネスルールが多岐にわたるケースが多いこと。また、自社組織は比較的モデルが安定しているが、右側に位置するエンティティほどモデル拡張が行われる可能性が高くモデルをに手を加え易いこと等による。イベント群では、左から右に、ビジネスフローの時間的推移(見積、受注、出荷など)に従って配置するルールとし、これらの各イベントエンティティを元として更新される残高・集約群も、これらのイベント群の配置に準拠することになる。
以上の配置ルールに基づいて描かれたデータモデル図は、リレーションシップ(関係線)の交差が最も少なく、裾広がりで美しい形となる。そして何より、決められた配置ルールの規則に従って描かれているので、ビジネスモデルを読み取ることが可能である。図1のテンプレートはその模範型であるが、ルールに従って描画すると当然ながら余白が生まれる。この余白を取り除く為に、エンティティの配置ルールを敢えて崩す必要はない。せっかくの美しいデータモデルが、無味乾燥した配線回路図の如き“テーブル関連図“と化す。敢えて図2にそのアンチパターンを掲載した。私はこの手のモデル図を現場で実に多く見かける。これでは、せっかくのモデル図も、脱却しようとしているITスラム化と大差ない。線が錯綜したモデル図は読める代物ではない。またこの逆に、リレーションシップ(関係線)が全く描かれていない”板チョコ”のような図も見かけるが論外である。
ITアーキテクチャ設計にはサイエンスにアートの要素が加わる。ビジネスのメリハリを表す均整のとれた美しいデータモデル図を描くことがデータアーキテクトには求められる。エンタープライズ・システムは、世界に2つとないアーキテクトにとっての作品であり、コモディティではないのだから。