見出し画像

【TECH連載】マスタデータの定義とその管理方法について

【TECH連載】では当社エンジニアによるテック関連のニュースを中心に記事をお届けします!

こんにちは、AICROSS開発チームの樋口です。

今回のテーマはマスタデータについてです。
近年では企業が持つデータの爆発的な増加や多様化が進んでいます。
(いわゆるビックデータ)

そのため、今までは単一のシステム内で完結していたデータの管理が、近年では企業が持つ複数のシステムのデータを横断して全体的に管理をしていく必要が出てきています。
このデータ全体を体系的に管理していく上でキーとなっていくのがマスタデータの存在になります。

このマスタデータを正しく全体的に管理していくことにより、以下の実現が可能となります。

✅システム間の連携やシステム統合の際に整合性や一貫性のあるデータ品質が確保ができる
✅企業がもつ複数のシステムを横断したデータ分析が可能となり、高度なマーケティングや営業活動の活用に生かせる

このマスタデータの定義とその管理方法について、今回の記事では改めて自分なりに整理した内容を説明していきます。

マスタデータの定義(一般的な定義)

そもそもマスタデータとは何なのか?という基本から見ていきます。
一般的なマスタデータの定義は以下になります。

企業内のデータベースなどで、業務を遂行する際の基礎情報となるデータのこと。またそれらを集約したファイルやデータベースのテーブルなど。(IT用語辞典

一方トランザクションデータの定義は以下となります。

トランザクションデータとは、企業の情報システムなどが扱うデータの種類の一つで、業務に伴って発生した出来事の詳細を記録したデータのこと。
IT用語辞典

具体的な例でいうと以下のようになります。

<顧客管理システムの場合>
システムの利用者顧客商談アポイントの履歴等を管理するためのシステムのケースです。

画像1

マスタデータかどうかの判断は、そのシステム・業務にとって何が基礎情報となるのか?が基本的な判断基準となります。
このケースでは「システム利用者データ」「顧客データ」が業務の基礎情報となるためマスターデータとして分類されます。
また「商談データ」は顧客とのアポイントの履歴など業務に伴って発生した出来事を記録するデータのためトランザクションデータに分類されます。

✅マスタデータ:「システム利用者データ」「顧客データ」
✅トランザクションデータ:「商談データ」

マスタデータの定義(DMBOK)

一方、データマネジメントの知識体系であるDMBOK(データマネジメント知識体系ガイド)ではマスタデータの定義の説明はすこし違う説明になっています。
DBMOK(データマネジメント知識体系ガイド)
https://www.dama-japan.org/

DMBOKのマスタデータの定義
マスタデータは「ビジネストランザクションのコンテキストを提供するビジネスエンティティに関するデータ」を表します。マスタデータの最も一般的に見られるカテゴリは、個人および組織、および顧客、サプライヤ、従業員などのそれらの役割、製品、財務構造(元帳、コストセンターなど)、および場所の概念です。

この部分の説明ではマスタデータは基礎情報という表現ではなく、ビジネスエンティティに関するデータという表現になっていますが、IT用語辞典の説明とだいたい同じ意味になっています。

DMBOKのマスタデータの定義(続き)
マスタデータは参照データと区別する必要があります。どちらもビジネストランザクションのコンテキストを提供しますが、参照データは分類と分類に関係し、マスタデータはビジネスエンティティに関係します。

この部分の説明で「参照データ」と「マスタデータ」は明確に別物であると説明しています。
「参照データ」はコードとそのコードが表す意味で構成されるデータのことを指しています。

具体的な例として、以下のようなデータは業務の基礎情報であるマスタデータではなく、ただのコードとその意味を表すデータであるため「参照データ」に分類されます。

<マスタデータではなく参照データに分類されるもの>
✅都道府県のコードと名称を紐づける「都道府県マスタ」
✅郵便番号と住所を紐づける「郵便番号マスタ」
など

一般的にこの「参照データ」も〇〇マスタと呼ばれることが多いため、マスタデータであると思われる方が多いのですが、これはDMBOKでは「マスタデータ」ではなく、ただの「参照データ」の扱いになります。
※郵便番号と住所を管理することが目的のシステムであれば、郵便番号マスタも本当の意味でマスタデータにはなりますが、多くのシステムではこれは参照データとして取り扱っています。

マスタデータの定義(英語版wikipedia)

少し話は脱線しますが、英語版のwikipediaのマスタデータの説明に気になる記載があります。

Master Data(wikipedia)
https://en.wikipedia.org/wiki/Master_data

Master data is, by its nature, almost always non-transactional in nature. There exist edge cases where an organization may need to treat certain transactional processes and operations as "master data". This arises, for example, where information about master data entities, such as customers or products, is only contained within transactional data such as orders and receipts and is not housed separately.
(van der Lans, R. (2012). Data Virtualization for Business Intelligence Systems: Revolutionizing Data Integration for Data Warehouses. Elsevier. pp. 119–121. ISBN 9780123978172.)

翻訳するとこんな意味になります。

その性質上、ほとんどの場合、マスターデータは、本質的に非トランザクションです。ただし、組織が特定のトランザクションプロセスと操作を「マスタデータ」として扱う必要があるようなエッジケースも存在します。これは、例えば、顧客や製品などのマスタデータエンティティに関する情報が、注文や領収書などのトランザクションデータにのみ含まれ、個別に格納されていない場合に発生します。
(出典元:Data Virtualization for Business Intelligence Systems: Revolutionizing Data Integration for Data Warehouses. Elsevier. )

この説明にあるようにマスタデータは本質的に非トランザクションである。
という部分はDMBOKの定義とも同様なのですが、エッジケースでは「トランザクション」でかつ「マスタデータ」として取り扱うデータが存在するという説明になっています。
このエッジケースの具体的な例でいうと以下のようになります。

<入退館管理システムの場合>
システム利用者が施設に入館・退館する施設利用者の履歴を管理するシステムの例

画像2

この場合、「システム利用者データ」「施設データ」は業務の基本情報となるため、この2つは当然マスタデータに分類されます。

もう1つ施設利用者の情報も本来はマスタデータの対象になります。
(施設利用者の情報を管理するのがこのシステムの本来の目的であるため)
ただし、この場合においては、施設利用者の氏名、住所などの情報はトランザクションデータである「入退館データ」に含まれています。
この基礎情報の一部が含まれる「入退館データ」がエッジケースにおける「トランザクションデータ」であり「マスタデータ」となるという解釈になります。

ただ「トランザクションデータ」でかつ「マスタデータ」という存在はデータベースの設計上多くの混乱を招くことになるため、実際の設計においてこの考え方を取り込むことは難しいのが実情です。

ここでは、このような考え方もあるという理解に留めて、このケースにおいては素直に「入退館データ」は「トランザクションデータ」という分類にしておいたほうが良いのではないかと個人的には考えています。

マスタデータに関する誤った理解

これまで説明してきたマスタデータの定義の説明に照らし合わせて、よくあるマスタデータの誤った理解の例として以下のようなものがあります。

更新頻度が少ない固定的なデータがマスタデータ
マスタデータかどうかの判断はあくまで業務の基礎的なデータかどうか、という判断になります。
基礎的なデータであるために結果的に更新頻度が少ない傾向はありますが、あくまで傾向であって当然トランザクションデータにも更新頻度が少なく固定的なものも存在します。

システム管理者が更新するデータがマスタデータ
同様に基礎的なデータだからシステム管理者が更新することが多いという特徴を表しているたけです。顧客マスタなどはシステム管理者以外が更新する場合もありますが、これは当然マスタデータに分類されます。

マスタメンテナンス機能で管理するデータがマスタデータ
これはトートロジーであり本質的には説明にはなってはいませんが、「〇〇マスタ」という名前でマスタメンテナンス機能で更新するデータがあったとしても、実際は「参照データ」であるケースがよくあります。

マスターデータ管理(MDM)とは

ここまででマスタデータとは何か?がわかったところで、次はその管理方法です。
マスタデータの管理についてはMDM(Master Data Management)という考え方があります。

MDMとは、企業が持つマスターデータを体系的に整合性・一貫性を保ちつつどのように管理するか、の考え方のプロセスとなります。
MDMは単なるシステムとしてのデータ管理方法だけではなく企業としてマスタデータを管理するための業務と組織・体制の考え方も含みます。

マスタデータの管理では、個々のシステムのバラバラのマスタデータを統合して管理していく、というボトムアップのアプローチでは、最終的に整合性と一貫性の確保は困難です。
部分最適はどこまでいっても全体最適になることはありません。

MDMでは、マスタデータ管理における全体のガバナンスを決めて、個々のシステムのマスタデータをどのように管理していくかを検討するトップダウン全体最適のアプローチになります。

MDMについての全てをこの記事の中で説明するのは難しいので、ここでは、ガートナーが推奨するMDMのアプローチの4つを紹介します。

レジストリ型のアプローチ

レジストリ型は各システムのデータ管理者がそれぞれでマスタデータを管理し、統合マスタは各システムとのマスタのそれぞれの参照データのみをもつタイプのアプローチです。

画像3

集約型のアプローチ

集約型は企業がもつレジストリ型と同様に各システムのマスタデータを1つのデータベースに集約するタイプですが、レジストリ型との違いは統合マスタがマスタデータの実体を持つ点になります。

画像4

共存型のアプローチ

共存型はレジストリ型、集約型が、個別システムのマスタ→統合マスタへの一方通行だったのに対して、統合マスタ側でのマスタデータの反映を各システムに反映することにより、双方向でマスタデータを管理していく方法です。
ただし、個別システム側と統合マスタ側で同じデータを管理していくことから、運用上の複雑度は上がるため、データガバナンスとして厳格なルールを運用に設ける必要があります。

画像5

集権型のアプローチ

集約型は統合マスタ管理システムがマスタ管理を一元的におこない、各システムのマスタデータに反映していくタイプのアプローチです。
最もマスタデータのガバナンスが利く強力なアプローチですが、逆に個別システム側ではマスタデータの管理が出来なくなるため、集約型のアプローチの導入は今までの運用や体制の大きな見直しが必要となってきます。

画像6

最後に

マスタデータ管理については、どのアプローチを採用するべきかは、その組織の文化にも依存します。
強力なトップダウンでマスタデータの整合性を統制していくのであれば集権型になりますし、それぞれのチームの独立性を最大限に生かすのであればレジストリ型や集約型になります。(半面、全体的なデータガバナンスは薄まります)

マスタデータの管理については上記のように様々なアプローチがあり、弊社でもこの課題は、これから検討していく課題の1つとなっています。
今後どのようにこの課題を解決していくかは、進展があればまた別途紹介していきたいと考えていますので、今回はここまでの説明とさせていただきます。

この記事が気に入ったらサポートをしてみませんか?