
第2回 30分間データモデリング 〜ER図を描こう!〜
アクセンチュア・テクノロジー・ソリューションズ
阿尾操
2006/4/6
本連載は、ITシステム開発の現場でプログラミングやSQLのコーディングを行っているエンジニア(データベース利用者)が、データ管理者(DA)やデータベース管理者(DBA)へステップアップするための第一歩として有効な基礎知識を紹介する。(編集局)
| 主な内容 --Page 1--
--Page 2--
・ エンティティが不足していないか? --Page 3--
・不要なエンティティが含まれていないか--Page 4--
|
今回は、「データベースエンジニアになるための必須知識」の1つであるER図(entity-relationship diagram)を取り上げます。
システム開発におけるER図の位置付けについては、前回の記事「真のデータベースエンジニアを目指そう!」でご紹介したので、今回は、実際にER図を描く場面を想定し、RDBMSに実装するまでのプロセス(思考過程)を疑似体験してもらうことで、ER図を描くために必要な最低限の知識を身に付けていただこうと考えています。
では、早速始めましょう!
実際の業務で、何もシステムが存在しないところからER図を作成することはまれでしょう。おそらく、既存システムのリプレイスや拡張の際に、「すでにある画面や帳票からデータを収集して、ER図を作成すること(ボトムアップアプローチ)」が多いと思われます。
そこで、今回は、すでにシステムが稼働しているという想定で、皆さんにとって身近な「オンラインレコードショップの商品購入画面」(図1)のER図を作成します。
![]() |
| 図1 オンラインレコードショップの商品購入画面 (画面をクリックすると拡大します) |
ER図を描き上げるまでには、4つのプロセスがあります(図2)。
![]() |
| 図2 ER図を描き上げるための4つのプロセス |
では、各プロセスの詳細を順に見ていきましょう。
![]() |
まずは、業務ルールを把握しましょう。ここではまず図1から把握できることを整理します。なお、図1にある吹き出しは、前画面(「注文画面」)において、どんな入力項目が選択可能であるのかを補足しています。
よって、次のようなことが把握できます。
- この画面は、顧客が注文を行う過程の「注文確認画面」である。
- 1人の顧客は、1回の注文で、複数の商品を注文できる。
- 注文の前に、顧客の情報(住所を含む)は、前もって登録されている。
- 発送方法を「即発送」「10日間だけの取り置き」の2つから選択できる。
- 配送先(届け先名称、郵便番号、住所、電話番号)を指定できる。特に指定がない場合は、登録済みの顧客の住所が指定される。
- 支払方法を「代金引換」「クレジットカード」の2つから選択できる。
- 配送日時を指定できる。その際、「時間帯」と「日付」の指定ができる。
実際には、画面だけでは読み取れないところもあります。そのような場合は、このシステムを設計・開発した担当者からヒアリングを行う必要もあるでしょう。
さぁ、これで、図1から読み取れる業務ルールは把握できました。取りあえず、下準備はOKといったところです。
![]() |
では、早速図1からエンティティを抽出していきましょう。
エンティティとは? 人(誰が)……取引先、組織、担当者、部署、顧客、従業員など ある目的を持って同じようなデータを集め、その目的を明確に表す名前を付けたもの。 |
図1には、「商品」「発送について」「お客様情報」「お届け先」「お支払い方法」「お届け希望指定」という6つのカテゴリが見て取れます。
画面表示上の分かりやすさのために、同じようなデータを1カ所に集め、カテゴリでまとめて扱うことは自然です。一方、エンティティは「ある目的を持って同じようなデータを集めたもの」です。つまり、このカテゴリをエンティティとしてとらえることができます。というわけで、素直に画面表示上のカテゴリ(分類)をエンティティとしてしまいましょう。
各エンティティの名称は、「目的を明確に表現できるような短くて分かりやすい名称」にします(表1)。
画面上のカテゴリ(分類)名称 |
エンティティ名称 | |
商品 |
→ |
商品 |
発送について |
→ |
発送方法 |
お客様情報 |
→ |
顧客 |
お届け先 |
→ |
届け先 |
お支払い方法 |
→ |
支払方法 |
お届け希望指定 |
→ |
配送指定日時 |
| 表1 エンティティの名称を決定 | ||
また、カテゴリの中にある項目は、エンティティでは「属性」と呼ばれます。例えば「商品」カテゴリの中の「商品名」「フォーマット」「単価(税込)」などは、「商品」エンティティの属性になります。
属性とは、エンティティが持つ情報で、エンティティの性質や特性を表現するもの。 |
さぁ、これでエンティティが取りあえず抽出できました。
| 1/4 |
| Index | |
| 連載:データベースエンジニアへの道(2) 30分間データモデリング 〜ER図を描こう!〜 |
|
| Page 1 ・はじめに ・お題はオンラインショップの商品購入 ・ER図を描き上げるまでのプロセスは4つ ・業務ルールを把握しよう ・エンティティを抽出しよう |
|
| Page 2 ・エンティティに過不足がないかをチェックしよう エンティティが不足していないか? |
|
| Page 3 不要なエンティティが含まれていないか |
|
| Page 4
・リレーションシップを設定しよう ・まとめ |
|
| データベースエンジニアへの道 |
TechTargetジャパン
- やはりSELECT文は永遠のテーマです (2012/2/7)
Database Expertフォーラムの2012年1月のアクセスランキングをお届けします。定番の記事を一気に追い抜いてあの記事が…… - SELECT文で取り出したデータを加工して表示する (2012/1/25)
SELECT文で取り出したデータを対象に四則演算する方法など、データを見やすくする方法を解説します - 2012年は私たちが勉強会を盛り上げる! (2012/1/23)
2011年12月、データベース業界初の女子会が発足しました。そこで、女子会を盛り上げていってくれそうな2人にお話を伺いました - 複数の条件を指定してSELECT文を実行する (2012/1/13)
複数の条件を指定してSELECT文を実行する方法と、条件指定に必要な論理演算子、比較演算子の役割を解説します
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -




