連載
» 2006年04月06日 00時00分 UPDATE

データベースエンジニアへの道(2):30分間データモデリング 〜ER図を描こう!〜 (1/4)

本連載は、ITシステム開発の現場でプログラミングやSQLのコーディングを行っているエンジニア(データベース利用者)が、データ管理者(DA)やデータベース管理者(DBA)へステップアップするための第一歩として有効な基礎知識を紹介する(編集局)

[阿尾操,アクセンチュア・テクノロジー・ソリューションズ]

はじめに

 今回は、「データベースエンジニアになるための必須知識」の1つであるER図(entity-relationship diagram)を取り上げます。

 システム開発におけるER図の位置付けについては、前回の記事「真のデータベースエンジニアを目指そう!」でご紹介したので、今回は、実際にER図を描く場面を想定し、RDBMSに実装するまでのプロセス(思考過程)を疑似体験してもらうことで、ER図を描くために必要な最低限の知識を身に付けていただこうと考えています。

 では、早速始めましょう!


お題はオンラインショップの商品購入

 実際の業務で、何もシステムが存在しないところからER図を作成することはまれでしょう。おそらく、既存システムのリプレイスや拡張の際に、「すでにある画面や帳票からデータを収集して、ER図を作成すること(ボトムアップアプローチ)」が多いと思われます。

 そこで、今回は、すでにシステムが稼働しているという想定で、皆さんにとって身近な「オンラインレコードショップの商品購入画面」(図1)のER図を作成します。

ma_fig01b.gif 図1 オンラインレコードショップの商品購入画面(画面をクリックすると拡大します)

ER図を描き上げるまでのプロセスは4つ

 ER図を描き上げるまでには、4つのプロセスがあります(図2)。

ma_fig02.gif 図2 ER図を描き上げるための4つのプロセス

 では、各プロセスの詳細を順に見ていきましょう。

業務ルールを把握しよう

ma_fig02-1.gif

 まずは、業務ルールを把握しましょう。ここではまず図1から把握できることを整理します。なお、図1にある吹き出しは、前画面(「注文画面」)において、どんな入力項目が選択可能であるのかを補足しています。

よって、次のようなことが把握できます。

  • この画面は、顧客が注文を行う過程の「注文確認画面」である。
  • 1人の顧客は、1回の注文で、複数の商品を注文できる。
  • 注文の前に、顧客の情報(住所を含む)は、前もって登録されている。
  • 発送方法を「即発送」「10日間だけの取り置き」の2つから選択できる。
  • 配送先(届け先名称、郵便番号、住所、電話番号)を指定できる。特に指定がない場合は、登録済みの顧客の住所が指定される。
  • 支払方法を「代金引換」「クレジットカード」の2つから選択できる。
  • 配送日時を指定できる。その際、「時間帯」と「日付」の指定ができる。

 実際には、画面だけでは読み取れないところもあります。そのような場合は、このシステムを設計・開発した担当者からヒアリングを行う必要もあるでしょう。

 さぁ、これで、図1から読み取れる業務ルールは把握できました。取りあえず、下準備はOKといったところです。

エンティティを抽出しよう

ma_fig02-2.gif

 では、早速図1からエンティティを抽出していきましょう。

エンティティとは?


人(誰が)……取引先、組織、担当者、部署、顧客、従業員など

物(何を)……商品、製品在庫、資源、成果物、倉庫など

……価格、現金、消費税、通貨など

時間……カレンダー、工場稼働日、基準日程計画、世代管理

やりとり・活動・行為(どうする)……受注、発注、出荷、承認、値引き、出庫、入庫など


ある目的を持って同じようなデータを集め、その目的を明確に表す名前を付けたもの。


 図1には、「商品」「発送について」「お客様情報」「お届け先」「お支払い方法」「お届け希望指定」という6つのカテゴリが見て取れます。

 画面表示上の分かりやすさのために、同じようなデータを1カ所に集め、カテゴリでまとめて扱うことは自然です。一方、エンティティは「ある目的を持って同じようなデータを集めたもの」です。つまり、このカテゴリをエンティティとしてとらえることができます。というわけで、素直に画面表示上のカテゴリ(分類)をエンティティとしてしまいましょう。

 各エンティティの名称は、「目的を明確に表現できるような短くて分かりやすい名称」にします(表1)。

ma_eet.png 表1 エンティティの名称を決定

 また、カテゴリの中にある項目は、エンティティでは「属性」と呼ばれます。例えば「商品」カテゴリの中の「商品名」「フォーマット」「単価(税込)」などは、「商品」エンティティの属性になります。

属性とは、エンティティが持つ情報で、エンティティの性質や特性を表現するもの。


 さぁ、これでエンティティが取りあえず抽出できました。

       1|2|3|4 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

Focus

- PR -

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。