多次元データベース<データベース<情報技術の基礎<Web教材<木暮

Web教材一覧データベース

多次元データベース(MDDB)

学習のポイント

データウェアハウスで広く利用されている多次元データベースについて,次の事項を理解する。

  1. 多次元データベースの利用分野について理解する
  2. 多次元データベースの基本操作であるスライシング,ダイシング,ドリリングについて理解する
  3. スノー構造について理解する
  4. 多次元データベースの種類として,MOLAPとROLAPの特徴を理解する

キーワード

データウェアハウス,OLAP,多次元データベース,スライシング,ダイシング,ドリリング,スター構造,スノーフレーク構造,MOLAP,ROLAP


多次元データベースの基本操作

多次元データベースの意味

データウェアハウスのように,エンドユーザーが直接にデータベースを検索加工して問題発見をしたり問題解決をする分析を主とする利用形態を,RDBの提唱者であるE.F.Coddは,OLAP(Online Analytical Processing)と命名し,その目的にはRDBよりも多次元データベース(MDDB:Multi-Dimensional Database)が適していることを示した。

「多次元」というと難しそうであるが,月別・商品別の売上データを,横に月,縦に商品をとれば2次元の表になる。月別・商品別・支店別の売上データは3次元になる(1)。さらに月別・商品別・支店別・で売上,原価,利益のような会計区分を加えれば4次元になるというように表の次元は増大する。このような表の形式にしたものを多次元データベースという。

3つの基本操作

多次元データベースの基本操作には,スライシング,ダイシング,ドリリングがある。

スライシング

パンやハムをスライスするように,スライシングとは,多次元データベースをある断面で切り取って2次元の表にする操作である。上図では,大阪支店の部分でスライシングして(2)の表にしている。このとき,大阪と名古屋の2枚の断面を切り取り,その合計値を1枚の表にするようなこともできる。

ダイシング

ダイスとはサイコロのことで,ダイシングとはサイコロを振ることである。多次元データベースでの操作では,縦軸と横軸を指定して2次元の表にする操作を指す。たとえば(3)は,(1)を横から見た状態で,縦軸に商品,横軸に支店を指定したものであり,(4)は,上から見た状態,すなわち,縦軸に支店,横軸に月を指定したものである。

ドリリング

ドリリングとは,ドリルで深く掘り進むことである。多次元データベースでは,詳細に展開する操作をドリルダウンといい,逆に集計する操作をドリルアップという。(4)で東京支店を指定してドリルダウンを行うと,(5)のように東京支店の店舗別の表ができる。また,(5)を縦軸でドリルアップすると(4)のような集計表になる。


多次元データベースの構造

多次元データベースと正規化ファイルとの関係

たとえば上図売上(月,商品,支店)すなわち,A(I,J,K)の配列としてとらえることもできるが,下のように正規化したテーブル群に分解することができる。また,正規化されたファイル群を多次元データベースに変換することもできる。

 売上テーブル       店舗テーブル      支店テーブル   商品テーブル
 ──────────   ─────────   ──────   ──────
 店舗 月 商品 金額   店舗 店舗 支店    支店 支店名   商品 商品名
 コード  コード     コード   コード   コード      コード
 ──────────   ─────────   ──────   ──────
 11 4 1  40   11 銀座  1    1  東京    1  テレビ   
 11 4 2  28   12 新宿  1    2  大阪    2  パソコン
 11 4 3  12   13 渋谷  1    3  名古屋   3  冷蔵庫
 11 5 1  37   :  :   :    ──────   ──────
 11 5 2  21   32 栄   3
 :  : :   :   ─────────
 12 4 1  35
 12 4 2  20   (ここでは,月は名称自体が数値なので,
 :  : :   :    あえて年月テーブルを作らなかったが,
 32 6 2  12    論理的にはそれが存在する。)
 32 6 3   8
 ──────────

             多次元データベースのRDB的な表示

スター構造,スノーフレーク構造

ここでの用語は,多次元データベースというよりも,更新をしないで検索加工を高速に行なうDBMSの代表的な商品であるRedBrickでの用語である。

これは下図のようにも表現できる。売上テーブルのようなイベントファイルをファクト(fact)テーブルといい,店舗テーブルや支店テーブルのようなマスタファイルをディメンション(dimension)テーブルという。一つのファクトテーブル(売上テーブル)に,3つのディメンションテーブル(商品テーブル,支店テーブル,年月テーブル)が結合しているが,これらの各ディメンションテーブルが一つの軸(縦軸や横軸)になるので,この多次元データベースは3次元になる。また,店舗テーブルは支店テーブルの詳細であり,ディメンションテーブルのディメンションテーブルであるともいえる。

   ┌──┐ ┌──┐ ┏━━┓ ┌──┐
   │支店│ │店舗│ ┃売上┃ │商品│
   │テー├─┤テー├─┨テー┠─┤テー│
   │ブル│ │ブル│ ┃ブル┃ │ブル│
   └──┘ └──┘ ┗┯━┛ └──┘
            ┌─┴─┐
            │年月テ│
            │ーブル│
            └───┘

           テーブル間の関係

この関係を一般化すると,下図(1)のように,一つのファクトテーブルと複数のディメンションテーブルが結合したスター(星)構造で表現される。この図では6次元になっている。さらに,上記の店舗テーブルのように,ディメンションテーブルが複数のディメンションデーブルを持つことがあり,(2)のようなスノーフレーク(雪片)構造になる。


MOLAPとROLAP

多次元データベースのデータの持ち方には,MOLAP(MDDB-OLAP)とROLAP(RDB-OLAP)に区分できる。両者の特徴を示す。

          MOLAP ROLAP
          ---------- ---------
    内部構造  MDDB  RDB
    内容変更  しにくい  しやすい
    計算処理  登録時   実行時
    登録時間  長時間   短時間
    実行時間  高速    低速

MOLAP

多次元のデータをそのままの形で保存する。合計欄があるが,それもデータベースを作成するときに計算しておく。この方式には次の特徴がある。

ROLAP

多次元データベースは正規化されたファイル,すなわちRDBとして持つことができる。実際のデータはRDBの形式で持ち,インデクスを工夫することにより,利用者には多次元データベースとして見せるようにしたのがROLAPである。この特徴は,MOLAPの逆である。


理解度チェック

第1問

  1. [ 1 ]のように,分析を主とする処理形態を[ 2 ]というが,[ 2 ]にはRDBよりも[ 3 ]データベースのほうが適しているといわれている。[ 3 ]データベースの基本操作には,サイコロを転がすように任意の2つの軸により2次元の表を表示させる[ 4 ]操作,現在の2つの軸を固定して奥の断面を表示させる[ 5 ]操作,詳細に展開したり,逆に集約した表を表示させる[ 6 ]操作がある。[ 3 ]データベースには,当初から[ 3 ]データベースとして構築される[ 7 ]と,本来はRDBであるが,インデクスを工夫して[ 3 ]データベースのように見せる[ 8 ]の2種類がある。
    1 データウェアハウス 2 OLAP 3 多次元 4 ダイシング 5 スライシング 6 ドリリング 7 MOLAP 8 ROLAP

第2問

  1. 基幹系システムに求められるデータベースの機能と,データウェアハウスでのそれとを比較せよ。
  2. データウェアハウスでのデータの持ち方と,データマートでのそれとを比較せよ。
  3. データマートのデータはメインフレームの基幹系システムにあるのだから,それから直接にデータマートに加工すればよいので,データウェアハウスは不要であるとの意見について論ぜよ。

本シリーズの目次へ