会社に入ってからマスターデータとトランザクションデータという言葉をよく耳にします。どういう違いがあるのでしょうか?
マスターデータは「頻繁に更新することのない基本となる情報」、トランザクションデータは「頻繁に記録される取引情報」です。詳しく見ていきましょう!
記事を読んで得られること
- 開発現場で言葉の意味を理解して話ができる
- データベース設計をする際にデータの違いを理解して設計できる
- データの更新速度を意識してテーブルを見ることができるようになる
マスターデータとトランザクションデータとは
マスターデータ
マスターデータとは「頻繁に更新することのない基本となる情報」です。
ユーザーが商品を購入する場合を考えてみましょう。
このときのデータベースのテーブルはユーザーテーブル、商品テーブル、購入テーブルの3つとします。
- ユーザーテーブル:ユーザー名やメールアドレスなどのユーザー情報を保存しているテーブル
- 商品テーブル:商品名や価格などの商品用法を保存しているテーブル
- 購入テーブル:いつ、誰に、何を、何個売ったのか記録しておくテーブル
このとき、ユーザーテーブルはめったに更新しません。ユーザー名やメールアドレスなどの登録内容は、特別なことがない限り変更しないからです。
一方で、商品を購入するときは、誰が購入したのかを把握する必要があるので、ユーザーテーブルが利用されます。
このユーザー情報のようにあまり変更されず、何かをするときの基本となる情報をマスターデータといいます。
感のいいあなたはお気づきかと思います。そうです!商品テーブルも、頻繁に更新されることなく、商品売買の基本となる情報なので、マスターデータになります。
他には、会社の部署情報、商品情報、店舗情報、市町村情報などがマスターデータになります。
マスターデータはサービスを動かす前に、サービス管理者が事前に入れておくことが多いです。店舗情報がないと、サイトの店舗情報が空白になってしまうからです。
トランザクションデータ
トランザクションデータとは「頻繁に記録される取引情報」です。トランザクションは「取引」の意味ですね。
ユーザーが商品を購入する場合を考えてみましょう。ユーザーテーブル、商品テーブル、購入テーブルのうち、ユーザーテーブルと商品テーブルはマスターデータでした。購入テーブルはどうなるでしょうか。
購入テーブルは「いつ、誰に、何を、何個売ったのか記録しておくテーブル」です。
購入が発生するたびに頻繁に記録され、商品の取引情報が記録されていますので、トランザクションデータになります。
ユーザー情報や商品情報などのマスターデータがあるからこそ、これらのデータを利用することで、商品の取引情報を記録することができるのです。
つまり、トランザクションデータとは「マスターデータの利用履歴」とも言えそうです。
他には、会員ポイントの付与・利用情報、職員への給与支払い情報、在庫情報などもトランザクションデータになります。
なぜ2つのデータを分ける必要があるのか
データを意識して分ける理由は「重複するデータを一括で記載して、データ更新の負荷をなくすため」です。
トランザクションデータの中にマスターデータが含まれている場合を考えてみます。購入日や数量などのトランザクションデータとともにユーザ情報や商品情報が混ざっています。
【購入テーブル】
購入id | ユーザー名 | メールアドレス | 商品名 | 購入日 | 数量 |
1 | tack | tack@gmail.com | エンジニアになる本 | 4/23 | 1 |
2 | tack | tack@gmail.com | 幸せになる本 | 4/24 | 1 |
3 | tack | tack@gmail.com | 目立つ服 | 4/25 | 1 |
4 | tack | tack@gmail.com | アイデアがわくメガネ | 4/26 | 2 |
5 | tack | tack@gmail.com | どうのつるぎ | 4/27 | 3 |
トランザクションデータは日々増えていきます。アマゾンで毎日ポチポチするたびに、商品の取引情報は蓄積されていきます。
ユーザー名やメールアドレスは同じ情報が連続して記録されてしまいます。このとき、メールアドレスを変更したくなったらどうなるでしょうか。
購入情報のすべてのテーブルを更新しないといけなくなります。そうなると、非常に更新に時間がかかってしまうので、それぞれを別で管理し、取引の情報は切り分けて管理してわかりやすくしておきます。
【ユーザーテーブル】
ユーザーid | ユーザー名 | メールアドレス |
1 | tack | tack@gmail.com |
【商品テーブル】
商品id | 商品名 |
1 | エンジニアになる本 |
2 | 幸せになる本 |
3 | 目立つ服 |
4 | アイデアがわくメガネ |
5 | どうのつるぎ |
【購入テーブル】
購入id | ユーザーid | 商品id | 購入日 | 数量 |
1 | 1 | 1 | 4/23 | 1 |
2 | 1 | 2 | 4/24 | 1 |
3 | 1 | 3 | 4/25 | 1 |
4 | 1 | 4 | 4/26 | 2 |
5 | 1 | 5 | 4/27 | 3 |
このように3つのテーブルに分けることで、ユーザー情報が切り離されます。メールアドレスに変更があった場合は、ユーザーテーブルだけが更新されるため、購入テーブルには一切影響を与えずに管理することができるようになります。
まとめ
- マスターデータ:頻繁に更新することのない基本となる情報
- トランザクションデータ:頻繁に記録される取引情報
- 2つのデータを分ける理由:重複するデータを一括で記載して、データ更新の負荷をなくすため
マスターデータとトランザクションデータの違いがよくわかりました。この言葉を聞いても落ち着いて対応できそうです!
ざっくりと言葉の意味をとらえて、詳細を知りたくなったらその都度調べて精度を上げていきましょう!
コメント