データウェアハウスについて

はじめに

データウェアハウスについて初めて読んだ本は「Ralph Kimball著 藤本康秀監訳 “データウェアハウス・ツールキット” 日経BP社」でした.スタースキーマを前提にしてそこに書いてある内容は,納得できないものばかりでした.例えば,以下のような文章です.

実体関連モデルは,ユーザには理解不可能でDBMSソフトウェアにとっては有用に扱えないものなので,災難のようなものである.企業のデータウェアハウスの基盤として,実体関連モデルは使用できない.(p.34)

BusinessObjectsを使用してデータウェアハウスの構築行った後,この疑問について私見をまとめたのがこの文書です.

データウェアハウスとは

まず,データウェアハウスを以下の様に定義します.

データウェアハウス
データベースに蓄積した,およびアプリケーションルールで導き出したデータを,エンドユーザがある目的に沿って自由に検索でき,その検索結果の出力形式を制御できる仕組み.

そのため,データウェアハウスは,検索結果の表示を行うフロントエンドと,必要なデータの検索を容易にするためのバックエンドを持ちます.

図1. データウェアハウスの位置付け

データウェアハウスのフロントエンド

データウェアハウスと聞いてまず思い浮かべるのが,検索結果の表示を行うフロントエンドです.データウェアハウスパッケージのデモンストレーションでは,マウスで項目をちょいちょいっとドラッグ&ドロップするだけで,見栄えのするレポートがたちまちできあがります.

これらのパッケージを帳票作成ツールとして使うのであれば,フロントエンドの使い方を極めていけば事足ります.しかし,データウェアハウスとして使うのであれば,フロントエンドの使い方に力点を置くのは間違いです.力点は,データウェアハウスのバックエンドにあります.

データウェアハウスのバックエンド

データウェアハウスのバックエンドは,多くの場合データの蓄積機能を持ちます.三次元テーブルのような固有の蓄積方法を持つものもありますし,オラクルのような汎用DBMSを使用するものもあります.

しかし,このデータの蓄積機能がデータウェアハウスのバックエンドの要諦ではありません.エンドユーザが必要とするデータの在り処を,理解しやすい形でエンドユーザに「見せる」ことがバックエンドの要諦です.データウェアハウスのバックエンドの構築には,エンドユーザが自分のほしいデータを素早く見つけられることを第一義に考えなくてはなりません.

データウェアハウスのバックエンドに,正規化したデータモデルではなくスタースキーマや三次元テーブルを用いる理由は,エンドユーザに必要なデータの在り処をわかりやすく「見せる」ためです.エンドユーザとの最前面にあるのはデータウェアハウスのフロントエンドではなくバックエンドなのです.

つまり,データウェアハウスのバックエンドは,DBMSに構築したユーザインタフェースなのです.そして,このバックエンドの出来如何でデータウェアハウスの使い勝手が決まる,と言っても過言ではありません.

データの保証

ユーザインタフェースが信頼できるデータをエンドユーザに表示するために必要なこと,それはデータの信頼性をデータベースなりアプリケーションルールなりが保証することです.

例えば,あるテーブルのデータを一覧形式で表示する画面があったとします.もし,このテーブルにユニークインデックスがついていなかったら,画面に表示するデータは信頼に足るものでしょうか.データ重複の有無は画面を作るプログラムが検査しなくてはいけないのでしょうか.ユニークインデックスのついていないデーブルに問題があることは言うまでもありません.

話をデータウェアハウスに戻します.データウェアハウスのバックエンドは,DBMSに構築したユーザインタフェースであることは既に述べました.では,ここに入るデータの信頼性はどこが保証するのでしょうか.結論から言うと,データベースに構築したデータモデルとアプリケーションルールが保証します.しかし,保証すべきデータモデルとアプリケーションルールが欠落している場合も多々あります.

すなわち,画面や帳票を作りやすいように作ったテーブル,プログラムを作る際に便利に使えるように作ったテーブル,ここまでひどくはなくても,ある特定のシステムにべったり依存したテーブル,このようなテーブル群から信頼に足るデータを抽出することは可能でしょうか.

このようなテーブル群からデータを取り出し,データウェアハウスらしきものを構築することは可能です.このように作ったものをいくつも見ました.この状態での構築で最も時間がかかるのは,表示するデータの決定(どのテーブルのどの項目を使うのか)です.収拾がつかなくなり,作成するレポート用に項目を準備するなどという本末転倒な事態に陥ることもありました.これでは,データウェアハウスではなく,単なる帳票作成ツールです.

データウェアハウスに信頼に足るデータを提供できるデータモデルとアプリケーションルールの有無,データウェアハウス構築の成否を握る非常に大きな要因です.そして,大きいだけに認識しづらいものです.

まとめ

  • データウェアハウスはフロントエンドとバックエンドからなる.
  • バックエンドはDBMSに構築したユーザインタフェース.
  • データウェアハウスに信頼に足るデータを提供するのは,データモデルとアプリケーションルールの責任.

参考文献

W.H.Inmon "Building the DataWarehouse" John Wiley & Sons, Inc 1996
藤本康秀・小畑喜一監訳 “データウェアハウス構築術” インターナショナル トムソン パブリッシング ジャパン 1997

Ralph Kimball "The Data Warehouse Toolkit" John Wiley & Sons, Inc 1996
藤本康秀監訳 “データウェアハウス・ツールキット” 日経BP社 1998