
第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ジャパン)
- ここまでできる! CouchDBパワーアップ作戦 (2010/3/18)
さらに一歩踏み込んで、実運用のためのノウハウを知りましょう。全文検索、ユーザー認証、負荷分散手法を解説します - 診断ツールでデータベースの健全性を保つ (2010/3/5)
DBをセキュアに保つには、日々のチェックが重要。診断ツールを運用に組み込むことが、情報漏えい対策の第一歩です - トムが説く、エンジニアがしてはならないこと (2010/3/2)
Oracleエンジンそのものをデザインする男、トム・カイト。カリスマエンジニアが説明する、陥りやすい「ぼくたちの失敗」とは - “スコット”といえばなんと答える? (2010/2/22)
ツーといえばカー、スコットといえばもちろん! そんな根っからのDB人間チェックや週末の勉強会など、2月もDB漬けでした
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
| 「いつかは壊れるサーバ」そんな故障に 迅速で安価に手軽に対応する方法とは? New! |
| 「特権ユーザー」の事件を防げ! 万能権限を持つユーザーの管理方法とは? New! |
| 仮想環境の構築とデータ保護の特効薬?! 実績と信頼性の高いパッケージで安心運用 |
| 仮想環境のバックアップもこれまでどおり 「まるごと取ってまるごと戻す」簡単運用 |
| おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |
| その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |
| 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |
| 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | TomcatやJBossなどAPサーバ環境に関する 情報を集約! “業務”用APサーバ大百科 New! |
| ◆ | 一気に解説! 最新のクラスタストレージ 「RAIDを超えたストレージ基準」……など New! |
| ◆ | クラウド的ユーザー体験の変化は脅威か? 仮想化技術を使いこなす運用管理術を紹介 New! |

| ◆ | 上司や部下、部署内メンバーとの情報共有 を“ガラッ”と変えるコラボツールとは? New! |
| ◆ | おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| ◆ | 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |

| ◆ | Twitterのアカウントはなぜ突破された? メールによる新手の攻撃手法とその対策 |
| ◆ | もう仮想化のお試しフェイズは終わりだ! Hyper-V 2.0が基幹システムも仮想化 |
| ◆ | 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |

| ◆ | クライアント企業から求められる人材 ⇒IT技術と経営戦略を併せ持つ「戦略家」 |
| ◆ | .NET編集長が実践する「技術情報検索術」 サンプル・コードを簡単に探す“技”は? |
| ◆ | 業務効率と情報セキュリティ対策を両立! 手間なく確実に機密情報を守る方法とは? |

| ◆ | 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |

| ◆ | 【CTC事例】約30の基幹システムを統合! 膨大なバッジジョブを制御した方法は? |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |
| ◆ | その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |










