ビジネス視点のデータモデリング:ゼロからのデータモデリング入門(8)(3/3 ページ)
今回から3回に分けて、第6回「基本設計で作るべき『論理データモデル』の考え方」で解説した論理データモデリングについて詳しく見ていきます。今回は、「論理データモデルはビジネス活動をデータで表す」ということをより理解いただくために、ER図の読み方と書き方について具体的にお話しします。
ER図の描き方
ER図の描き方について見ていきましょう。ここでは、営業部門の受注システムを新規に構築しなければならなくなった場合を想定して説明します。まずは、現場の担当者のところへ行き、見積作成から受注までの具体的な業務内容と流れをヒアリングしました。
【業務内容と流れ】
契約形態としては、ライセンス契約とメンテナンス契約があり、ライセンス契約は見積を必要とするが、メンテナンス契約は自動更新のため見積を必要としない。どちらの契約も顧客からの注文書に基づき処理を行う。
エンティティにはリソース系とイベント(処理)系の2種類があります。イベント系エンティティは「できごと(イベント)」、つまり業務処理そのものを指します(例えば、図7に示す黄色のエンティティ(契約、個別契約、請求、出荷)がイベント系のエンティティになります)。また、リソース系エンティティは、なにか「できごと(イベント)」を行う際に使われるものとなります(例えば、図7に示す白色のエンティティ(顧客、従業員)がリソース系のエンティティになります)。
業務処理をER図で表現する際には、まずイベント系エンティティとリソース系エンティティを切り分け、イベントに注目することがポイントです。上記の業務内容からイベント系エンティティとして、「契約」、「見積」、「注文」が存在することが分かります。イベントをとらえたら発生順に時系列にエンティティを並べ、イベント間のリレーションシップを設定します。
このとき、現場の担当者に「見積を作成したものがすべて注文をいただけるわけではないですよね?」「複数の見積を合算して1つの注文がくることがありますか?」「注文をいただいたものはすべて契約を行うのですよね?」といった内容を細かく確認します。
リレーションシップを設定するには、このように細かいルールをヒアリングにより確認することが必要です。
スーパータイプとサブタイプ
今回の業務内容において注意が必要なのは「ライセンス契約」と「メンテナンス契約」があるということです。このように、同じ契約でも種類が異なるものがある場合、ER図では次のように表現します。
図9は、スーパータイプ/サブタイプと呼び、同じ契約番号でも異なるものを表現する場合に利用します。スーパータイプ/サブタイプを利用するか否かについては、「〜〜区分」や「〜〜種別」などといった項目があるかどうかが1つの判断材料になります。
図9のように「ライセンス契約」と「メンテナンス契約」という2つの契約種別に分けることで、例えばメンテナンス契約の場合には使用開始日と終了日といった期間を表すといったように、契約エンティティに2つの異なるアトリビュートを持たせることができます。
では、上記イベントに対して、対象となるリソース「顧客」、「商品」、「従業員」を追加したER図を考えてみてください。解答は次回、お伝えします【注2】。
【注2】業務内容で不足している部分に関しては、自分で業務を想定し、ER図で表現してみてください。
今回はER図の読み方と書き方について簡単にご説明しました。より具体的にビジネスをER図で表現するには、こうしたルールを踏まえた正規化作業を最初に行う必要があります。
次回は、正規化技法についてお話しします。
Copyright © ITmedia, Inc. All Rights Reserved.