もしかして、最近のスタッフにデータの基本的な種類を教えてなかったんじゃないかと思った次第です。
すでにいろんなところで論じられている内容ですが、自分用に記載。
「マスタデータ」とはなにか
面接をしているときもこれを答えられる人に出会っていないのはなぜだろう。
マスタデータとトランザクションデータというのは基本情報などでも出ていたはずです。
データ一貫性のトランザクションはみんな知っているのだけれど、トランザクションデータを知らない。
マスターデータ(master data)とは、企業内データベースなどで、業務を遂行する際の基礎情報となるデータのこと。また、それらを集約したファイルやデータベースのテーブルなど。単に「マスタ」と省略するのが一般的である。
IT用語辞典
トランザクションデータ(transaction data)とは、企業の情報システムなどが扱うデータの種類の一つで、業務に伴って発生した出来事の詳細を記録したデータのこと。 ファイルに記録したものは「トランザクションファイル」という。
IT用語辞典
自分はいい加減ですが、単純に「マスタデータは基本的なデータで変更されることはあまりない」、「トランザクションデータはユーザによって常に更新が発生するデータ」と認識しています。
そのため、マスタデータはキャッシュ可能、トランザクションデータはキャッシュ困難(不可能とは言っていない)というふうにしています。(考え方がゲームAPIサーバー的なのは癖みたいなものです)
ユーザーマスタはマスタデータか?
上記の文脈だと、我々利用するオンラインサービスのほとんどは、ユーザーの基本情報を管理するデータはトランザクションデータということになります。
ユーザーは自らサインアップして、データをオンラインサービスに作り、プロフィールも変更しちゃいます。
ですが、開発者は「ユーザーマスタ」と言いがちです。
これは「業務システムではユーザーマスタは、管理者によってあらかじめ作られるもの」というところの名残が未だに受け継がれているのだと思っています。
例えばグループウェアに新入社員のアカウントを作るときは、会社の管理部や人事部といったところで作成、削除するという感じです。不用意に作られては困りますからね。
ちなみに消していいのか
マスタデータにしてもトランザクションデータにしても原則消してはいけません。
基本的にマスタデータは恒久的なデータなので、たとえ必要な時期が過ぎたとしても、残しておくの通常だと思います。
ECの商品データ、辞めた従業員のアカウント、再度同じIDやアカウント名を使用して、古いデータと意図せずリンクしてしまわないように、メールを受け取ってしまわないようにしておく必要はあると思います。
それにも消してしまうのには理由があるはずです。
トランザクションデータ、特に履歴のデータであれば保管期間を過ぎたものを容量の都合で消すとかですかね。