データモデリング トップダウンモデルと ボトムアップモデルの融合 Quiz: トップダウンモデルの復習 ① 対象システムの要件に着目 ② ここは何だったでしょう? ③ 想定される属性を付加 ④ 一意に識別できる属性を候補キーにする 以下のうちから,お選びください. • 思いつくエンティティをすべて列挙する • 必要と思われるエンティティを切り出す • イベント・エンティティを切り出す 正解は次のスライド トップダウンモデルの復習 ① ② ③ ④ 対象システムの要件に着目 必要と思われるエンティティを切り出す 想定される属性を付加 一意に識別できる属性を候補キーにする • トップダウンモデルとボトムアップモデルを対 比 – トップダウンモデルを使い、ボトムアップモデルに 漏れがないことをチェック DBMe書店のトップダウンモデル • 大きすぎて入りません。 • 教科書p.148-149の図9-1をご覧ください DBMe書店のボトムアップモデル エンティティだけを切り出すと これも見づらいから 教科書p.147の表9-1を ごらんください エンティティを比較 • トップダウンモデルのほうが広範囲のデータを 対象にしている – トップダウンにあるエンティティがボトムアップにはな い – 「商品」については集中的に分析したので、ボトム アップモデルのほうが細かく分割されている。 • トップダウンモデル – システムの全体像 • ボトムアップモデル – 特定のアクティビティについて詳細な分析 トップダウン vs. ボトムアップ • Webでの地図検索に似ている – 最寄駅名をたよりに駅の位置から目的地を探す 場合、広域図から地域の拡大図へ – 目的地の番地から最寄りのホテルを探す場合, 地域の拡大図からすこしずつ広域図に – どちらが優れているというわけでなく,交互に使う ことが大切 [補助] 地図検索に本当に似てるの? 広域図 拡大図 モデルの融合 以下の順で実施 ① エンティティの併合 ② 主キーの統一 ③ リレーションシップ付け • 一方のモデルを基準に他方のモデルを融合 • 主キーとして,今回はボトムアップモデルを採用 なぜなら – – トップダウンモデルでは、実在するデータ ボトムアップでは、現実的データ(ときにはコードを採用) 主キーの対比 実在するデータを主キーに 現実的な主キー 融合では こちらを採用 統合したモデル • • • 大きすぎて入りません。 教科書p.152-153の図9-3をご覧ください 図だけでなくモデルも大きすぎるので検証 不可能.こんなとき便利な機能は? ① サブジェクト分割 ② モデル分割 ③ テーブル分割 正解は次のスライド サブジェクト ごとに検証 ここでは以下のように分割して検証 –ネット販売 –顧客管理 –収納決済 –商品管理 –発注・仕入れ ボトムアップモデルを基軸に トップダウンモデルでの エンティティを追加していく トップダウンモデルのみに現れた エンティティに○が付いている 「発注・仕入れ」の場合で説明すると • 「書籍」には「商品在庫」として保持するものと 保持しないもの • 在庫がなければ「書籍卸(取次店)」へ「発注」 し「入荷」 • どの「書籍」をどの「書籍卸(取次店)」から仕 入れるかを示すために「取次書籍」が必要 – 「書籍卸(取次店)」と「書籍」は多対多の関係 – 「取次書籍」が必要 • 「書籍」の注文の書籍名と数量を示すため、 発注明細が必要 トップダウンとボトムアップを比較すると、 不足しているエンティティが見えてくる [補助] どうして見えてくるの? • トップダウンは、全 体を見ているが詳 細は見ていない。 • ボトムアップは、一 部分の詳細は見て いるが、全体を見て いない。 ボトムアップ トップダウン ここに死角あり 現行システムとの整合性 • インタネットを使わないシステムと融合 • 現行システムの要件 – 稼動中のDBのスキーマからモデルを引き出す リバース・エンジニアリング 通常の商用DBにはツールが用意されている でも、エンティティや属性の名は英語のまま – ポイントカード制、獲得ポイントでキャッシュバック – 店舗別の売り上げ集計システム エンティティの修正 • 現行モデルの「ポイント会員」のうち、氏名と住所は 新モデルの「顧客」に移す。 • 「購入履歴」は、現行モデルのほうが詳細化されて いたので、現行モデルを採用 • 現行モデルのデータが新モデルに移行できるかの 検査を怠るな! – 現行モデルにあって新モデルにないデータ項目がよく現 れる – 同じデータ項目でも型が異なっていて移行できないことが ある。 新旧で整合したモデル • 大きすぎて入りません。 • 教科書p.162-163の図9-10をご覧ください 整合モデルでのエンティティ定義表 • 大きすぎて入りません。 • 教科書p.164-169の表9-4をご覧ください (古典的)データモデリングのまとめ • トップダウンによるモデリング – エンティティ、データ項目、主キー、リレーションシップ • ボトムアップによるモデリング – 正規化 • 1つの事実は1箇所で管理 – CRUD分析 • タイミングによるエンティティの分割 • トップダウンとボトムアップの融合 – これらは1度実施すると終わるのでなく、繰返し実施する ことで、抜けがなくなる
© Copyright 2025 ExpyDoc