データ・モデリングでビジネスと向き合う
ビジネスはエンティティとリレーションシップで細かく表現できる
図3の左側は、受注から請求までのビジネス活動を時系列に表した業務フロー図です。ER図でも、ビジネス活動(イベント)や経営資源(リソース)を配置し、ビジネス上の有機的な連鎖をリレーションシップで表せば、業務フロー図と同様にビジネスの流れを表すモデルになります。
図3: 業務フロー図とER図(クリックで拡大) |
ビジネス活動は、可視的であれ、不可視的であれ、エンティティとリレーションシップという2つの構成要素によって、細かく表現できます。ここでは、(a)エンティティと(b)リレーションシップについて、簡単に説明します。
- (a)エンティティ
-
ビジネスで管理しなければならないデータを、エンティティと呼びます。 ER図では、四角いボックスで囲まれた顧客/受注/商品などが、エンティティに該当します。ビジネスで管理するエンティティは、人/物/金に関するものや行為や事象に関するものすべてが対象となります。
管理対象を漏れなく洗い出すには、どうすればよいでしょうか。手掛かりは、番号やコードにあります。企業が管理すべきデータには、必ず、社員番号、取引コード、注文IDといった識別子が存在します。このため、識別子を目印にすれば、すべて捕捉することが可能です。
また、エンティティは、データの性質から、顧客/商品といったリソース系と、計画/受注といったイベント系の2種類に分類できます。データ・モデリングを使ってビジネスを捉える場合は、まずはイベント系に着目して捕捉するとよいでしょう。その後、対象のビジネスが見えてきたら、リソース系を深掘りすることで、よりビジネスに関する感度が高まります。
- (b)リレーションシップ
-
リレーションシップとは、エンティティとエンティティを結ぶ線のことです。この線がどう描かれているかによって、ビジネスの流れやルールが分かります。
エンティティ間のリレーションシップには、「1:1」、「1:N(複数)」、「N:N」という、数量的な関係があります。これを、カーディナリティと呼びます。
カーディナリティは、エンティティを結ぶ線の先端の記号(「-」や「鳥の脚」)によって表現します。該当データが1件だけか、もしくは存在しない(1か0)といった微妙な関係(任意のカーディナリティ=オプショナリティ)も、すべて記号で表現できます。
ER図からビジネスの流れを読み解く
エンティティとリレーションシップの2つの要素が、どのように描かれているかによって、ビジネスを詳細に読み解くことができます。実際に、「顧客」と「注文」のリレーションシップを例に、ER図からビジネスを読み解いてみましょう。
図3の例では、「受注」側の記号が「鳥の脚」になっています。1人の「顧客」に対して、1つ以上の「受注」が対応することを表しています。別の言い方をすれば、対応するインスタンスの数の関係が「1:多」であるとも言えます。ビジネス的な表現をすると、「1人の顧客が複数回の注文をする場合もある」、つまり、「同じ顧客からリピート・オーダーがある」ということになります。
さらに、リレーションの双方の記号が「|」なのか「○」なのかを見ます。「|」は「必ず存在する」という意味で、「○」は「存在しないこともある」という意味です。図3の例では、「○」になっているため、すべての「顧客」に対して「受注」が存在するとは限らないことを表しています。ビジネス的に言い換えると、「いまだにオーダーのない顧客もいる」となります。
このように、ER図は、複雑なビジネス・ルールであっても、簡単に表現できます。また、RDBMS(リレーショナル・データベース管理システム)における「関係モデル」との親和性も高いため、データの分析から設計まで、幅広く活用されています。
図4: ER図で複雑なビジネス・ルールを表現する(クリックで拡大) |