データモデリング 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円以上 は無料 エンティティから見た更新の把握 • 今度は各エンティティに対し,そのライフサイ クルをまとめる • どこで生成・更新・削除されるかを調べる • 結果をエンティティとアクティビティのマトリック スにまとめる • 特に,生成については – 頻度や増分の予測値があると,のちの物理的設 計で必要ディスクの容量を見積もるのに役立つ エンティティ「注文」「注文明細」の ライフサイクル 「注文」「注文明細」のライフサイクル ① ショッピングカート内容が確定したとき,「注 文」「注文明細」が生成される ② レジカウンタで配送先,支払い方法が指定 される ③ 注文確定時に,請求書番号が自動発番さ れる.注文がキャンセルされると「注文」「注 文明細」が削除される
© Copyright 2025 ExpyDoc