データモデリング 入門編
データをビジネスで活用するためには、適切にデータを整理しどのように扱うのか計画をすることが非常に重要になります。
データモデリングは、データを構造化し情報の整理や管理を効率的に行うための設計手法です。
目次
はじめに
こんにちは。
モバイルソリューショングループのnakada.rです。
近年、企業が保有しているデータをビジネスに役立てる動きが活発になっており、DX・データ活用といったワードも浸透してきました。
分析ツールによるインサイトの抽出や、AIの活用による業務の自動化など、データを利用したビジネスロジックの変化は多岐にわたります。
しかし、データからビジネス的な価値を最大限引き出すためには、データを整理し適切に加工した上で「使える」状態にしておく必要があります。
データは持っているのにうまく使えない、どう整理しておけば良いのかわからないといった課題が生まれてしまうのも事実です。
本記事ではデータ活用のための基盤を適切に構築し効率的に運用する上で重要な概念となるデータモデリングに関してその重要性と具体的なモデリング手法を紹介します。
データモデリングの重要性
データはただ保有しているだけで十分な価値が生み出せるとは言えません。
システムを構成している様々な箇所に点在しているデータを利用できる形に集約し加工することで初めてデータを活用できる・価値を発揮できる状態となります
データモデリングとは、システムやデータベースで使用するデータを視覚的に表現してそれらの関係性を定義するプロセスです。
ビジネス要件やシステム要件に基づいてデータの構造を設計する工程であり、設計されたモデルはデータを利用する組織の目標とビジネスロジックを反映したものになります。
データモデリングの目的をまとめると大きく以下の3点が挙げられます。
1: 要件の整理と共有
ビジネス要件やデータを利用するユーザーの要件を整理し、技術的な設計に落とし込む。
「使える」データの状態を定義し、利用者間で共有する。
2: データの構造化
データを整理して、データの定義やそれらの関連性を明らかにする。
ビジネスやシステムの変化に対応するための保守性・拡張性を高める。
3: データの一貫性と品質の向上
データの冗長性や不整合を防ぎ、信頼性の高いデータ基盤を構築する。
データ分析や意思決定に活用するための品質を担保する。
データモデリングはシステム設計や基盤構築など技術者・エンジニアにとって欠かせないのはもちろんですが、
ビジネスロジックやルールをもとにして、データの価値を最大限引き出すための設計として組織全体として非常に重要なものであると言えます。
データモデリングの手法
ここでは有名なデータモデリングの手法をいくつかご紹介します。
3NF (第3正規系モデル)
3NFはデータベース内のテーブルと列の関係を厳密に管理するデータモデリング手法であり、正規化を介して冗長性を排除し参照一貫性を保持することを目的としています。
古くからRDB(リレーショナルデータベース)のモデリング方法として採用されている手法で、OLTP(オンライントランザクション処理)に適しています。
3NFのメリット
- 同じデータが複数の箇所に保管されていることがないためデータ更新時の一貫性が保持が容易
- データの冗長性が少ないことによる高いストレージの使用効率
- データが適度に分割されていることによるビジネスルールやロジックの反映のしやすさ
3NFのデメリット
- 複雑なクエリ(JOIN)や大規模なデータセットへのアクセスによるパフォーマンスの低下
- テーブル構造の複雑さによるデータ利用者(非エンジニア・ビジネスユーザー)の扱いにさ
ディメンショナルモデリング
ディメンショナルモデリングは分析粒度に合わせてデータを非正規化して、「ファクト」と「ディメンション」という2種類のテーブルでモデリングする手法です。
集計対象の測定項目(イベント)を持つファクトテーブルと、集計軸(参照データ・属性・コンテキスト)を持つディメンションテーブルを掛け合わせることによって、「何を」「どこで」「いつ」を表現します。
主にOLAP(オンライン分析処理)で用いられるモデリング手法であり、複雑な集計や分析を行う際のアプローチとして使用されます。
ディメンショナルモデリングのメリット
- ファクトテーブルと少数のディメンションテーブルの結合による高いパフォーマンス
- 列指向データウェアハウスとの高い親和性
- あらかじめ分析用途に設計・整備されていることによるデータ利用者の扱いやすさ
ディメンショナルモデリングのデメリット
- 分析要件を正確に把握した上でディメンション・ファクトを設計する必要があるため手間がかかる
- 頻繁なデータ書き込みや更新が求められる処理には不向き
ワイドな非正規化テーブル (ワイドテーブル)
高度に非正規化され多くのフィールドを持つ非常に幅の広いテーブル使用するアプローチで、ワイドテーブル・大福帳テーブルなどとも呼ばれます。
これまで説明した手法が厳密にデータをモデリングしていたのに対し、ワイドテーブルは1つのテーブルで分析対象を表現します。
この手法はBigQueryやSnowflakeなどのデータウェアハウスの普及とともに浸透したアプローチで、
クラウドによるストレージ価格の低下、列指向による幅の広いテーブルに対するクエリパフォーマンスの向上の利点を活かした手法です。
主にレポートツールのソースなどに利用されるモデリング手法です。
ワイドテーブルのメリット
- 非正規化と1つのテーブルを対象としたクエリによる列指向データベースでの高いパフォーマンス
- 設計とスキーマの変更の容易さ
ワイドテーブルのデメリット
- 1テーブルで様々なデータを保持することによるデータのサイロ化を招きやすい
- 冗長性が非常に高くなるためデータの更新が非効率
- データ構造が固定なため分析・ビジネス要件の変更に弱く柔軟性に欠ける
Data Vault
Data Vaultはデータの柔軟性、スケーラビリティ、監査性を重視したモデリング手法でビジネスを中心としてデータをモデリングする手法です。
ビジネスキーを格納するハブ(Hub)、ハブ同士の関係性を表現するリンク(Link)、属性や履歴データを保持するサテライト(Satellite)から構成されます。
これらの分離された設計からデータの変更や履歴の追跡に強く、大規模なデータを扱うエンタープライズ環境でよく見られます。
Data Vaultのメリット
- ハブ・リンク・サテライトの分離された設計による拡張性・柔軟性の高さ
- 元データを変更しない「不可変性」による監査性の高さ
- スキーマが異なる複数のソースシステムを一元的に統合する仕組み
Data Vaultのデメリット
- 分離設計によるモデルの複雑化とクエリパフォーマンスの低下
- 概念を理解し実装するための学習コストの高さ
- 履歴データを大量に保持するためストレージコストの増加
おわりに
データモデリングは、データが持つ価値を大きく左右する非常に重要なプロセスであると言えます。
しかし、今回紹介したようにそれぞれの手法に長所と短所が存在するため、状況や要件に合わせて適切・柔軟に選択することが求められます。
クラウドサービスやデータベースなどの技術的進歩と共に最適なアプローチは変化してきていますので、これからもキャッチアップが欠かせませんね。