マスタデータとトランザクションデータ。データの性質による分類と設計の基本

システム設計において、まず整理すべきはデータの性質です。データベース内のデータは、大きく「マスタデータ」と「トランザクションデータ」の2種類に分類されます。

この2つを明確に区別して設計することで、システムは変更に強く、整合性の取れたものになります。

マスタデータ(静的データ): 業務の土台

マスタデータとは、業務を遂行する上で「参照」される、比較的変化の少ない基礎情報です。

  • 種類:顧客マスタ、商品マスタ、社員マスタなど。
  • 特徴:一度登録されると長期間利用され、頻繁には更新されません。
  • 設計上の重要性:マスタデータに一意なIDを付与し、他のデータから参照される「基準」とします。

トランザクションデータ(動的データ): 業務の記録

トランザクションデータとは、日々の業務で発生する「出来事」を記録したデータです。

  • 種類:受注データ、入金履歴、出荷記録など。
  • 特徴:時間の経過とともに継続的に蓄積されます。
  • マスタとの関係:トランザクションデータは、必ず「どの顧客(マスタ)が、どの商品(マスタ)を扱ったか」という形で、マスタデータを参照して作成されます。

技術的な補足:機能としての「トランザクション」 本記事ではデータの分類としての意味で解説していますが、データベースの専門用語としての「トランザクション」には、複数の処理を一つのまとまりとして扱い、失敗時にすべてを元の状態に戻す(整合性を保つ)ための「機能」という意味合いもあります。

設計不備が招く「データ不整合」のリスク

もしマスタとトランザクションを分けずに、トランザクションデータの中に「直接」顧客名や商品価格を書き込んでしまうと、以下の問題が発生します。

  1. 情報の変更に対応できない:商品価格を改定した際、過去の全トランザクションを書き換えるか、集計時に矛盾を受け入れる必要が出てきます。
  2. データの冗長性:同じ情報を何度も保存するため、ストレージを無駄に消費し、更新ミスが発生しやすくなります。

業務整理の視点: 「状態」か「履歴」か

自社のデータを整理する際は、その項目がどちらに属するかを判断してください。

  • 状態(マスタ):現在の名称、現在の価格、所属部署など。
  • 履歴(トランザクション):いつ発生したか、その瞬間の数量、その瞬間の金額など。

まとめ:正確な集計は「正しい切り分け」から

システム化の要件定義において、マスタデータの範囲を確定させることは、ビジネスルールの確定そのものです。

「顧客とは誰か?」「商品はどの単位で管理するか?」といった定義(マスタ設計)を丁寧に行うことで、日々の業務記録(トランザクション)が、経営判断に耐えうる精緻なデータへと昇華されます。