SlideShare a Scribd company logo
Usage-Driven
Database Design
Chapter 4
一、二章では
データモデリングには
• 人間の理解できる形で表現する論理データモデリング
• PCで実際に運用する物理データモデリング
がある
論理データモデリングからやると
長い期間、修正の少ない
データベース設計ができる
三章では
人が理解できるデータモデルとは
エンティティ(人、車などのもの)どうしが
どんなリレーションシップ(購入)か
どんな属性(色や購入日)かを
図示したもの
リレーションや属性は様々な条件があり
それに沿って構築する
何を覚えればいいの?
論理データモデリングってなにすんだよ?
質問、可視化
これを繰り返して納得のいくまで必要な情報関係を整理する
作ったモデルがでかすぎて分析できないんだけど?
モデルを分割しよう
分け方はカテゴリと機能別、近辺のを取り上げる三つがある
データモデリングのプロジェクトがうまくいかない
プロジェクトマネジメントを参考に進める
論理データモデルの作成の流れ
情報収
集
情報分析
モデル
作成 論理モデルの作成の流れ
1. 情報を集める
2. 集めた情報を分析
3. モデルの作成
4. 1に戻る
論理モデルって?
情報をER図等で人の理解
できる形でまとめたもの
インタビューする人と専門家を選ぼう
問題:専門家を騙るめんどくさいやつ
何も知らない高齢者 変化にキャッチアップ
できない専門家
インタビューをさせて
くれないマネージャー
事前情報でインタビューの準備をしよう
事前情報で仮のエンティティやリレーションを設定
アンケートやレポート、スクリーンショットなどの
情報を使ってER図を作るとインタビューしやすい
なんでインタビュー前に作るの?
インタビューで質問することを作っておくこと
ER図で可視化しインタビューを進めやすくする
初めてのインタビュー
インタビューの目的を言おう
誇張や嘘を言うのはやめよう
質問をしよう
何をしている?
何が好き?嫌い?
など 目標
10個のエンティティ
を作ろう
事前にエンティティ作っておくと
関係あるか聞けるんで楽に見つけられる
リレーションをみつけよう
• 専門用語はなるべく避ける
この時点でModalityやCardinality等は気にしない
例.
CustomerはAccountエンティティとどう関連している?
社員と部署の関連はどうだろう?
ミーティングと確認作業
一人のインタビュー者につき複数の
ミーティングも…
なぜ?
• 多くの新しい情報がある
• 得た情報を整理して
次質問することないようにする
モデルを見せる
• モデル全体の確認
• 正しい箇所
• 拡張できそうな点
論理データモデルの作成の流れ
情報収
集
情報分析
モデル
作成 論理モデルの作成の流れ
1. 情報を集める
2. 集めた情報を分析
3. モデルの作成
4. 1に戻る
論理モデルって?
情報をER図等で人の理解
できる形でまとめたもの
収集データの分析
集めたエンティティ、リレーション、属性の詳細を作る
• 論理データモデルはダイアグラムだけでなく
理解できる説明も必要
• 無理に完ぺきを狙わなくてもいい下書きとして書く
• 形式化することで足りない要素を見つけていく
一例(詳しくはappendixBを確認)
Entity type: Proper
Attribute:
メモリ:16GB
Unique ID
Entity Name:legionT510i
SuperType:PC
RelationShips:購入
Number : many
Constraints:制約
ドメインやリレーションの詳細も
決めていく
どんな変数?
論理データモデルの作成の流れ
情報収
集
情報分析
モデル
作成 論理モデルの作成の流れ
1. 情報を集める
2. 集めた情報を分析
3. モデルの作成
4. 1に戻る
論理モデルって?
情報をER図等で人の理解
できる形でまとめたもの
モデルの作成
過去の二つのプロセスで集めた情報をもとに
モデルを作成、修正、拡張
何回繰り返すの?
仕事や事業で必要な情報を収集できたといえるまで
質問からモデルへの構築
どうやってエンティティ作るの
質問をして可視化する
genogramみたいに発言を図示していく
Employees can reports to either a supervisor
or the Human Resource Department
Employees
Supervisor
一般名詞をエンティティとして
取り出す
どうやってエンティティ作るの
質問をして可視化する
genogramみたいに発言を図示していく
Employees can reports to either a supervisor
or the Human Resource Department
Employees
Supervisor Department
人事部は固有名詞なので部門でくくり
属性として部門名:人事部を設定
どうやってエンティティ作るの
質問をして可視化する
genogramみたいに発言を図示していく
Employees can reports to either a supervisor
or the Human Resource Department
Employees
Supervisor Department
雇用者は上司や部門に報告するので
リレーションはreport to
Reports to
どうやってエンティティ作るの
質問をして可視化する
genogramみたいに発言を図示していく
Employees can reports to either a supervisor
or the Human Resource Department
Employees
Supervisor Department
どちらかと書いてあるので
Exclusionで表現
Reports to
どうやってエンティティ作るの
質問をして可視化する
genogramみたいに発言を図示していく
Employees can reports to either a supervisor
or the Human Resource Department
Employees
Supervisor Department
canは強制ではないので
オプションをつける
Reports to
どうやってエンティティ作るの
質問をして可視化する
genogramみたいに発言を図示していく
Employees can reports to either a supervisor
or the Human Resource Department
Employees
Supervisor Department
複数形かどうかで
多重度を設定する
Reports to
エンティティ対応の一部
現実の単語 対応するE-R図
名詞 ex.車 Proper エンティティ
固有名詞 ex.人事部 インスタンス
他動詞 ex ~に報告する リレーションシップ
自動詞 属性
動名詞 Associative エンティティ
形容詞 ex.美しい Properエンティティの属性
副詞 Associativeエンティティの属性
多く、一つなど数を示す単語 多重度
must,canなど必須かどうかを示す単語 モダリティ
AとB(And) など Conjunction
または、どちらか など Exclusion
単語とER図対応の一例
車
色:黒い 形容詞
顧客
属性を持ったエンティティ=インスタンス
車 名詞
買う
買う:動詞 リレーションシップ
副詞がある->買うをAssociativeにする
副詞を属性に
黒い車 固有名詞
得られた情報は何か整理しよう
二つの方法が有効
迅速なインタビューのフィードバック
• 聞いたことを確認する
• 質問者に積極的な会話機会を与える
Formal Walk Throghs
インタビューで得た情報を分析し、結果や追加情報をわかりやすくする
初期のインタビュー後になんどか行う
インタビューのフィードバック
インタビューの行動割合
答える 提案する
質問者のたいていは
技術的に精通した人ではない
控えめな発言になりやすい
聞いたことの理解を誤認しないよう
対象範囲を特定する
例 every account is owned by a customer
アカウントとは一つを指すのか
企業のような共同で扱う場合の考えなど
Formal work throghs
何をするのか
1. 質問者にダイアグラムやエンティティ等を
少しづつ、確認していく
2. モデルをインタビューで得た形態に戻す
(リバースエンジニアリング)
Employees can reports to
either a supervisor or the
Human Resource Department
戻す
モデルの分析効率化
モデルを効率よく扱う
企業で扱うような規模の大きいERモデルは
• 多くのエンティティ
• 多くのリレーションシップ
分割して見やすく、分析しやすくしよう!
• Subject Areas
• Entity Fragements
• Neighborhood Diagrams
Subject Areas
特定の領域に関連するモデルにわける
カテゴリ化
例. 顧客(顧客、アドレス、購入履歴)
目的
• カテゴリ化したモデルをそれぞれ分析
分担がしやすい
• 顧客に関連した情報を見せやすい
Entity Fragments
目的に応じて必要な
リレーションシップやエンティティを扱うこと
例. 顧客のアカウントの更新
必要な要素 顧客のアカウントやクレジットなど
Subject Areasとの違い
データの種類で分けるか、仕事内容で分けるか
Neighborhood Diagrams
エンティティとその周辺のリレーションに分割する
近くにあるものは関連性が高い
100個のエンティティ
で作られたモデル
100個のダイアグラム
Cutomer
Account
Material
ブリッジとスタブ
エンティティの対応が
見づらい
ブリッジ
スタブ
モデリングの
ベストプラクティス
なんで失敗するのか
データモデリングが抽象的な仕事
問題や解決策を
概念化できる人がいない
技術や道具が活かせない
モデリングの設計は
様々
答えはたくさんある
成功させるためには?
IT業界のプロジェクトと同じように取り組む
必要な各要素に特化した人物を連れてくる
• 優れたITスキルを持つ人
• 調査対象に関して優れたスキルを持つ人
• コストの調整等プロジェクトに関心を持つ人
• 組織内で十分に優れた地位を持つ人
ルールや原則を決める
プロジェクト途中で無益な言い争いをなくす
ルールを決める理由
ルール:データモデリングにおける構文や意味を示す
データモデリングをプロジェクトにかかわる人すべてが
共有し使いこなせるようにするため
対象:プログラマー、システムデザイナー、DBデザイナー
例. エンティティやドメインの定義
理論的に構築することを意識づける
抽象的:派生データを組み込んではいけない
計画
事前にプロジェクトの計画
必要要素
• 予算
• スケジュール
• 資源(チームメンバーを含む)
問題
マネージャーのモデリングに対する造形と設計コストの理解
を強く求められること
チーム
プロジェクトを任せられるデータモデラーを集めよう
どんなデータモデラー?
• その領域で経験を積んでいる人
中途
• 実務経験はないが学ぶ意欲が見られる人間
新卒
ユーザー
ユーザーや調査対象の専門家からの
情報をうまく引き出せる環境を作る
社会は思ったより融通が利かない
例 ロシアのとある企業の倒産
新しく、安く、高性能な機材を持っていた
理由:利用許可が下りない
ユーザーコントロール
ユーザーの意見および管理スタッフの意見
によりすぎた結果
専門家とそりが合わない
例. セキュリティ会社でのモデリング
Portfolioやpositionは派生属性
だからモデルに組み込むのは
両方ともモデルに組み込め
わかりにくいだろ
コントロールのコツ
• 何をやっているのかを知る
• 何をやっているのか、なぜやるのかを伝える
• 計画にそって進めよう
ルールに従う
• ほかの参加者にも計画の順守を徹底させる
ルールを共有する
プロジェクトスタッフのコントロール
素人 専門家
自信
ここ
技術スタッフの暴走
下手に知識がある分
データモデリングをできない人が
主義主張が激しい
ダニングクルーガー効果
素人ながらの質問~がやばいのはこれ
ツールやテクニックだけに依存するな
データ分析やモデリングには
便利なツールがいっぱい
使ってもいいが十分に理解しておくこと
講義の目的と同じ
ツールを使いこなすバカは
ただ作業が速いだけの馬鹿だ
Approach Modeling Tools
むだな分析に時間をかけすぎないこと
完璧にこだわりすぎてデータモデルの分析に時間をかけすぎて
プロジェクトを失敗する
理由
• 信頼性を失うことを恐れる
• どのくらい、どのように使われるかを想定していない
ふせぐために
• 新しい情報を集めても恩恵が少ないとき
• 情報の重要さを示す理由がこじつけレベルのとき
• 十分な情報が集まったと感じた時
データモデルの停止
データモデルの確立のプロセスから
コントロールのプロセスへと変更
メンテナンスモードに入ったことを知らせる
データモデルの変更、相談を共有するため
すべての変更のリクエストはいきなり通さず
変更管理プロセスに通す
どの変更が通ったか、相談段階かを可視化する
変更リクエストの扱い
変更リクエスト
早急な変更の適用が求められる
バグなどで属性の追加が必要になったとき
現段階の終わりまで必要な時
アップデート版として
出したいときモデリングの修正順序を
優先付けをする
成果物
物理データモデラーに渡すもの/論理データモデリングのゴール
成果物
以下の成果物を物理データモデラーが扱う
• ER図
• LDMのオブジェクト定義
• リレーション、エンティティ、属性など
• ノート
• コメント
• アドバイス
• 困難な点や質問等のコミュニケーション要素
ER図と定義集のスクリーンショット

More Related Content

PPTX
深層学習よもやま話
PPTX
Database Modeling (2018)
PPTX
モデリングの神髄
PPTX
Usage-Driven Database Design Chapter5 3
PDF
データベース09 - データベース設計
PPTX
Machine learning
PDF
データサイエンティストとは? そのスキル/ナレッジレベル定義の必要性
PPTX
東北大学AIE - 機械学習入門編
深層学習よもやま話
Database Modeling (2018)
モデリングの神髄
Usage-Driven Database Design Chapter5 3
データベース09 - データベース設計
Machine learning
データサイエンティストとは? そのスキル/ナレッジレベル定義の必要性
東北大学AIE - 機械学習入門編

Similar to Usage-Driven Database Design Chapter4 (17)

PDF
ビッグデータ革命 クラウドがコモデティ化する「奇跡」
PPTX
20100324 勉強会資料(ドメイン駆動)
PPTX
概念モデリング再入門 + DDD
PPTX
早稲田大学 理工メディアセンター 機械学習とAI セミナー: 機械学習入門
PPTX
Data-driven Design: 4つの技法 InfoPathを用いたスケーラブル SharePointソリューション
PDF
ICDE 2014参加報告資料
PDF
イミュータブルデータモデル(入門編)
PDF
リレーショナルデータベースとの上手な付き合い方 long version
PDF
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
PDF
文書をプログラムにする技術 - SimpleModeler + Mindmap & SmartDox
PDF
Intoroduction of Bad Data Handbook
PDF
静的モデル(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第4回】
PDF
データ・テキストマイニング
PDF
SIGMOD'10勉強会 -Session 8-
PPTX
20091207
PDF
先を行くユーザーさんにアンケートでできる定性調査を
PDF
クラウド・モデリング
ビッグデータ革命 クラウドがコモデティ化する「奇跡」
20100324 勉強会資料(ドメイン駆動)
概念モデリング再入門 + DDD
早稲田大学 理工メディアセンター 機械学習とAI セミナー: 機械学習入門
Data-driven Design: 4つの技法 InfoPathを用いたスケーラブル SharePointソリューション
ICDE 2014参加報告資料
イミュータブルデータモデル(入門編)
リレーショナルデータベースとの上手な付き合い方 long version
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
文書をプログラムにする技術 - SimpleModeler + Mindmap & SmartDox
Intoroduction of Bad Data Handbook
静的モデル(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第4回】
データ・テキストマイニング
SIGMOD'10勉強会 -Session 8-
20091207
先を行くユーザーさんにアンケートでできる定性調査を
クラウド・モデリング
Ad

Usage-Driven Database Design Chapter4