マスタデータとトランザクションデータ。データの性質による分類と設計の基本
システム設計において、まず整理すべきはデータの性質です。データベース内のデータは、大きく「マスタデータ」と「トランザクションデータ」の2種類に分類されます。
この2つを明確に区別して設計することで、システムは変更に強く、整合性の取れたものになります。
マスタデータ(静的データ): 業務の土台
マスタデータとは、業務を遂行する上で「参照」される、比較的変化の少ない基礎情報です。
- 種類:顧客マスタ、商品マスタ、社員マスタなど。
- 特徴:一度登録されると長期間利用され、頻繁には更新されません。
- 設計上の重要性:マスタデータに一意なIDを付与し、他のデータから参照される「基準」とします。
トランザクションデータ(動的データ): 業務の記録
トランザクションデータとは、日々の業務で発生する「出来事」を記録したデータです。
- 種類:受注データ、入金履歴、出荷記録など。
- 特徴:時間の経過とともに継続的に蓄積されます。
- マスタとの関係:トランザクションデータは、必ず「どの顧客(マスタ)が、どの商品(マスタ)を扱ったか」という形で、マスタデータを参照して作成されます。
技術的な補足:機能としての「トランザクション」 本記事ではデータの分類としての意味で解説していますが、データベースの専門用語としての「トランザクション」には、複数の処理を一つのまとまりとして扱い、失敗時にすべてを元の状態に戻す(整合性を保つ)ための「機能」という意味合いもあります。
設計不備が招く「データ不整合」のリスク
もしマスタとトランザクションを分けずに、トランザクションデータの中に「直接」顧客名や商品価格を書き込んでしまうと、以下の問題が発生します。
- 情報の変更に対応できない:商品価格を改定した際、過去の全トランザクションを書き換えるか、集計時に矛盾を受け入れる必要が出てきます。
- データの冗長性:同じ情報を何度も保存するため、ストレージを無駄に消費し、更新ミスが発生しやすくなります。
業務整理の視点: 「状態」か「履歴」か
自社のデータを整理する際は、その項目がどちらに属するかを判断してください。
- 状態(マスタ):現在の名称、現在の価格、所属部署など。
- 履歴(トランザクション):いつ発生したか、その瞬間の数量、その瞬間の金額など。
まとめ:正確な集計は「正しい切り分け」から
システム化の要件定義において、マスタデータの範囲を確定させることは、ビジネスルールの確定そのものです。
「顧客とは誰か?」「商品はどの単位で管理するか?」といった定義(マスタ設計)を丁寧に行うことで、日々の業務記録(トランザクション)が、経営判断に耐えうる精緻なデータへと昇華されます。