---
title: データモデリングを体験しよう-理論編
tags: 
author: [鈴木利房](https://convert.docswell.com/user/toshifusa)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/8EDLMGN2JG.jpg?width=480
description: データモデリングを体験しよう!! #2の配付資料  https://tm-study.connpass.com/event/341059/  このワークショップでは、データモデリング手法であるTMの理論概要を学びながら、実際のモデリングを疑似体験します。TMはシンプルな6つの手順に基づいており、参加者は具体的な事例を通じて、モデリングの基本を理解します。また、データモデリングにおける典型的な課題や、その解決方法についても触れ、実務に役立つスキルを身につけることを目的としています。
published: January 26, 25
canonical: https://convert.docswell.com/s/toshifusa/K7R9XN-2025-01-26-162142
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/8EDLMGN2JG.jpg)

データモデリングを
体験しよう!!
（理論編）
主催：TMの会


# Page. 2

![Page Image](https://bcdn.docswell.com/page/V7P2R35L78.jpg)

自己紹介
• 名前 鈴木利房
• 職業 データベースエンジニア
• X
@toshifusa
DB運用の合間に、テーブル設計レ
ビュー、クエリレビューなど担当
しています


# Page. 3

![Page Image](https://bcdn.docswell.com/page/2JVDR4P6JQ.jpg)

主催者のTMの会とは
• 佐藤正美さん考案のモデリング手法（TM）のファンクラブ
• 月一でTMの勉強会を開催しています


# Page. 4

![Page Image](https://bcdn.docswell.com/page/5EGYM1P2EL.jpg)

事業分析・データ設計のためのモデル作成技術入門
TMとは
• TMは佐藤正美さんが考案したデータモデリング手法
• とってもシンプルな6つの手順（文法）で成り立っています
• 手順が少ないので覚えるのが簡単です
• 公式情報
• 書籍
• 事業分析・データ設計のためのモデル作成技術入門
• Webサイト
• 株式会社SDI


# Page. 5

![Page Image](https://bcdn.docswell.com/page/4JQMRD297P.jpg)

このワークショップの目的
• TMの理論概要を学ぶ
• TMに準拠したモデリングを疑似体験する
• モデリングを疑似体験することで、理論を理解しやすい状態を
作る


# Page. 6

![Page Image](https://bcdn.docswell.com/page/K74V8ZPRJ1.jpg)

データモデリングあるある
• 先輩のER図を見よう見まねで覚えた
• 担当になったシステムのER図を参考にして覚えた
• 本で勉強したが、実際にやってみると判断に迷う
• なんとなくやれているが、いまいち確信が持てない
• データモデルを見て違和感を感じるが、言語化して指摘するこ
とができない


# Page. 7

![Page Image](https://bcdn.docswell.com/page/LJ132R9V7G.jpg)

データモデリングの手順


# Page. 8

![Page Image](https://bcdn.docswell.com/page/GJWPR1Q372.jpg)

TMの手順
1. モノを集める
2. モノを並べる
3. 関係を構成する
4. 集合を作る
5. 多値を排除する
6. クラスで整える


# Page. 9

![Page Image](https://bcdn.docswell.com/page/4EZKRPWGE3.jpg)

TMの手順
1. モノを集める
2. モノを並べる
3. 関係を構成する
4. 集合を作る
5. 多値を排除する
6. クラスで整える


# Page. 10

![Page Image](https://bcdn.docswell.com/page/Y76QRMGQ7V.jpg)

1. モノを集める


# Page. 11

![Page Image](https://bcdn.docswell.com/page/G75R8ZV2E4.jpg)

受注入力画面
• まずは、一度にひとつの商品を入力できる受注入力画面をモデ
リングしてみます
受注入力
受注番号 999999999
顧客番号
999999999
受注日
顧客名称
NNNNNNNN
顧客区分コード
x
YYYY/MM/DD
商品コード
商品名称
商品単価
受注数
xxxxxx-xxx
NNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNN
999,999
9999


# Page. 12

![Page Image](https://bcdn.docswell.com/page/9J2DKR31JR.jpg)

語彙を抽出する
受注入力
受注番号 999999999
顧客番号
999999999
受注日
顧客名称
鈴木利房
顧客区分コード
1
YYYY/MM/DD
商品コード
商品名称
商品単価
受注数
xxxxxx-xxx
NNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNN
999,999
9999


# Page. 13

![Page Image](https://bcdn.docswell.com/page/DEY2ND14EM.jpg)

左に番号・コード類、その他は右に配置


# Page. 14

![Page Image](https://bcdn.docswell.com/page/VJN8X62678.jpg)

仕訳された状態


# Page. 15

![Page Image](https://bcdn.docswell.com/page/YE9K8L1RE3.jpg)

番号・コード類の数だけ箱を作る


# Page. 16

![Page Image](https://bcdn.docswell.com/page/GE8R8X4GJD.jpg)

番号・コード類を左側に転記して元帳を
作る


# Page. 17

![Page Image](https://bcdn.docswell.com/page/LELKR86XJR.jpg)

項目を右側に転記する


# Page. 18

![Page Image](https://bcdn.docswell.com/page/4JM2R653JW.jpg)

箱に名前をつける
※入力画面の箱は不要なので削除します


# Page. 19

![Page Image](https://bcdn.docswell.com/page/PJRMRP3RE9.jpg)

ここまでの手順のまとめ
1. まず最初に、画面や帳票から情報を抜き出して、いわゆる非
正規化された状態を作ります
2. 左側に番号、コード類（総称して個体指定子と呼びます）、
その他は右側に配置します
3. その後、個体指定子ごとに元帳を作り、関係する項目を集め
ます


# Page. 20

![Page Image](https://bcdn.docswell.com/page/PEXVR34Y7X.jpg)

解説
• TMではモノを次のように定義します
モノである = 個体指定子を付与されている管理対象である
• 個体指定子は、xx番号、xxコードという記号が使われています


# Page. 21

![Page Image](https://bcdn.docswell.com/page/3EKQRYZ4ED.jpg)

解説
• 個体指定子1つを使って、1つの箱を作ります
• 2つ以上の個体指定子を使って箱は作りません
• 個体指定子ごとに箱を作るので、誰が作成しても箱の数は同じ
になります


# Page. 22

![Page Image](https://bcdn.docswell.com/page/L73P89DDE5.jpg)

注意事項
• 項目名はユーザー言語なので、勝手に変えないこと
• モデリングの段階で、主キー、一意性、データ型などの実装に
関する事を気にしないこと


# Page. 23

![Page Image](https://bcdn.docswell.com/page/87DLMGP2EG.jpg)

出荷入力画面
• 出荷入力画面をモデリングしてみましょう
• 受注一覧から遷移してきて、出荷番号と出荷日を入力します
出荷入力
受注番号 999999999
顧客番号
999999999
受注日
顧客名称
鈴木利房
顧客区分コード
1
YYYY/MM/DD
出荷番号 999999999
出荷日
YYYY/MM/DD
商品コード
商品名称
商品単価
受注数
xxxxxx-xxx
NNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNN
999,999
9999


# Page. 24

![Page Image](https://bcdn.docswell.com/page/VJP2R3NLJ8.jpg)

語彙を抽出する
出荷入力
受注番号 999999999
顧客番号
999999999
受注日
顧客名称
鈴木利房
顧客区分コード
1
YYYY/MM/DD
出荷番号 999999999
出荷日
YYYY/MM/DD
商品コード
商品名称
商品単価
受注数
xxxxxx-xxx
NNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNN
999,999
9999


# Page. 25

![Page Image](https://bcdn.docswell.com/page/2EVDR4K6EQ.jpg)

転記する
重複していない項目だけを箱に転記して、名前を付ける
※ (C) は重複項目を表すMODEBIの便利機能（TMの文法ではない）


# Page. 26

![Page Image](https://bcdn.docswell.com/page/57GYM1Q27L.jpg)

請求入力画面
• 請求入力画面をモデリングしてみましょう
• 出荷一覧から遷移してきて、請求番号と請求日を入力します
請求入力
出荷番号 999999999
顧客番号
999999999
出荷日
顧客名称
鈴木利房
顧客区分コード
1
YYYY/MM/DD
請求番号 999999999
請求日
YYYY/MM/DD
商品コード
商品名称
商品単価
受注数
xxxxxx-xxx
NNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNN
999,999
9999


# Page. 27

![Page Image](https://bcdn.docswell.com/page/4EQMRDK9JP.jpg)

語彙の抽出
請求入力
出荷番号 999999999
顧客番号
999999999
出荷日
顧客名称
鈴木利房
顧客区分コード
1
YYYY/MM/DD
請求番号 999999999
請求日
YYYY/MM/DD
商品コード
商品名称
商品単価
受注数
xxxxxx-xxx
NNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNN
999,999
9999


# Page. 28

![Page Image](https://bcdn.docswell.com/page/KJ4V8ZKRE1.jpg)

語彙の抽出


# Page. 29

![Page Image](https://bcdn.docswell.com/page/LE132RXVJG.jpg)

ここまでの状態


# Page. 30

![Page Image](https://bcdn.docswell.com/page/GEWPR1N3J2.jpg)

TMの手順
1. モノを集める
2. モノを並べる
3. 関係を構成する
4. 集合を作る
5. 多値を排除する
6. クラスで整える


# Page. 31

![Page Image](https://bcdn.docswell.com/page/47ZKRP3G73.jpg)

2. モノを並べる


# Page. 32

![Page Image](https://bcdn.docswell.com/page/YJ6QRMXQJV.jpg)

モノを2種類に分類する
• Event
日付が帰属するモノ
• Resource Event以外のモノ（Eventの補集合）


# Page. 33

![Page Image](https://bcdn.docswell.com/page/GJ5R8ZX274.jpg)

モノを2種類に分類する


# Page. 34

![Page Image](https://bcdn.docswell.com/page/LE3P89X1J5.jpg)

Eventの特性
• Eventの日付として認められるのは、出来事、取引上の過去日付
のみ
○
×
×
×
受注日、発送日、請求日、入金日
適用開始日、有効期間開始日（日付型のアトリビュート）
従業員入社日、部門設立日（ResourceにEventが混入）
レコード登録日、レコード更新日（メタデータ）


# Page. 35

![Page Image](https://bcdn.docswell.com/page/8EDLMG2KJG.jpg)

Eventを時系列に並べる


# Page. 36

![Page Image](https://bcdn.docswell.com/page/V7P2R31378.jpg)

ここまでのまとめ
• モノを2種類に分類する
• 日付が帰属するモノをEvent
• それ以外はResource
• Eventの日付は行為や取引上の過去日付のみ
• Event（出来事、行為、取引）を時系列に並べる
• ResourceはEventの周りに並べる


# Page. 37

![Page Image](https://bcdn.docswell.com/page/2JVDR4YNJQ.jpg)

解説
• モノを並べて「構造」を作るため、モノを2種類に分けます
• 全順序（値の大小関係で並べられる）
• 日付の大小関係（時系列）で並ぶモノをEventという
• 半順序（なんらかのやり方で並べる）
• Event以外のモノをResourceという


# Page. 38

![Page Image](https://bcdn.docswell.com/page/5EGYM195EL.jpg)

TMの手順
1. モノを集める
2. モノを並べる
3. 関係を構成する
4. 集合を作る
5. 多値を排除する
6. クラスで整える


# Page. 39

![Page Image](https://bcdn.docswell.com/page/4JQMRDWL7P.jpg)

3.関係を構成する


# Page. 40

![Page Image](https://bcdn.docswell.com/page/K74V8ZK5J1.jpg)

関係の組み合わせ
TMでは法則化されている
ふたつのモノの間の関係
1. EventとResourceの関係（出来事にモノが関与する）
2. EventとEventの関係（先行Eventが後続Eventに関与する）
3. ResourceとResourceの関係（モノとモノから新たなモノを作る）
ひとつのモノの関係
4. 再帰（ひとつのモノからメンバーをいくつか選んで並べる）


# Page. 41

![Page Image](https://bcdn.docswell.com/page/LJ132RX27G.jpg)

関係を構成する


# Page. 42

![Page Image](https://bcdn.docswell.com/page/GJWPR1N272.jpg)

EventとResourceの関係
• 出来事にモノが関与する
• Resourceの個体指定子をEvent
に挿入する


# Page. 43

![Page Image](https://bcdn.docswell.com/page/4EZKRP34E3.jpg)

ここまでのモデル図


# Page. 44

![Page Image](https://bcdn.docswell.com/page/Y76QRMXG7V.jpg)

EventとEventの関係
• 先行Eventが後続Eventに関与
する
• 「先行-後続」関係


# Page. 45

![Page Image](https://bcdn.docswell.com/page/G75R8ZXXE4.jpg)

ここまでのモデル図


# Page. 46

![Page Image](https://bcdn.docswell.com/page/9J2DKRXQJR.jpg)

関係の対応性
一対一
一対多


# Page. 47

![Page Image](https://bcdn.docswell.com/page/DEY2ND8YEM.jpg)

ここまでのモデル図
このモデルでは、ひとつの受注に対して、ひとつの出荷、ひとつ
の請求が対応する事が示されている


# Page. 48

![Page Image](https://bcdn.docswell.com/page/VJN8X6QR78.jpg)

多対1、多対多の場合
• 対応表を作成する
• このモデル図では、複数の受
注をまとめて出荷することが
ある事が示される


# Page. 49

![Page Image](https://bcdn.docswell.com/page/YE9K8LDZE3.jpg)

EventとEventの文法まとめ
• 先行Eventが1の場合、先行Eventの個体指定子を後続Eventに挿入
する
• 先行Eventが複数の場合、対応表を作成する


# Page. 50

![Page Image](https://bcdn.docswell.com/page/GE8R8X5YJD.jpg)

お気に入り商品
• ユーザーはお気に入り商品を管理できるとします
• ユーザーのお気に入り商品をモデリングしてみましょう
マイページ：お気に入り一覧
顧客番号
999999999
顧客名称
鈴木利房
商品コード
商品名称
商品単価
xxxxxx-xxx
NNNNNNNNNNNNNNNNNNNNNNNNNNNN
999,999


# Page. 51

![Page Image](https://bcdn.docswell.com/page/LELKR8Y9JR.jpg)

ResourceとResourceの関係
• モノとモノから新たなモノを
作る
• 新たなモノを対照表という


# Page. 52

![Page Image](https://bcdn.docswell.com/page/4JM2R6NVJW.jpg)

対応表と対照表
対応表
対照表


# Page. 53

![Page Image](https://bcdn.docswell.com/page/PJRMRPDWE9.jpg)

対応表と対照表
• 作りは同じだが、意味が異なるので区別している
• 対応表は単なるマッピングリスト
• 対照表は意味を持っている
• ResourceともEventとも解釈ができる
• 「顧客.商品 対照表」は、お気に入りにもなるし、クチコミにもなる
• 対照表はResourceの束なので、さらにResourceと関係を構築し、
新たな対照表を作ることができる


# Page. 54

![Page Image](https://bcdn.docswell.com/page/PEXVR31V7X.jpg)

在庫は構成されたモノ（対照表）である
構成の仕方は次の3通り
1. R((倉庫, 棚), 製品)
2. R(倉庫, (棚, 製品))
3. R((倉庫, 製品), 棚)


# Page. 55

![Page Image](https://bcdn.docswell.com/page/3EKQRY25ED.jpg)

在庫の例
（倉庫に設置された棚に商品を保管する）
倉庫と棚の組合せが管理されている


# Page. 56

![Page Image](https://bcdn.docswell.com/page/L73P8941E5.jpg)

在庫の例
（商品と棚をひと組にして倉庫に保管する）
棚（台座）と商品の組合せが管理されている


# Page. 57

![Page Image](https://bcdn.docswell.com/page/87DLMGQKEG.jpg)

在庫の例
（倉庫に保管された製品を棚に積載する）
倉庫と商品の組合せが管理されている


# Page. 58

![Page Image](https://bcdn.docswell.com/page/VJP2R3L3J8.jpg)

製品はモノか
1. R((生地, サイズ), カラー)
2. R((生地, カラー), サイズ)
3. R(生地, (サイズ, カラー)) は省略


# Page. 59

![Page Image](https://bcdn.docswell.com/page/2EVDR4QNEQ.jpg)

裁断してから染める（後染め）
サイズ.生地は裁断Event、カラー.サイズ.生地は染色Eventと解釈できる


# Page. 60

![Page Image](https://bcdn.docswell.com/page/57GYM1W57L.jpg)

染めてから裁断する（先染め）
対照表の組合せる順番でプロセス構成が逆転する


# Page. 61

![Page Image](https://bcdn.docswell.com/page/4EQMRD3LJP.jpg)

セット商品
• 商品を組み合わせて、ひとつの商品にする事があります
• セット商品をモデリングしてみましょう
セット商品登録
商品コード
xxxxxx-xxx
商品名称
NNNNNNNNNNNN
商品コード
商品名称
数量
xxxxxx-xxx
NNNNNNNNNNNNNNNNNNNNNNNNNNNN
999
xxxxxx-xxx
NNNNNNNNNNNNNNNNNNNNNNNNNNNN
999
xxxxxx-xxx
NNNNNNNNNNNNNNNNNNNNNNNNNNNN
999


# Page. 62

![Page Image](https://bcdn.docswell.com/page/KJ4V8Z15E1.jpg)

再帰
• ひとつのモノからメンバーを
いくつか選んで並べる
• Resourceの再帰
• 階層構造
• 順番
• 代替
• Eventの再帰
• 打ち消し
• 順番
• 代替


# Page. 63

![Page Image](https://bcdn.docswell.com/page/LE132RG2JG.jpg)

再帰（階層構造）
1
2
4
5
3
6
7
8


# Page. 64

![Page Image](https://bcdn.docswell.com/page/GEWPR1K2J2.jpg)

データの例
categoriesテーブル
category_closureテーブル
category_id
category_name
ancestor_id
descendant_id
depth
1
ベースメイク
1
1
0
2
ファンデーション
1
2
1
3
コンシーラー
1
3
1
4
パウダーファンデーション
1
4
2
5
リキッドファンデーション
1
5
2
6
クリームファンデーション
1
6
2
7
コンシーラー
1
7
2
8
化粧下地
1
8
2
2
2
0
:
:
:


# Page. 65

![Page Image](https://bcdn.docswell.com/page/47ZKRPZ473.jpg)

再帰（打ち消し）
打ち消し
受注
受注番号
数量
1
100
2
30
3
-100
受注.再帰表
受注番号
取り消された受注番号
3
1


# Page. 66

![Page Image](https://bcdn.docswell.com/page/YJ6QRMZGJV.jpg)

ここまでのモデル図


# Page. 67

![Page Image](https://bcdn.docswell.com/page/GJ5R8ZWX74.jpg)

TMの手順
1. モノを集める
2. モノを並べる
3. 関係を構成する
4. 集合を作る
5. 多値を排除する
6. クラスで整える


# Page. 68

![Page Image](https://bcdn.docswell.com/page/9E2DKRQQER.jpg)

4.集合を作る


# Page. 69

![Page Image](https://bcdn.docswell.com/page/D7Y2NDWY7M.jpg)

法人個人区分
• 顧客には個人顧客と法人顧客があり、入力項目が異なります
• 個人顧客と法人顧客をモデリングしてみましょう
マイページ：会員情報
マイページ：会員情報
顧客番号
999999999
顧客番号
999999999
顧客区分コード
X
顧客区分コード
X
法人個人区分
個人
法人個人区分
法人
顧客名称
鈴木利房
法人名称
株式会社トシフサ
顧客名称
鈴木利房


# Page. 70

![Page Image](https://bcdn.docswell.com/page/VEN8X69RJ8.jpg)

排他的OR関係
個人顧客
法人顧客


# Page. 71

![Page Image](https://bcdn.docswell.com/page/Y79K8L2Z73.jpg)

サブセット
• 同一のサブセット
• 部分集合同士の構成が同じ
• 相違のサブセット
• 部分集合同士の構成が異なる
• 別々に実装するか、まとめて実
装するか判断する
• まとめた場合は、差異部分に
NULLが発生する


# Page. 72

![Page Image](https://bcdn.docswell.com/page/G78R8XMYED.jpg)

顧客区分コード
• 顧客区分コードには「仕入先・受注先・納入先」がある
• 仕入先、受注先、納品先の立場が入れ替わる顧客が存在する
仕入先
納入先
受注先


# Page. 73

![Page Image](https://bcdn.docswell.com/page/L7LKR839ER.jpg)

サブセット間にAND関係がある場合
請求先かつ支払先が表現できない
顧客区分コードを独立させて対照表
を作る


# Page. 74

![Page Image](https://bcdn.docswell.com/page/4EM2R6DVEW.jpg)

サブセットの区分コードが複数ある場合
• サブセットで階が構成される場合、上下関係を判断する必要が
ある


# Page. 75

![Page Image](https://bcdn.docswell.com/page/PERMRP4W79.jpg)

サブセットの区分コードが複数ある場合
従業員区分コードが上位
性別が上位
従業員
従業員
正社員
男
パート社員
女
男
男
女
正社員
女
パート社員
正社員
パート社員


# Page. 76

![Page Image](https://bcdn.docswell.com/page/P7XVR32VJX.jpg)

サブセットの区分コードが複数ある場合
営業所区分コードが上位
営業形態区分コードが上位
営業所
営業所
国内営業所
直営店
委託店
海外営業所
直営店
委託店
直営店
国内営業所
海外営業所
委託店
国内営業所
海外営業所


# Page. 77

![Page Image](https://bcdn.docswell.com/page/37KQRYM57D.jpg)

サブセットの区分コードが複数ある場合
• サブセットは切断して形成される
• サブセットに階が形成される場合も同様に適用される
• サブセットを切断すれば、より小さいサブセットになる
• サブセットの上下の入れ替えはあり得ない
• 上下の階を入れ替えてどちらも意味が通じた場合、どちらかが
帰属しない


# Page. 78

![Page Image](https://bcdn.docswell.com/page/LJ3P89Y175.jpg)

対処方法
• 対照表で関係を構築する
• クラス（手順6にて解説）を適用する


# Page. 79

![Page Image](https://bcdn.docswell.com/page/8JDLMG5K7G.jpg)

対処方法：クラス適用
対照表
クラス適用


# Page. 80

![Page Image](https://bcdn.docswell.com/page/VEP2R3G3E8.jpg)

TMの手順
1. モノを集める
2. モノを並べる
3. 関係を構成する
4. 集合を作る
5. 多値を排除する
6. クラスで整える


# Page. 81

![Page Image](https://bcdn.docswell.com/page/27VDR46N7Q.jpg)

5.多値を排除する


# Page. 82

![Page Image](https://bcdn.docswell.com/page/5JGYM1N5JL.jpg)

複数の商品単価
• 商品に複数の単価がある場合
• 商品単価をモデリングしてみましょう
商品管理
商品コード
xxxxxx-xxx
商品名称
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
商品単価-1
999,999
商品単価-2
999,999
商品単価-3
999,999


# Page. 83

![Page Image](https://bcdn.docswell.com/page/47QMRDQLEP.jpg)

多値のOR関係（Many-valued OR）
非正規形
正規形


# Page. 84

![Page Image](https://bcdn.docswell.com/page/KE4V8ZN571.jpg)

複数商品の受注入力画面
• 一度に複数の商品を受注したい要望がきました
• 複数商品の受注をモデリングしましょう
受注入力
受注番号 999999999
顧客番号
999999999
受注日
顧客名称
鈴木利房
顧客区分コード
1
YYYY/MM/DD
商品コード
商品名称
商品単価
受注数
xxxxxx-xxx
NNNNNNNNNNNNNNNNNNNNNNNNN
999,999
9999
xxxxxx-xxx
NNNNNNNNNNNNNNNNNNNNNNNNN
999,999
9999


# Page. 85

![Page Image](https://bcdn.docswell.com/page/L7132R52EG.jpg)

多値のAND関係
一度にひとつ受注するモデル
一度に複数受注するモデル


# Page. 86

![Page Image](https://bcdn.docswell.com/page/G7WPR152E2.jpg)

複数商品の受注入力画面


# Page. 87

![Page Image](https://bcdn.docswell.com/page/4JZKRPN4J3.jpg)

ここまでのモデル図


# Page. 88

![Page Image](https://bcdn.docswell.com/page/YE6QRM8GEV.jpg)

TMの手順
1. モノを集める
2. モノを並べる
3. 関係を構成する
4. 集合を作る
5. 多値を排除する
6. クラスで整える


# Page. 89

![Page Image](https://bcdn.docswell.com/page/GE5R8Z9XJ4.jpg)

6.クラスで整える


# Page. 90

![Page Image](https://bcdn.docswell.com/page/972DKR2Q7R.jpg)

クラス
• ここで言うクラスは、数学的なクラス（類）のこと
左側 個体指定子
モノの集まり/対照表/対応表
個体指定子
アトリビュート1
アトリビュート2
・・・
・・・
アトリビュートx
右側
アトリビュート


# Page. 91

![Page Image](https://bcdn.docswell.com/page/DJY2NDYYJM.jpg)

クラスの適用
• 左側（個体指定子）に対してクラスを適用する
• 構造を整える
• 右側（アトリビュート）に対してクラスを適用する
• 集合を整える


# Page. 92

![Page Image](https://bcdn.docswell.com/page/V7N8X6PRE8.jpg)

右側（アトリビュート）にクラスを適用
する
1. Resourceに、Event的性質が混入している
2. Resourceに、他のResource的性質が混入している
3. Eventに、Resource的性質が混入している
4. Eventに、他のEvent的性質が混入している


# Page. 93

![Page Image](https://bcdn.docswell.com/page/YJ9K8L3ZJ3.jpg)

アトリビュートにクラスを適用する
• Resourceに、Event的性質が混入している


# Page. 94

![Page Image](https://bcdn.docswell.com/page/GJ8R8XLY7D.jpg)

アトリビュートにクラスを適用する
• Resourceに、他のResource的性質が混入している


# Page. 95

![Page Image](https://bcdn.docswell.com/page/LJLKR8L97R.jpg)

アトリビュートにクラスを適用する
• Eventに、Resource的性質が混入している


# Page. 96

![Page Image](https://bcdn.docswell.com/page/47M2R6MV7W.jpg)

アトリビュートにクラスを適用する
• Eventに、他のEvent的性質が混入している


# Page. 97

![Page Image](https://bcdn.docswell.com/page/P7RMRPVWJ9.jpg)

左側（個体指定子）にクラスを適用する
• 共通する意味でサブセットにまとめる


# Page. 98

![Page Image](https://bcdn.docswell.com/page/PJXVR3ZVEX.jpg)

Appendix


# Page. 99

![Page Image](https://bcdn.docswell.com/page/3JKQRY85JD.jpg)

データモデリングツールの紹介
• データモデリングは専用ツールを使った方が効率が良いです
• 作図ツール → 図を書くツール
• モデリングツール → モデルを書くツール
• 作図ツールでもモデリングはできるが効率が違う
• MODEBIという名前のツールが無償で配布されているので紹介
します


# Page. 100

![Page Image](https://bcdn.docswell.com/page/LE3P8921J5.jpg)

MODEBIとは
• モデビ株式会社が配布しているTMモデリングツール
• 無料で使える
• TM 3.0 に準拠
• 書籍「事業分析・データ設計のためのモデル作成技術入門」で説明し
ているバージョン
• 作図ツールではなく、モデリングツールなので使いやすい


# Page. 101

![Page Image](https://bcdn.docswell.com/page/8EDLMGZKJG.jpg)

MODEBIのインストール手順
1. https://www.modebi.jp/modebi2/ からダウンロード
2. 任意のフォルダに解凍
3. MODEBI2.exe のショートカットをデスクトップに作成する
注意：セキュリティソフトの警告が出ますがウィルスは入ってい
ません


# Page. 102

![Page Image](https://bcdn.docswell.com/page/V7P2R3D378.jpg)

Windows以外をお使いの方へ
Windowsの仮想環境をご利用ください
• 無償版VMWare Fusion
• https://www.vmware.com/products/desktop-hypervisor/workstation-and-fusion
• マイクロソフトが配布しているWindows11開発環境
• https://developer.microsoft.com/ja-jp/windows/downloads/virtual-machines/
• 注意：技術的な問題が進行中のため、2024年 10 月 23 日の時点で、ダウンロードは
一時的に利用できません


# Page. 103

![Page Image](https://bcdn.docswell.com/page/2JVDR41NJQ.jpg)

ハンズオンでのMODEBI設定
配色設定を変更しています
• 表示&gt;箱色表示切替 → MODEBIver1互換


# Page. 104

![Page Image](https://bcdn.docswell.com/page/5EGYM125EL.jpg)

例題をやってみよう


# Page. 105

![Page Image](https://bcdn.docswell.com/page/4JQMRDPL7P.jpg)

例題1
• レシートのデータ構造をモデ
リングしてみましょう
962203260089740001879205


# Page. 106

![Page Image](https://bcdn.docswell.com/page/K74V8ZY5J1.jpg)

• 受注番号は、動的に採番される
例題2
• 「顧客」および「商品」は予め登録され
ている
• 入力項目は、受注番号、受注日、顧客番
号、商品コード、受注数である
• 受注１回に付き５つの商品を入力できる
• 会員区分CDには以下の３種類がある
•
•
•
正会員
準会員
非会員
• 商品単価には以下の３種類がある
•
•
•
正会員割引単価
準会員割引単価
非会員からの受注に適用する標準単価
• なお、準会員および非会員が、決められ
た受注数量を超えた場合、正会員割引単
価を適用する
• 顧客住所ごとに「地域」が割り振られて
いる
• 「受注」が入力された時点で「出荷番
号」が自動的に採番される。
• ひとつの「受注」には、ひとつの「出
荷」が対応 する。「出荷」は、event と
する。
• 「地域」と「便」は、「複数 – 対 – 複
数」の対応に該当する


# Page. 107

![Page Image](https://bcdn.docswell.com/page/LJ132R627G.jpg)

今後の学び方


# Page. 108

![Page Image](https://bcdn.docswell.com/page/GJWPR1W272.jpg)

書籍で学ぶ
• 事業分析・データ設計のためのモデル作成技
術入門
• このハンズオンはこの本に準拠しています


# Page. 109

![Page Image](https://bcdn.docswell.com/page/4EZKRP54E3.jpg)

,テ
アプ
ーリ
ブ
ケ
ル
ーショ
ン
自動的に生成さ
れた説明
Webで学ぶ
• http://www.sdi-net.co.jp/ に
は、正美さん本人の解説が
多数掲載あり
• 特にこの辺が役立つ
• データ 解析に関する
FAQ
• ○○を読むシリーズ
• 新着情報


# Page. 110

![Page Image](https://bcdn.docswell.com/page/Y76QRM9G7V.jpg)

セミナーで学ぶ
• 佐藤正美のデータモデリング講座（住友電工主催）
• 「ビジネス分析＝設計モデル / モデル作成の手続き」
• https://www.sei-info.co.jp/event/workshop_fw_koushukai4.html
• 直近の日程
• 2025年3月13日（木）オンライン


# Page. 111

![Page Image](https://bcdn.docswell.com/page/G75R8ZNXE4.jpg)

Facebookのグループで学ぶ
• https://www.facebook.com/groups/tm.study
• 質問すると、TMの会のメンバーが回答がもらえます


# Page. 112

![Page Image](https://bcdn.docswell.com/page/9J2DKR5QJR.jpg)

TMの会で学ぶ
TMの疑問点を正美さんに質問できます
入会希望者は鈴木まで声をかけてください
• 開催日：毎月一回、会員の投票で決まった日に開催（だいたい月末）
• 時間
：講義2時間、感謝祭2時間
• 会場
：貸し会議室、またはオンライン
• 参加費：開催に必要になった経費を割り勘
（会議室代＋積立金代＋正美さんの飲み代）÷
講義参加人数


# Page. 113

![Page Image](https://bcdn.docswell.com/page/DEY2NDKYEM.jpg)

TMの会で学ぶ
• 自分でTMのモデリングをして、レビューして欲しい人を募集します
• モデリング対象
• 個人開発のアプリケーション
• 実稼働しているアプリケーション
• ご自分の担当プロジェクト
希望者は鈴木までご連絡下さい
• メール：toshifusa@gmail.com
• Twitter：@toshifusa


