データモデリング トップダウンモデルと ボトムアップモデルの融合 データモデリング トップダウンモデルと ボトムアップモデルの融合
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度実施すると終わるのでなく、繰返し実施することで、抜けがなくなる