学習・技術検証用デモ — 本システムは実際の銀行サービスではありません。

公開情報をもとに構築した教育目的のシステムです。実在する個人情報・口座情報・機密情報・認証情報等を入力しないでください。

ミニ銀行ACADEMY SYSTEM LEARNING
教材メニュー
学習進捗0 / 134
あと134項目
INTERMEDIATE · 中級COURSE 07 · ENTERPRISE ARCHITECTURE

Data Ownership:System of Recordと正式な事実を設計する

Data Architectureの出発点はdatabase製品ではありません。業務概念、所有者、正式記録、生成責任、利用契約、品質責任を決めます。

10 / 15
ENTERPRISE ARCHITECTURE · エンタープライズアーキテクチャ

Business・Application・Data・Technologyを横断し、全体最適の設計へ広げる。

先に学ぶ内容 — Prerequisite: 金融IT・信頼性

学ぶこと — LEARNING GOALS

このページで学ぶこと

  • Data Owner・Steward・Custodianの責任
  • System of Record・Reference・Projection
  • Domain間data contract

体験55 · DATA OWNERSHIP(正式記録を決める)

同じ数値を表示する場所が複数あるDBは、設計として間違っているか確かめよう

まずは予想をひと言。本文を読んだ後、教材内の参照元で実際のdomain modelを確認します。

体験学習 · STEP 1 / 5
  1. 01
    まず予想する — PREDICT

    まずここだけ:思ったことをひと言書く

    同じ数値を表示する場所が複数あるDBは、設計として間違っていると思いますか?

    正解でなくて大丈夫です。「〜だと思う」から始めてみましょう。

    ヒント1を見る

    複数の値がある時、どれを正しいとするかが決まっていれば問題でしょうか?

    ヒント2を見る

    cacheを持つこと自体は誤りでしょうか?

    もっと詳しく:この問いで使う専門用語
    • System of Recordは、競合時に正式とみなす権威ある記録です。
    • Data Ownerは、dataの意味・利用・品質・riskについて業務上の決定をする責任者です。
    • Data Contractは、提供dataのschema・意味・品質・変更・SLOの約束です。
まずはひと言だけで大丈夫です。

この後の本文を最後まで読んでから、実際に操作して確かめるステップへ進みます。

日常語で理解する — PLAIN LANGUAGE

まず、ここだけつかむ

1

Data Architectureはtable配置ではなく、意味、所有権、正本、品質、共有、保護、lifecycleを設計します。

2

System of Record、reference、master、projection、event、auditを区別し、競合時にどの記録を正とするか明確にします。

3

Data Owner、Steward、Custodian、Consumerの責任を分け、品質問題の決定権と修正経路を定義します。

順番に理解する — DIFFICULT PARTS, STEP BY STEP

難しいポイントを、順番にほどく

専門用語を覚えることより、「なぜ必要か」「このシステムのどこで使うか」を理解することが目標です。

01

System of Record

やさしく言うと

競合時に正式とみなす権威ある記録です。

なぜ必要?

複数copyの不一致を解決する基準になるためです。

Minibankでは

資金変動はLedger記録から説明できる必要があります。

02

Data Owner

やさしく言うと

dataの意味、利用、品質、riskについて業務上の決定をする責任者です。

なぜ必要?

ITだけでは正しい業務意味を決められないためです。

Minibankでは

口座、transfer、journal、auditごとにownerを定めます。

03

Data Contract

やさしく言うと

提供dataのschema、意味、品質、変更、SLOの約束です。

なぜ必要?

producer変更がconsumerを静かに壊すのを防ぐためです。

Minibankでは

Payment Serviceが返すtransfer状態とerror意味を契約化します。

発展 — ADVANCEDもっと詳しく確認する最初の学習では読まなくても問題ありません。仕組みをもっと深く理解したい場合に開いてください。

同じ値が複数ある前提で正を決める

copyがあること自体は悪ではありません。どこから生成し、どの鮮度で、矛盾時にどう直すかが未定義なcopyが危険です。

Data role意味Minibank
System of Record最終的に正とする事実journalと取引記録
Reference Data共通code・分類口座種別、状態、error code
Master Data共有する中核entitycustomer、account
Projection表示・検索用の派生cached_balance、dashboard集計
Event起きた事実の通知TRANSFER_COMPLETED相当
Audit Evidence変更・判断の証拠audit_logs

Data accountability

Role責任
Business Data Owner意味、利用目的、quality、access、retentionを承認
Data Steward定義、rule、issue、metadataを日常管理
System Ownerapplication内で正しく生成・提供
Custodian / Platform保存、暗号化、backup、availability
Consumer契約内利用、local copy、目的外利用を管理
Privacy / Securityclassification、legal basis、controlをreview

Data Contract

API schemaだけでなく意味・品質・運用を契約化します。consumerがproducerの内部tableを直接読むと、変更と権限が結合します。

  • business definitionとscope
  • schema、identifier、unit、timezone、currency
  • producerとauthoritative source
  • quality ruleとSLO
  • freshness・availability・volume
  • classification・consent・allowed purpose
  • change・version・deprecation
  • issue連絡・replay・reconciliation

Minibank Data Ownership

Java DTOは新しいSystem of Recordではありません。PostgreSQL RPCの結果を運ぶmodelであり、正式記録の所在を変えません。

DataAuthoritative ownerDerived / Consumer
IdentitySupabase Authcustomer profile、session
Customer / KYCpublic customer domainUI、admin、payment validation
Account stateaccount domainpayment、admin
Transfer requestpayment domainOTP、UI、audit
Journalledger domainbalance、trial balance、reconciliation
Learning contentdocs librarystatic docs pages

体験学習の続き · LEARNING LOOP

ここまで読めましたか?続けて確認してみましょう

System of RecordとData Contractの考え方を読んだところで、教材内の参照元で実際のdomain modelを確認し、自分の言葉で説明してみます。

STEP 2〜5 / 5
  1. 02
    仕組みを確かめる — CONCEPT CHECK

    画面操作なしで、仕組みを確かめる

    この仕組みは、Mini Bankの画面には現れません。次のEvidenceとCode Trail、教材本文だけで理解を進めます。

  2. 03
    証拠を確認する — EVIDENCE

    何を見たか、1つずつ確かめる

    Evidence(判断の根拠となる記録)を確認したらチェックします。各項目の「何を見るか」を手がかりにしてください。

    画面を開けない項目は、Source Trail(教材の参照元)と教材の説明で確認できます。失敗を実際に起こす必要はありません。

  3. 04
    コードの処理経路を追う — CODE TRAIL

    コードを書く必要はありません

    ここでは「説明されている仕組みが、実際のMini Bankのどこに実装されているか」を確認します。まずは日本語の役割説明を読み、入力した依頼がどこへ渡るかをつかみましょう。コードの全文を読む必要はありません。

    まずTypeScript側のdomain schemaを見て、次にJava側のdomain projectionを見ます。どちらが正式記録を持つかを確かめましょう。

    TypeScript domain schema。

    src/domain/

    Java domain projection。

    services/payment-service/src/main/java/com/minibank/payment/domain/
    教材の参照元を確認する — Source Trail ↓
  4. 05
    自分の言葉で説明する — EXPLAIN

    LEVEL 1 — やさしい説明(まずここだけ)

    なぜ『どれが正式記録か』を決めることが、複数のcopyを持つこと自体より重要なのでしょうか? 短い2文を目安に説明してください。

    日常語だけで完了できます。専門用語の数や正誤を自動採点するものではありません。

    ヒント1を見る

    「System of Record」という言葉を使って書いてみましょう。

    ヒント2を見る

    Java側のDTOが正式記録を複製していないか考えてみましょう。

    もっと詳しく:LEVEL 2 — 専門用語を使った説明(任意)

    System of Record、Data Owner、Data Contractの3つを使って、複数のcopyがあっても安全に運用する方法を説明してみましょう。

    挑戦する場合は、上の説明欄に追記できます。追加しなくても完了できます。

    説明の確認ポイント — Checkpoint
    • cacheを持つこと自体は誤りではないと説明できる
    • Java層が正式記録を複製していないと説明できる
予想5文字以上・証拠2項目・説明20文字以上で完了できます。

証拠の確認:0 / 2。LEVEL 2(専門用語での説明)は任意です。

入力はこのブラウザに保存されます。Academy教材の進捗とは別の学習メモです。

理解を確かめる — CHECK YOUR UNDERSTANDING

3問で理解チェック

答えを頭の中で考えてから、各項目を開いて確認してください。

Q1最も新しいtimestampの値が正本ですか?
答え

必ずしも違います。正式な更新権限と業務確定processでSoRを決めます。

Q2Data OwnerはDB管理者ですか?
答え

通常は別です。Ownerは業務上の意味とrisk、Custodianは技術的保管を担います。

Q3cached balanceがLedgerと違う場合どうしますか?
答え

Ledgerと正式ruleを基に差異を調査し、勝手な上書きでなく統制された訂正と照合を行います。

ここまで読めましたか?

完全に暗記する必要はありません。大切な考え方を説明できそうなら押してください。

業界・外部の参照元 — INDUSTRY / EXTERNAL SOURCE

業界資料・参考文献

一般論と業界知識の根拠です。外部サイトを新しいタブで開きます。

教材の参照元 — SOURCE TRAIL

根拠と関連教材

CURRENT IMPLEMENTATIONは確認したrepository内の実装です。HISTORICAL IMPLEMENTATIONは導入・修正の履歴で、後続migrationによる再定義があり得ます。RELATED LESSONは教材への案内で、実装の一次Sourceではありません。ASSUMPTIONは仮定、UNKNOWNは未確認を表します。

確認基点: d02eae8914f39cbf06bfe422dc39c71886f82b3e / 2026-09-11。稼働環境への適用確認: UNKNOWN。パス実在の自動検査と、記述した技術的事実の確認は別です。

  • 現在の実装 — CURRENT IMPLEMENTATIONsrc/domain/TypeScript domain schema
  • 過去の実装 — HISTORICAL IMPLEMENTATIONsupabase/migrations/table・constraint・schema ownership
  • 関連教材 — RELATED LESSON/docs/financial-it-stack関連教材の入口。System of Recordを含む金融IT stack