Document

データモデリング
CRUD分析
Quiz: CRUD分析とは
① 生成,参照,更新,削除を,だれがいつ
実施するのかのタイミングの分析
② データベースの研究者 CRUD が発明し
た,データの生成,参照,更新,削除の
履歴の分析手法
実施者とタイミングを見るためDFDを使う
DFDを活用
復習: DFDでは,
• アクティビティ
– ボックスで表現
• データの流れ
– 矢印で表現
• 保存されるデータ(エンティティ)
– データストアで表現
• データ発生源(組織)
– エクスターナルで表現
DBMe書店のDFD
DFD
• 図8-1のDFD
– 一般に入ってくる矢印を入力データ,出て行く矢印
を出力データと捕らえれば理解はできる.
• 要求分析のためのDFD
– アクティビティの流れを捉えるのが目的
• データモデリングのためのDFD
– アクティビティ間を流れる詳細データ記述が目的
– DFDで,だれが何をいつ更新したかを突き止める
Quiz: CRUD分析は,どのレベルまで
実施すべきか
① データベースのレベル
作成・参照・更新された表はどれか?
② エンティティのレベル
作成・参照・更新された行(インスタンス)はどれ
か?
③ 属性のレベル
作成・参照・更新された属性はどれか?
属性レベルで実施するのは,後に紹介する
IRUN分析
CRUD分析
• Create(生成), Refer(参照), Update(更新),
Delete(消去)の頭文字
• 特定データについて発生から消滅までを分析
– データのライフサイクル(一生)の分析
• データモデルはある時点でのスナップショット
– 同じキーで一意に定まるデータをひとまとめに
• ライフサイクルによるエンティティの設定
– 属性の発生,更新,消滅のタイミング でまとめる
• これらはトレードオフ
– データ・モデラーと業務担当者で昔から揉めるところ
エンティティ主管部署の決定
• 主管部署
– データの発生から消滅までについての責任を負
う部署
– データの所有者
• 2種類の図を突き合わせて主管部署を決定
– エンティティとその間の関係を示す図(ER図)
– 業務プロセスのDFD
小売業の商品開発を例としたER図
小売業の商品開発を例としたDFD
エクスターナル
データストア
アクティビティ
処理の流れ
① 「バイヤー」により「新商品提案」がなされ、「商品
基本データ」が作成される。
② 「商品企画部」で「新商品採用」が決まったら、どの
分類に属する商品か「商品カテゴリー」を決め、画
像データを含むサイズや形状などの「商品カタロ
グ」を作成する。
③ 「商品仕入部」でどの「メーカー」に発注し、どこの
「仕入業者」から仕入れるかを決定する。
④ 「販売促進部」では、販売価格を含む「販売属性」
とどの地域で売り出すかの「販売地域」を決定する。
マトリックスからの主管部門決定
• エンティティと各属性決定部門のマトリックス
– 作成している 部門が主管部門
DFDの矢印,もしくはそれにつながったデータストア
DFDの
エクスターナル
CRUD分析
• 特定のアクティビティに着目して,
– 入る矢印と,出る矢印にエンティティを割り当てる
– 出るエンティティについて,このアクティビティで
• 生成されるのか
• 更新されるのか
を分析
• 「配送・支払い指定」で
– 商品請求先
– 商品配送先
は生成される
DBMe書店のDFD
発生タイミングによるエンティティ分割
• トップダウン分析では「注文内容」エンティティ
に「商品請求先」と「商品配送先」は含まれる
– 「注文内容」 生成時では,「顧客」エンティティの
住所が「商品請求先」と「商品配送先」のデフォル
ト値
– しかし後の「配送・支払い指定」で変更可能
• 「配送・支払い指定」で「商品配送先」を生成と考える
べき
• 「商品請求先」「商品配送先」を別のエンティ
ティとして分割
IRUN分析
• Insert(挿入), Refer(参照), Update(更新),
Null(空値設定)の略
• エンティティでなく,その内部の属性値につい
てのCRUD分析
• 特定アクティビティに着目して,挿入や更新さ
れる属性をピックアップする
配送支払い指定のIRUN分析
顧客が登録した属性が表示されるが,それが更新される.
Quiz: なぜ,CRUD分析とは別に
IRUN分析が必要か?
① どの属性が更新されたかがわからないと,
正確なモデリングができないから?
② 正規化により,エンティティから属性が切り
離されたときに備えて
③ 他の属性から導出される属性の値を見切
るため
• その属性と同時に更新される他の属性と
その関係式が把握できれば,アクティビ
ティを見切ったことになる
更新される他属性との関係式の把握
図が小さいので
教科書p.142 図8-10
をご覧ください.
属性「商品配送料」の値は
他の属性値により変化
1回の注文で通常は300円.
購入金額が3000円以上
は無料
エンティティから見た更新の把握
• 今度は各エンティティに対し,そのライフサイ
クルをまとめる
• どこで生成・更新・削除されるかを調べる
• 結果をエンティティとアクティビティのマトリック
スにまとめる
• 特に,生成については
– 頻度や増分の予測値があると,のちの物理的設
計で必要ディスクの容量を見積もるのに役立つ
エンティティ「注文」「注文明細」の
ライフサイクル
「注文」「注文明細」のライフサイクル
① ショッピングカート内容が確定したとき,「注
文」「注文明細」が生成される
② レジカウンタで配送先,支払い方法が指定
される
③ 注文確定時に,請求書番号が自動発番さ
れる.注文がキャンセルされると「注文」「注
文明細」が削除される