Loading...

No image

マスタデータとトランザクションデータをしっかり区別する

どうも、こだまです。
先日、投稿したデータ構造の記事を社内に展開したところ、様々なアドバイスをもらいました。その中で、
「マスタデータとトランザクションデータを分けたほうがいいね」
と言われ、頭の中で、
「ふぁっ?!?!」
となったので、今回はマスタデータとトランザクションデータについて調べていきます。

マスタデータと、トランザクションデータとは

まずは用語の確認。

種別 意味
マスタデータ
出典:https://goo.gl/1TBKnD
マスターデータとは、企業内データベースなどで、業務を遂行する際の基礎情報となるデータのこと。
また、それらを集約したファイルやデータベースのテーブルなど。
単に「マスタ」と省略するのが一般的である。
トランザクションデータ
出典:https://goo.gl/y2bawP
トランザクションデータとは、企業の情報システムなどが扱うデータの種類の一つで、業務に伴って発生した出来事の詳細を記録したデータのこと。

なぜ使い分ける必要があるのか

端的に言うと「目的がそもそも違う」という点が挙げられるようです。
例えば、マスタデータの特徴としては

頻繁な追加・更新が発生しない
更新は管理者に限られる
データの管理を目的としている

などがあります。例え、引越しをしたからと言って住所を各自自由に変えられるようにしてしまっては、従業員の情報を管理している側としては把握が難しくなってしまいます。
一方、トランザクションデータの特徴としては、

日々追加・更新が発生する
更新は各ユーザーが行える
集計を目的としている

などがあります。勤怠管理で言えば勤務時間はただ管理するのではなく、月単位や年単位での集計をすることが目的です。

以上のようにそもそもの利用目的が異なってくるので、テーブル設計をするときに「マスタなのかトランザクションなのか」を区別する必要があるとのことです。
この二つのデータ種別を勤怠管理のデータ構造に紐付けると以下のような感じですかね。

種別 カラム名
マスタデータ 従業員、部署、勤務体系、役職
トランザクションデータ 勤務時間、休憩時間

トランザクションデータのプライマリとマスタデータのプライマリを紐付けておくと、管理がしやすくなりそうですね。
残業時間だけ別カラムで分けると、会社全体の残業時間の算出とかも容易にできそうですね。

まとめ

データの種類によってテーブル設計を分けるということを調べてみました。
トランザクションデータの場合、集計目的ならRDBMSではなく、NoSQLを使用するほうが有効だったりするのかな。

それではこれにて、ではでは。

情報戦略テクノロジー