Document

データモデリング
エンティティの切り出し
トップダウンによる
エンティティの切り出し
• リソース系エンティティ
– 企業活動に実際に存在するもの
– DB構築時に最初からあるかのように扱われる
– 一般に,「○○マスタ」と呼ばれるテーブルになる
• イベント系エンティティ
– 企業活動内の行為(注文,販売,出荷,etc)
– 注文などから始まり,売り上げまでの一連の活動
を考え,その構成要素として同定する
• サマリー系エンティティ
– 他のエンティティのインスタンスをまとめたもの
Quiz: リソース系エンティティと
イベント系エンティティ
• 物議をかもしたCSに関して、次のエンティティ
はリソース系?イベント系?
– 開催球場エンティティ
リソース系
• 都市名,収容可能観客数
– 選手エンティティ
リソース系
• ポジション,背番号
– 選手交代エンティティ
イベント系
• 退出選手,新規参加選手
– 対戦エンティティ
• 先攻チーム,後攻チーム
イベント系
ステップ1:全体ビジネスフローから
リソース・エンティティを切り出す
• (図4-1のような)ビジネス・フロー上のボック
ス(絵)の部分が候補
• ビジネス・フローから抜けているものもあるの
で注意
• 名前付け が実は肝心
– 他と重複がないこと
– 長すぎないこと
– 「○○管理」など 意味のない名前 はつけない
• エンティティ定義を必ずしておく
[補助] なぜ,意味がない?
• データベースは情報を管理するためにある.
– 「売り上げ管理」とするのは,「売り上げ」と書いて
あるのと同じ
– 他には
• ○○処理
• ソフトウェアの世界でデータを処理するのは当たり前!
• どう処理するかを書くべき
ビジネス・フローに出ていない
リソース・エンティティ
配送センタが配
送計画を立てる
のに必要
顧客本人の
住所
もしくはギフト
のときは贈答
先の住所
Webサイトで
購入予定商
品を一時的
に入れておく
ところ
リソース系エンティティの定義
エンティティを抽出した理由が不明となりがちなため
ステップ2: リソース系エンティティの
関連付け
• 特定のエンティティから関連するエンティティ
を調べていく
• 各関連について
– カーディナリティ を設定
– 独立か依存か を決定
– 関連(リレーションシップ)に 動詞 を付加する
1: n
n:n
[補助] どうして n 対 n?
• 書籍卸と出版社
– ひとつの書籍卸は,複数の出版社から本を仕入
れる
– ひとつの出版社は,複数の書籍卸に本を納入す
る.
• 考え方のヒント
– どちらか一方をひとつに固定して,相手が複数あ
るか考える.
– 反対側も,ひとつに固定して,相手が複数あるか
考える.
ステップ3: イベント系エンティティの
抽出
• (図4-1のような)ビジネス・フローの中の
業務の流れ を説明した文からイベント系エ
ンティティの候補を抽出
• 発生順を矢印で表記
• やはり, 名前付け が肝心
• やはり,イベント系エンティティの定義を必ず
おこなう
図4-8
図4-9
ステップ4: イベント間の関連付け
• 依存関係とカーディナリティを設定
– 1つの注文に複数の商品があれば,出荷が複数。
注文と出荷は1:多
– 出荷と売り上げは1:1
– 売り上げと支払い請求は1:1
– 発注に対して配送センタに分割して納入
発注と入荷は1:多
図4-10
ステップ5:イベントとリソースの関連
• リソース系エンティティ間の関連の中に,イベントを
おいてみる
• イベントがどのリソースを参照するかを調べる
– 注文から
• 顧客(1対1)
• 届け先(1対1)
• ショッピング・カート(1対多)
注文と商品(多対多)
• 1つの注文の中で複数の商品を指定でき,1つの商品はさまざま
な人から注文される(複数の注文から参照される).
• 「注文商品」(1つの注文の中で指定された商品)というエンティ
ティをつくり,多対多の関係を1対多(1対1)の関連2つに分ける
– 「出荷」「発注」などの他のイベントについても同様に実施
[補助] どうして,
イベントからリソースへ調べるの?
• なぜ,イベントからリソースへの参照を調べる
のか?
– イベントは人間の動作により起こされる.
– リソースは世の中にある物体や人
– 動作の中で物体や人が参照される
– よってイベントからリソースを参照するが,リソー
スからイベントを参照することには無理がある.
• リソースからイベントへは調べなくていいの?
– 無理があるものは,しないほうがよい
ステップ5:サマリー系エンティティの
追加
• 他のエンティティのインスタンスについて統計
処理を施して束ねたエンティティ
• CRMなどで傾向を探るのに有効
• Data Warehouse (データの問屋さんシステ
ム)の研究には欠かせないエンティティ
図4-13