Slide 1

Slide 1 text

Tech x Marketing データマネジメント知識体系ガイドと ともに学ぶデータモデリング richard

Slide 2

Slide 2 text

Tech x Marketing データマネジメント知識体系ガイドと ともに学ぶデータモデリング richard Tech x Marketing データマネジメント知識体系ガイドと ともに学ぶデータモデリング richard

Slide 3

Slide 3 text

Tech x Marketing データマネジメント知識体系ガイドと ともに学ぶデータモデリング richard Tech x Marketing データマネジメント知識体系ガイドと ともに学ぶデータモデリング richard

Slide 4

Slide 4 text

672ページ 第1章 データマネジメント 第2章 データ取扱倫理 第3章 データガバナンス 第4章 データアーキテクチャ 第5章 データモデリングとデザイン 第6章 データストレージとオペレーション 第7章 データセキュリティ 第8章 データ統合と相互運用性 第9章 ドキュメントとコンテンツ管理 第10章 参照データとマスターデータ 第11章 データウェアハウジングとビジネスイン テリジェンス 第12章 メタデータ管理 第13章 データ品質 第14章 ビッグデータとデータサイエンス 第15章 データマネジメント成熟度アセスメント 第16章 データマネジメント組織と役割期待 第17章 データマネジメントと組織の変革

Slide 5

Slide 5 text

13,200円 第1章 データマネジメント 第2章 データ取扱倫理 第3章 データガバナンス 第4章 データアーキテクチャ 第5章 データモデリングとデザイン 第6章 データストレージとオペレーション 第7章 データセキュリティ 第8章 データ統合と相互運用性 第9章 ドキュメントとコンテンツ管理 第10章 参照データとマスターデータ 第11章 データウェアハウジングとビジネスイン テリジェンス 第12章 メタデータ管理 第13章 データ品質 第14章 ビッグデータとデータサイエンス 第15章 データマネジメント成熟度アセスメント 第16章 データマネジメント組織と役割期待 第17章 データマネジメントと組織の変革

Slide 6

Slide 6 text

定義: データモデリングとは、データ要件を洗い出し、分 析し、取扱スコープを決めるプロセスであり、データ要件 を記述し伝えるために、明確に定義されたデータモデルと 呼ばれる様式が用いられる。概念、論理、物理モデルが含 まれる

Slide 7

Slide 7 text

定義: データモデリングとは、データ要件を洗い出し、分 析し、取扱スコープを決めるプロセスであり、データ要件 を記述し伝えるために、明確に定義されたデータモデルと 呼ばれる様式が用いられる。概念、論理、物理モデルが含 まれる なるほど……!汗

Slide 8

Slide 8 text

今日の目的: モデリングに親しみを感じてもらう そのための参考情報・文献を紹介

Slide 9

Slide 9 text

しばらくDMBOK本を 飛び出した話が続きます

Slide 10

Slide 10 text

> 問題解決のために、物事の特定の 側面を抽象化したもの モデルとは?

Slide 11

Slide 11 text

モデルとは? 例:ピザの切り分け問題 ピザは真円ではない しかし真円とみなすと切り分け方法を 導ける

Slide 12

Slide 12 text

適当にカット 同じ重さになる まで再分配 モデルがなかったら??

Slide 13

Slide 13 text

適当にカット 同じ重さになる まで再分配 モデルがなかったら?? モデルがないと きれいに問題解決できない!

Slide 14

Slide 14 text

CGをつくるならワイヤフレーム 目的によって適したモデルは変わる https://chewypixels.com/projects/dOqVg1

Slide 15

Slide 15 text

モデルと数学

Slide 16

Slide 16 text

数学的なモデル例: 放物線 初速𝒗 角度𝛳 飛距離ℓ 最高到達点 h 投射高さy 0 重力加速度g

Slide 17

Slide 17 text

ボール表面の摩擦 ボールのわずかな歪み ボールの回転 風速 よいモデルは不必要な情報を考慮しない

Slide 18

Slide 18 text

数学的なモデルの利点 その分野における数学者たちの数十~数百年の積み重ねを利用できる モデルの持つ様々な性質を導ける 例) ● 行列なら固有値分解 ● 微分積分 ● 統計なら大数の法則や中心極限定理

Slide 19

Slide 19 text

データモデルの中のひとつである リレーショナルモデルは 数学に基づいています 後で話します

Slide 20

Slide 20 text

なぜソフトウェア開発でモデルを使う? ● 開発対象の問題に意識を集中するため ● 実装の詳細に引きずられない議論を可能にするため ● モデルを共通言語とし開発チーム内の認識を統一できる ○ ただしチーム内でモデルに関する共通知識を育てる必要性

Slide 21

Slide 21 text

ソフトウェア開発におけるモデルの表現方法 数式、図解、文章、ソースコード…解決したい問題に集中できる表現 モデリング 設計 ソフトウェア開発的には 重要: モデルから将来のバグや問題を見抜く

Slide 22

Slide 22 text

では、データモデルの表現方法は? データモデリング・スキーム 1.3.4 p165 ここからDMBOK本の内容に戻ります

Slide 23

Slide 23 text

モデルの表現方法 1.3.4 p.165 スキーム 表記法の例 リレーショナル IE(Information Engineering)、IDEF1X、Barker、Chen ディメンショナル ディメンショナル オブジェクト指向 UML ファクトベース ORM(Object Role Modeling)、ORM2、FCO-IM タイムベース データボールト、アンカーモデリング NoSQL ドキュメント、カラム、グラフ、キーバリュー

Slide 24

Slide 24 text

モデルの表現方法 1.3.4 p.165 スキーム 表記法の例 リレーショナル IE(Information Engineering)、IDEF1X、Barker、Chen ディメンショナル ディメンショナル オブジェクト指向 UML ファクトベース ORM(Object Role Modeling)、ORM2、FCO-IM タイムベース データボールト、アンカーモデリング NoSQL ドキュメント、カラム、グラフ、キーバリュー

Slide 25

Slide 25 text

ER図いろいろ UMLモデリング入門 児玉公信より

Slide 26

Slide 26 text

ER図 IE記法 学生 コース インストラクタ 四角がエンティティ

Slide 27

Slide 27 text

ER図 IE記法 学生 コース インストラクタ 線がリレーションシップ 履修する 教える

Slide 28

Slide 28 text

ER図 IE記法 学生 コース インストラクタ リレーションシップの多重度 履修する 教える

Slide 29

Slide 29 text

ER図 = エンティティ」リレーション図… エンティティってなに?

Slide 30

Slide 30 text

一般的に使われるエンティティカテゴリー 表7(p.157) カテゴリー 例 誰が(Who) 従業員、患者、選手、容疑者、顧客、ベンダー、… 何を(What) 製品、サービス、原材料、完成品、… いつ(When) 時間、日付、月、四半期、年、予定、会計年度、… どこ(Where) 郵送先住所、配送地点、ウェブサイトアドレス、… 何故(Why) 注文、返品、苦情、出勤、… どのように(HOW) 請求書、契約、合意書、… 集計(Measurement) 売上、項目数、支払額、…

Slide 31

Slide 31 text

実務に即したモデリングの参考になる書籍

Slide 32

Slide 32 text

個人的なお気に入り

Slide 33

Slide 33 text

注) 2017年のツイートなので今もt_wadaさんがこちらを参考にし ているかは不明です

Slide 34

Slide 34 text

2006 2008 2012 2016 2005 2020 2003 2009 2013 2019

Slide 35

Slide 35 text

リレーショナルモデルを勉強するモチベーションの1つ 費用対効果! ただし、人間費用対効果だけでは動かないので、気が向かなければ無理しない

Slide 36

Slide 36 text

正規化 1.3.6 (p.179)

Slide 37

Slide 37 text

リレーショナルモデルは集合論 p.49 リレーショナルデータモデルは集合論に基 づき数学的に定義された徹底的にフォーマルな モデル

Slide 38

Slide 38 text

リレーショナルモデルは集合論 正規化の効果: 更新時異常の防止 タップル挿入時・削除時・修正時異常 20ページ読むのに1週間くらいかかりました…

Slide 39

Slide 39 text

OLTPでは正規化は重要 Online Transaction Processing - 例: アプリケーションとバックエンドDB アプリケーションサーバ データベース 更新時異常を防ぎたい

Slide 40

Slide 40 text

OLAPでは正規化を意図的に崩すこともある Online Analytical Processing - 例: データウェアハウス データベース

Slide 41

Slide 41 text

OLAPでは正規化を意図的に崩すこともある Online Analytical Processing - 例: データウェアハウス データベース 自分の携わるシステムが OLTPかOLAPどちらの性格が強いか 見極める

Slide 42

Slide 42 text

なぜソフトウェア開発でモデルを使う? ● 開発対象(ドメイン)の問題に意識を集中するため ● 実装の詳細に引きずられない議論を可能にするため ● モデルを共通言語とし開発チーム内の認識を統一できる ○ ただしチーム内でモデルに関する共通知識を育てる必要性

Slide 43

Slide 43 text

開発チーム内で共通知識を育てる これだけだと幅が狭い 自分の仕事

Slide 44

Slide 44 text

開発チーム内で共通知識を育てる 自分の仕事 経験則を補う1冊で他のエンジニアに差がつく

Slide 45

Slide 45 text

開発チーム内で共通知識を育てる チームで学ぶ

Slide 46

Slide 46 text

開発チーム内で共通知識を育てる 経験則 理論 全員がここまで 学ぶ必要はない

Slide 47

Slide 47 text

開発チーム内で共通知識を育てる 経験則 正規化 集合論

Slide 48

Slide 48 text

開発チーム内で共通知識を育てる コンピュータ・サイエンス ソフトウェア・エンジニアリング

Slide 49

Slide 49 text

概念・論理・物理モデル 1.3.5 (p.173)

Slide 50

Slide 50 text

学校 学生 応募書類 概念モデル エンティティのみ 在籍させる 提出する

Slide 51

Slide 51 text

学校名 学校コード 学生番号 学校コード(FK) ファーストネーム ラストネーム 学生誕生日 応募書類番号 学生番号(FK) 応募書類提出日 論理モデル 属性を持つ 学校 学生 応募書類 在籍記録を持つ 提出する

Slide 52

Slide 52 text

STUDENT_NUM STUDENT_FIRST_NAM STUDENT_LAST_NAM STUDENT_BIRTH_DT SCHOOL_CD SCHOOL_NAM APPLICATION_NUM STUDENT_NUM(FK) APPLICATION_SUBMITION_DT 物理モデル テーブルスキーマと非常に近い STUDENT APPLICATION Submit

Slide 53

Slide 53 text

STUDENT_NUM STUDENT_FIRST_NAM STUDENT_LAST_NAM STUDENT_BIRTH_DT SCHOOL_CD SCHOOL_NAM APPLICATION_NUM STUDENT_NUM(FK) APPLICATION_SUBMITION_DT 物理モデル ほぼテーブルスキーマと同一 STUDENT APPLICATION Submit 適切な抽象度で議論する

Slide 54

Slide 54 text

モデルの表現方法 1.3.4 p.165 スキーム 表記法の例 リレーショナル IE(Information Engineering)、IDEF1X、Barker、Chen ディメンショナル ディメンショナル オブジェクト指向 UML ファクトベース ORM(Object Role Modeling)、ORM2、FCO-IM タイムベース データボールト、アンカーモデリング NoSQL ドキュメント、カラム、グラフ、キーバリュー

Slide 55

Slide 55 text

ディメンショナル - OLAP Cube 最初からクエリのためにデータをスライス クエリ

Slide 56

Slide 56 text

ディメンショナル リレーショナルモデルで実現するとスタースキーマ、スノーフレークスキーマ

Slide 57

Slide 57 text

ディメンショナルとOLAP YouTube What is OLAP? https://youtu.be/2ryG3Jy6eIY

Slide 58

Slide 58 text

モデルの表現方法 1.3.4 p.165 スキーム 表記法の例 リレーショナル IE(Information Engineering)、IDEF1X、Barker、Chen ディメンショナル ディメンショナル オブジェクト指向 UML ファクトベース ORM(Object Role Modeling)、ORM2、FCO-IM タイムベース データボールト、アンカーモデリング NoSQL ドキュメント、カラム、グラフ、キーバリュー

Slide 59

Slide 59 text

オブジェクト指向 DMBOK本5章ではUMLのクラス図のみ紹介 これだけではオブジェクト指向モデリ ングには物足りないのでは? 学生 Stdtno:integer strdt:date Prgm:txt ExpctGradedt:date ActlGraddt:date クラス名 属性 メソッド 1 *

Slide 60

Slide 60 text

オブジェクト指向 UMLのクラス図で表現できないこと コンストラクタの引数で依存関係を表現とか クラス図では表現できない、型による制約を はじめとしたテクニックこそが、モダンなオ ブジェクト指向モデリングでは重要な気がす る class C { //aとbはCのインスタンスより先に生成 construct(a:A, b:B){ … } }

Slide 61

Slide 61 text

モデルの表現方法 1.3.4 p.165 スキーム 表記法の例 リレーショナル IE(Information Engineering)、IDEF1X、Barker、Chen ディメンショナル ディメンショナル オブジェクト指向 UML ファクトベース ORM(Object Role Modeling)、ORM2、FCO-IM タイムベース データボールト、アンカーモデリング NoSQL ドキュメント、カラム、グラフ、キーバリュー この2つは私の知識が足りないのでスキップ

Slide 62

Slide 62 text

モデルの表現方法 1.3.4 p.165 スキーム 表記法の例 リレーショナル IE(Information Engineering)、IDEF1X、Barker、Chen ディメンショナル ディメンショナル オブジェクト指向 UML ファクトベース ORM(Object Role Modeling)、ORM2、FCO-IM タイムベース データボールト、アンカーモデリング NoSQL ドキュメント、カラム、グラフ、キーバリュー

Slide 63

Slide 63 text

Quoraの興味深いエントリ やや煽りがつよいが、歴史を踏まえてNoSQLのハ イプ・サイクルを紹介 > MongoDBの様なNoSQLに勢いがあるのは何故ですか?SQLと比 べてどんな利点や欠点がありますか? https://bit.ly/3DmAOvv

Slide 64

Slide 64 text

Quoraの興味深いエントリ Q: MongoDBの様なNoSQLに勢いがあるのは何故です か?SQLと比べてどんな利点や欠点がありますか? A: この質問はちょっと古いですね。NoSQLに勢い があったのは2009-2015年にかけての頃です。 2018年現在は、PostgreSQL 10やMySQL 8などRDBMS (以下、わかりやすくSQLと呼びます)でJSONをネ イティブに扱える(インデックスを貼ったりツ リーの一部を操作したり)のがスタンダードに なったので、むしろこれらSQLのほうに勢いがあり ます

Slide 65

Slide 65 text

Quoraの興味深いエントリ …(中略) ただの水平分散というのはベストケースでO(n)の 性能しか出ず、 …(中略) アルゴリズム的には「ナイーブ」とか「ブルート フォース(力任せ)」と揶揄される悪手です。

Slide 66

Slide 66 text

Quoraの興味深いエントリ …(中略) この対数化を実現しているのが、実はSQLのイン デックスで使われているB-treeというアルゴリズ ムで、このインデックスがあるがゆえに、テーブ ルの行数が10倍、1万倍、1億倍になっても性能は1 億分の1ではなく8分の1ぐらいのおだやかな性能劣 化で収まるのです。こういう圧倒的なパワーこそ がサイエンスと呼ぶにふさわしいものです。 …(中略) そんなわけで、NoSQLを語るときに「性能」を持ち 出す人は、はっきり言って素人だと思います。

Slide 67

Slide 67 text

今はSQLもNoSQLも両方使う時代 SQL: ● SQL製品の進化 NoSQLハイプ・サイクル 性能上がらない 運用大変… NoSQL知見がたまる NoSQL: ● SQLライクなインターフェース ○ 例: KSQL、GAQL、… ● MapReduce操作の多くを表面上は SQLで置き換え ● SQLの裏にあるDB設計・実装は多彩 ● マネージドNoSQL製品で運用負担減 両方使うので、今が一番勉強は大変… イマココ

Slide 68

Slide 68 text

アクティビティ 2 (p.181)

Slide 69

Slide 69 text

アクティビティ 2.1 データモデリング計画 2.2 データモデルの構築 2.2.1 フォワードエンジニアリング ここまでの話と参考文献を抑えておけば、理解できる 実行できるかどうかは別の話

Slide 70

Slide 70 text

2.2.2 リバースエンジニアリング (p.186)

Slide 71

Slide 71 text

2.2.2 リバースエンジニアリング (p.186) DBからモデルを起こせるからといって それだけでよいわけではない

Slide 72

Slide 72 text

2.2.2 リバースエンジニアリング (p.186) モデリング 設計 ソフトウェア開発的には デザイン 適切な抽象度と適切なツール リバースエンジニアリングに任せっぱなしではいけない 議論と試行錯誤で設計を洗練させる = フォワードエンジニアリング

Slide 73

Slide 73 text

まとめ

Slide 74

Slide 74 text

まとめ ● モデル = 問題解決のための抽象化 ● 場面に応じた適切な抽象度 ○ 概念、論理、物理 ● 数学的なモデルなら性質を導出しやすい ○ 例: リレーショナルモデルの正規化 ● 数学的でないモデルは経験則を利用 ○ 自分の経験 + 先人の経験、パターン・アンチパターン ● 開発チームが共通言語としてのモデルに習熟する必要

Slide 75

Slide 75 text

これからの勉強を少しでも楽しくする案内になれば幸いです!