青の統計学-DS Playground-

オントロジーと ER の違い:業務の「意味」を扱う

Stage 2 — 第3章 | データマネジメント入門 推定学習時間:40〜50分 | 難易度:★★★☆☆


この章で学ぶこと

ER 図で 顧客–注文–商品 の線は引けました。 それでもさくら商事の会議は止まります。理由はシンプルで、同じテーブル名でも“意味”が合意されていない からです。

「キャンセル」「返品」「売上確定」——日本語では分かるつもりでも、SQL の WHERE 句 1 行で解釈が割れます。 オントロジー(Ontology) は、この 業務上の意味と関係 を整理する枠組みです。

本章は OWL ファイルの書き方ではありません。 データマネジメントとして、いつ ER だけでは足りず、意味の層が必要か を判断できることを目標にします。

この章を終えると、こんなことができるようになります:

  • ER 図とオントロジーの 目的の違い を説明できる
  • 「キャンセル」「返品」「売上確定」を 業務ルール として言語化できる
  • ER だけでは判断材料が足りない場面を具体例で示せる
  • オントロジーが SSOT・品質・ガバナンスとどう接続するか説明できる

1. 返品を売上に含めるか:再び

Stage 1 の会議を思い出してください。 経理・マーケ・基盤で「6 月売上」が合いませんでした。 その一因が 返品の扱い です。

部署 6 月売上の考え方 SQL イメージ
マーケ 発生ベース(返品前) SUM(amount)
経理 確定ベース(返品・値引後) SUM(amount - refund)
基盤 ステータスで除外(暫定) WHERE status NOT IN ('cancelled')

3 人とも ER 上の orders テーブルを見ています。 テーブル構造は同じなのに、数字が割れる。

経営・木村

orders があるんだから、正しい SQL を 1 本書けばいいんじゃないの?」

基盤・鈴木

「SQL の前に、返品が起きた注文を“売上”と呼ぶか を決めないと、WHERE が永遠に増えます。」


2. ER が答えられること・答えられないこと

ER が得意 ER が苦手
どの表が存在するか 用語の 業務定義
1 対多・多対多の関係 いつ 売上とみなすか(イベント順序)
キーで JOIN できるか 例外処理の優先順位
正規化・粒度 同義語・多言語ラベル

さくら商事の ER(簡略):

Customer ──< Order ──< OrderLine >── Product
                          │
                          └──< Refund
          

Refund 表があるから返品は追える——と見えて、Refund が発生した時点で Order は売上から除外するのか、月をまたいで調整するのか は ER には書きません。


3. ER とオントロジーの違い

観点 ER(Entity-Relationship) オントロジー(Ontology)
主な問い どう保存・結合するか 業務上何を意味し、どう関連するか
表現 テーブル、キー、カーディナリティ 概念、関係タイプ、ルール、推論
利用者 DB 設計者、AE 業務オーナー、スチュワード、基盤
変更 スキーママイグレーション 定義変更・例外ルールの合意
典型成果物 ER 図、DDL 用語集、概念モデル、ビジネスルール

3.1 関係タイプの例

オントロジーでは、関係に 意味の種類 を付けます(ツール非依存の考え方)。

関係 意味 さくら商事の例
is-a(種別) A は B の一種 返品 is-a 売上調整イベント
part-of(部分) A は B の構成要素 OrderLine part-of Order
precedes(前後) 業務上の順序 出荷 precedes 売上確定
excludes(除外) 同時に成立しない キャンセル済 excludes 売上確定

ER は「どのテーブルがどう繋がるか」、オントロジーは「業務上の意味と関係」を扱います。

flowchart LR accTitle: 左に顧客-注文のER図、右に概念ノードとis-a/part-of/推論ルールのオントロジー図 accDescr: ER は保存構造、オントロジーは業務意味。同じ「注文」でも、売上に含める条件はオントロジー側に書く。 ER["ER
テーブル構造"] C["Customer"] O["Order"] RF["Refund"] ONTO["Ontology
業務上の意味"] RET["返品"] ADJ["売上調整"] CAN["キャンセル"] REV["売上確定"] ER --> C -->|"1:N"| O --> RF ER -.->|"構造だけでは
判断できない"| ONTO ONTO --> RET -->|"is-a"| ADJ ONTO --> CAN -.->|"excludes"| REV classDef er fill:#eff6ff,stroke:#2563eb,color:#1f2937 classDef onto fill:#f0fdf4,stroke:#16a34a,color:#1f2937 class ER,C,O,RF er class ONTO,REV,RET,CAN,ADJ onto

さくら商事では、ER だけでは キャンセル注文を売上に含めるか の判断材料が足りません。


4. 三つの用語を業務ルールで固定する

4.1 キャンセル(Cancel)

論点 さくら商事の整理案
定義 出荷前に注文が無効化された状態
売上 含めない(発生ベースでも除外)
データ上 status = 'cancelled' かつ shipped_at IS NULL
例外 決済済みだが在庫欠品でキャンセル → 返金フローへ

4.2 返品(Return / Refund)

論点 さくら商事の整理案
定義 出荷後に商品が戻り、返金またはポイント返還が発生
売上(経理) 確定売上から控除(発生月 or 返品月はポリシーで選択)
データ上 refunds 表に行が追加
よくある争点 返品月に売上をマイナス計上 vs 発生月売上を修正

4.3 売上確定(Revenue Recognition)

論点 さくら商事の整理案
定義 経理が公式帳簿に計上する売上の確定タイミング
トリガ 出荷完了 をもって確定(EC 業態の簡略ルール)
含まないもの キャンセル、未出荷、返品(別イベントで調整)

これらは オントロジー/ビジネスルール の領域です。 決まれば、AE はマート SQL を 1 本に寄せられます。

-- 例:合意後の「公式売上」マート(概念)
          SELECT
            DATE(shipped_at) AS sales_date,
            SUM(total_amount) AS recognized_revenue
          FROM orders
          WHERE shipped_at IS NOT NULL
            AND status NOT IN ('cancelled')
            -- 返品は refunds 表で別調整(ポリシーに従う)
          GROUP BY 1;
          

現場メモ

オントロジーを整えると、SQL は 短く なります。 逆に、定義が曖昧なまま SQL を足すと、オントロジーが SQL に埋もれる —— これが属人化の正体です。


5. いつオントロジーが必要か:判断表

すべての列に OWL は不要です。次の どれか 2 つ以上 当てはまったら、意味の整理(オントロジー的作業)を優先します。

# シグナル さくら商事
1 同じ名詞で解釈が割れる 「売上」「アクティブ顧客」
2 例外ルールが増え続ける CASE WHEN が 20 行
3 部門ごとに別 KPI 定義 マーケ CV vs 経理確定
4 監査・説明責任が必要 上場準備、銀行借入
5 AI / エージェントがデータを触る 自然言語で「売上」と聞かれる(Stage 5 で接続)
シグナル数 推奨アクション
0–1 ER + データディクショナリで十分なことが多い
2–3 用語集 + ビジネスルール文書 + スチュワードレビュー
4+ 概念モデル/オントロジー的整理 + SSOT 指標へ接続

6. ツールは後:まず「合意可能な言葉」

Palantir Foundry、Knowledge Graph、RDF——製品名は様々です。 入門トラックで重要なのは ツール選定 ではなく、次の 3 点です。

  1. 概念(Customer, Order, Revenue)に一意の定義を付ける
  2. 関係(is-a, part-of, precedes)を明示する
  3. ルール(いつ売上か、何を除外するか)を変更管理する

さくら商事では、スチュワードの佐藤さん(経理)と田中さん(マーケ)が、1 枚の用語集 から始めました。

用語 定義 オーナー 最終更新
公式売上 出荷完了ベース、キャンセル除外、返品は refunds で調整 経理 2026-06-01
アクティブ顧客 過去 90 日に完了注文あり マーケ 2026-05-15

これは簡易オントロジーです。後からセマンティックレイヤーやカタログに載せられます。


7. DAMA・SSOT との接続

枠組み オントロジーの位置づけ
DAMA データモデリング・設計 + メタデータの 意味層
SSOT 指標だけでなく 用語定義 の正本にもなる
品質 Validity(妥当性)——定義に沿っているか
ガバナンス 用語変更の承認フロー

ER が 骨格、オントロジーが 神経、SSOT が 公式の参照先 —— そう考えると、Stage 2 の流れが一本につながります。


体系コラム:カリキュラム上の位置づけ

項目 内容
Stage / 章 Stage 2 — 第3章「オントロジーと意味」
今回の論点 ER は構造を示すが、返品を売上に含めるか など意味は別レイヤー
DAMA 領域 データモデリング(意味層)、メタデータ管理
ライフサイクル 生成・加工の 定義合意 が先。活用前に Validity を担保
前章との接続 ER・SSOT・マスターデータ の構造に、ビジネスルールを載せる
次章への伏線 メタデータとリネージ — 定義を 追跡可能 にする

コラム:よくある誤解 —「オントロジー=難しいグラフ DB を入れること」

オントロジーと聞くと、RDF や Knowledge Graph、専用製品の導入を連想する人が多いです。さくら商事でも「Foundry 入れれば?」という雑談が一度出ましたが、鈴木さんは ツール以前に合意可能な言葉 がないとグラフも空箱だと指摘しました。

実際に効いたのは、佐藤さんと田中さんが作った 1 枚の用語集 です。「公式売上」「アクティブ顧客」「返品反映」の 3 語に、定義・オーナー・最終更新日を付けただけで、会議の定義確認は半分以下になりました。OWL ファイルはまだありません。

オントロジー的作業のシグナルは、CASE WHEN が 20 行を超える、同じ名詞で部門が割れる、監査で説明責任が問われる——といった 現場の痛み です。グラフ DB は、その痛みを整理した の選択肢の一つに過ぎません。


まとめ

観点 ER オントロジー
焦点 構造・キー 意味・ルール
さくら商事の痛点 表はある 返品・キャンセルの解釈が割れる
最初の一歩 ER 図共有 用語集 + ビジネスルール 1 枚

この章のキーメッセージ:

テーブルがきれいでも、意味が合意されていなければ 正しい SQL は存在しません。 オントロジーは難しい哲学ではなく、会議で揉める言葉を固定する作業 です。


次に読む


確認問題

問題 1

さくら商事で orders テーブルは全員同じ ER を見ているが、返品の扱いで売上が割れる。 最も本質的な原因 はどれですか。

A. JOIN の書き方が悪い
B. 返品・売上確定の 業務定義 が合意されていない
C. BigQuery のリージョンが違う
D. ER 図の線の色が統一されていない

正解: B

解説: 構造は共有できても 意味 が未合意だと WHERE が割れます。A は症状への対症療法、C/D は無関係です。


問題 2

「キャンセル済み注文は売上確定と両立しない」というルールを、オントロジー的に表すと 最も近い のはどれですか。

A. part-of
B. excludes(相互に成立しない関係)
C. is-a
D. 外部キー制約

正解: B

解説: 業務上の 排他 は excludes 的ルールです。part-of は構成、is-a は種別、D は ER/DDL の話です。


問題 3

山田さんが「オントロジー導入 = OWL ファイルを全部書く」と理解している。 データマネジメント入門の観点で 最も適切な修正 はどれですか。

A. OWL だけがオントロジーなので、全テーブルを RDF 化する
B. まず用語集・ビジネスルール・オーナーで 合意可能な意味 を固定し、必要に応じてツール化する
C. オントロジーは不要。ER さえあれば売上は自動的に一致する
D. 返品問題は SQL の WINDOW 関数で解決する

正解: B

解説: 入門レベルでは 合意と文書化 が本体です。A は過剰、C は Stage 1–2 で否定済み、D は定義問題を技術で覆い隠します。


用語メモ(この章)

用語 意味(この章での使い方)
オントロジー(Ontology) 概念と業務上の関係・ルールを形式化して整理する枠組み
is-a 「A は B の一種」という種別関係
part-of 「A は B の一部」という構成関係
売上確定(Revenue Recognition) 経理上、売上として認めるタイミングと条件
ビジネスルール キャンセル・返品等の例外を含む業務上の判断基準