第3回 データモデルの表記法

  前回 はデータモデルの観点について紹介いたしました。今回はデータモデルの表記法を紹介いたします。

 データモデルを表現する手法としてER図(Entity Relationship Diagram)があります。ER図にも複数の表記法がありますが、情報のまとまりを「モノ(エンティティ)」と捉えて箱型で表現し、モノとモノとの間の関係は「リレーションシップ」として、箱型を線で繋いで表現される点では共通しています。また、UML(Unified Modeling Language)のクラス図もデータモデリングに広く用いられます。
 データモデルを描く際は複数の表記法から選ぶことができます。ただし、 第1回 で述べた通り、データモデルを記述する意義は業務の意味やルールを正確に表現することにあります。同じデータモデルでも読み手によって業務の意味やルールの解釈が変わってしまう、または同じ業務の意味やルールを表現するためにデータモデルの描き手が複数の表現方法を選べてしまうのでは、データモデルを共通言語として業務の意味やルールを関係者間で正しく共有することは難しくなります。データモデルを作成する目的に沿って、関係者間で共有しやすいデータモデルの表記法を選ぶ必要があります。

 ここで、データモデルの表記法と業務の意味やルールの表現について、シンプルな例を2つの表記法で見てみましょう。
 図1は、商店街組合と組合員(個々の商店主)、組合の代表者との関連をUMLのクラス図で描いたデータモデルの例です。

図1.データモデルの例(UMLのクラス図)

 

 図1のデータモデルでは、情報のまとまりを概念化したもの(八百屋や魚屋など商店街にある商店の経営者を「商店主」という言葉で概念化)を、クラスとして箱型で表現します。また、クラス図では同一クラス間の複数の関係を表すことができます。
 図1のデータモデルでは、「商店街組合」と「商店主」というクラスの間に、「組合員」と「代表」という二つの関係があります。「商店街組合は複数の商店主(組合員)から構成され、商店街組合の代表は一人の商店主が務める」という意味を図1は表しています。しかし、ここには「組合員」と「代表」との間の関係(制約)が表されていないため、商店主は自身が所属しない商店街組合でも代表になることができる表現になっています。もし「商店街組合に所属する商店主のみが、その組合の代表を務めることができる」という事実があるとすると、それを制約式や文字で追記する必要があり、描き手の表現力に依存することになります。

 次に、図1と同じ例を別の表記法である TM(T字型ER手法) にて図2に例示します。

図2.データモデルの例(TM)

 

 図2のデータモデルでは、図1の説明で付加した「商店街組合に所属する商店主のみが代表を務めることができる」という制約も加味しています。
 商店街組合と商店主との関係は、③組合員エンティティが表しており、商店街組合と商店主との組み合わせを管理する、いわば組合員名簿のような情報を表します。また、代表を意味する④組合代表エンティティは、③組合員エンティティの付属情報(属性)としています。③が組合員名簿、④が組合員名簿上の代表欄とすると、代表となる組合員には代表マークとして「〇」がつくイメージとなり、組合員でなければ代表を務められないことを表しています。
 このように、商店街組合に所属する組合員のみが代表を務めることができるのか否かは、データモデルとして明示されるのです。

 TMは同一エンティティ間で複数の関係をもつことを認めていないため、UMLと比較すると箱型の数が多くなります。そのためUMLで描かれたデータモデルと同じ内容を表現していても、一見すると複雑なデータモデルとなります。その反面、業務の意味やルールの違いがデータモデルの違いとなって表現されるのです。こうしたことからTMは業務の解析や、業務の意味やルールを関係者間で属人性を排除して共有するにはより適した表記法の一つといえます。

 アイティーエスのデータモデリングにおいてはこのTMを採用しており、多くのお客様の事業解析からシステム構築まで幅広く活用しております。

 以上、全3回に渡りデータモデルについて簡単に説明してまいりましたが、ご覧いただいた皆様がデータモデルを知る切っ掛けとなれば幸いです。もっと詳しく知りたい方におかれましては、弊社の データコンサルテーションサービス TM教育サービス を説明させていただきますので、ぜひ お問い合わせ 賜りたくお願い申し上げます。