目的
この記事では、応用情報技術者試験の出題分野であるデータベースの応用に関する覚書きを列挙する。
データウェアハウスとOLAP
応用情報技術 -
基礎覚書き:データベース(トランザクション管理)のトランザクション管理は、OLTP(Online Transaction Processing)といい、オンラインが前提となる。
OLTPは、リアルタイムのデータ管理に適しているが、複雑で分析的な問い合わせに向いておらず、利用者の動向など統計的なデータ分析が難しい。
そのため、以下に示すデータウェアハウスを用いたOLAPという分析手段が考えられた。
-
データウェアハウス
経営的な意思決定を目的とした分析のために、業務データを多次元データとして長期的に蓄積し、管理する仕組みを指す。
業務データの大別単位で書式、表記を統一したデータを時系列に分けてその時点のデータを保存するため、あらゆる条件のデータをスムーズに取り出すことができる。
※ データウェアハウスの構成や操作については、次項を参照。 -
OLAP(Online Analytical Processing)
OLAPとは、RDB(関係型データベース、リレーショナルデータ)などのOLTPデータをスナップショットとして取り、別のデータベースに移行させ、分析用として多次元データとして再構成することで様々な角度(分析軸)から視覚的に分析を行う処理や操作のことを指す。
データウェアハウスの構成と基本操作
データウェアハウスにおいて、実際の分析対象となる期間別の大量データ(ファクトデータ)を記録したテーブルをファクトテーブルといい、データウェアハウスに \(1\) つ以上存在する。
※ 複数のデータベースから統合する場合は、事前にデータクレンジングを行い、データ形式やコード体系を統一する。
また、ファクトテーブルと一対多の関係で紐付き、それぞれの分析軸(分析観点)を持つテーブルをディメンションテーブルといい、\(E-R\) 図で表すと中心にくるファクトテーブルの周りをディメンションテーブルが囲む形になることから、このデータ構成は、スタースキーマと呼ばれる。
以下は、データウェアハウスの基本操作。
-
スライシング
多次元データを断面的に切取り、\(2\) 次元の表にする操作。 -
ダイシング
データの分析軸を変更し、視点を変更する操作。 -
ドリリング
以下の方法で分析・集計結果をさらに分析または、集計する操作。- ドリルダウン(または、ロールダウン)
分析結果を更に深堀りし、詳細データに分ける操作。
例えば、年月単位の分析結果を日単位の詳細データに分ける。 - ドリルアップ(または、ロールアップ)
分析結果を集計し、データをまとめる操作。
例えば、年月単位の分析結果を年単位のデータに集計する。
- ドリルダウン(または、ロールダウン)
分散データベース
分散データベースとは、データベース障害耐性や通信負荷の軽減、パフォーマンス向上を目的に複数のサーバーを立て、\(DBMS\)(データベース管理システム)を分散配置したデータベースで、利用者にデータ分散を意識させない透過性の仕組みを持つデータベースシステムを指す。
※ 透過性を満たすためには、分散したデータベース間で同期をとり、一斉にデータを更新する \(2\) 相コミットの仕組みが必須となる。
分散データベースは、\(DBMS\)(データベース管理システム)を並行稼働させるため、下記特性 \(1\) ~ 特性 \(3\) の \(3\) つの特性を同時に保証することができない。
また、同時に保証できるのは、下記成立パターン \(1\) ~ 成立パターン \(3\) の場合の \(2\) つの組み合わせのみとなり、この理論 \(CAP\) 定理(または、ブリュワーの定理)という。
-
特性 \(1\): \([C]\) 一貫性(Consistency)
全てのノードで同じデータが参照できること。 -
特性 \(2\): \([A]\) 可用性(Availability)
一部のノードで障害が発生しても生存ノードが必ず応答でき、常時最新データにアクセスできる状態であること。 -
特性 \(3\): \([P]\) ネットワーク分断耐性(Partition-tolerance)
ネットワークの分断によって、 \(2\) つ以上のノード群が互いに通信できない状態になっても正常に動作すること。 -
成立パターン \(1\): \([C]\) 一貫性と \([A]\) 可用性の場合
トランザクション管理で整合性を保つには、ノード間で通信する必要があるため、全てのノードで常時通信し、最新データに更新する必要がある。 この時、ネットワーク分断が起きた時点で通信できない状態に陥り、 \([C]\) 一貫性と \([A]\) 可用性が破綻するため、 \([P]\) ネットワーク分断耐性を同時保証できない。 -
成立パターン \(2\): \([C]\) 一貫性と \([P]\) ネットワーク分断耐性の場合
ネットワーク分断が発生した場合、 \([P]\) ネットワーク分断耐性により、分断復旧中となった際、 \([C]\) 一貫性を保証するため、分断復旧が完了するまで、最新データにアクセスできない状態となり、\([A]\) 可用性が保証できない。 -
成立パターン \(3\): \([A]\) 可用性と \([P]\) ネットワーク分断耐性の場合
ネットワーク分断があったとしても、最新データでサービスの継続が可能だが、分断されたサーバーのデータベースは、最新である保障がないため、 \([C]\) 一貫性が保証できない。
ビッグデータ
ビッグデータとは、\(DBMS\)(データベース管理システム)で取り扱うことが困難なデータ群や従来の技術による処理量を超えた大量のデータ群を指し、画像、音声、ログ、位置情報などの非構造化データや定型的でないデータも含まれる。
このデータはすべてデータレイクと呼ばれるビッグデータを加工前のまま多様な形式(構造化データ、半構造化データ、非構造化データ)で保持できる中央ストレージリポジトリに保存される。
ビッグデータを取り扱うために必要な代表的な技術として、以下の仕組みがある。
-
グリッドコンピューティング
分散コンピューティング(distributed computing)とも呼ばれ、大量データの分析など大きなタスクを実行するためにネットワーク上の複数コンピューターを連結し、仮想的なスーパーコンピューターとして共同動作するコンピューターシステムを指す。 -
データマイニング
大量データを統計学やパターン認識、人工知能などの分析手法を駆使して、パターンや相関、異常値などの新しい知見を得るための技術、またはそのプロセスを指す。 -
超並列コンピュータ
安価なマイクロプロセッサーを数千~数万台結合させて、並列処理にすることで高速化を図ったコンピューターを指し、スーパーコンピューター並みの演算速度を持つ。 -
\(NoSQL\)(Not Only SQL)
\(RDBMS\)(リレーショナルデータベース管理システム)以外の \(DBMS\)(データベース管理システム)を指し、非 \(RDBMS\) であることを指すおおまかな分類語で、非 \(RDBMS\)の利用、発展を促進する運動標語の意味合いも持つ。
参考文献
- 瀬戸 美月 (\(2020\)) 『徹底攻略 応用情報技術者教科書』株式会社インプレス