本文へジャンプ

データベース/データ管理  >  DB2 Developer Domain  >  ライブラリー  >  技術白書-DB2ファミリー関連  >  
   
 

デシジョン・メーカ、ビジネス・データとRISQL®

 
 
コンテンツ
背景
戦略立案の障害となるもの
戦略立案の障害を克服
SQLがあきらめたところからスタートしたRISQL
レッドブリックRISQL拡張機能およびそのビジネス・アプリケーション
RISQLを使用した問題解決例
アロマ・データベース
自由度・信頼性の高いデータ・ハンドリング

背景
スーパーマーケットのバーコードリーダから銀行フロアに設置された金銭自動受け払い機(ATM)まで、 コンピュ−タ・テクノロジの進歩によってデータの取得は数千ものトランザクションが日常的に発生する レベルにまで進化してきました。
メインフレームおよびミニコン・データベースのメーカは最高のデータエントリ量をサポートするトップメーカの位置を狙ってしのぎを削っていますが、これらの広範囲に及ぶデータ・ リソースがひとまとめにされた場合、企業トップがそれを効率的に処理する支援用ツールはほとんど見当たりません。

変化する状況とさらに激化する競争環境にあって、デシジョン・メーカには絶えず企業の軌道修正が 求められています。的確な意思決定を行うためには、デシジョン・メーカが、ビジネス環境、競合および社内の業務進行状況について正確で意味のある情報を持たなくてはなりません。
大小を問わず、企業データベースに 格納されている情報の分析は、いまやあらゆる業種の企業にとって生死を分かつまでになってきました。

ビジネス上必須の意思決定を導き出すために必要な事実の多くは、企業のデータベース管理システム (DBMS)中に存在するわけですが、そのデータ内に潜んでいる情報は、検索するにはコストがかかり過ぎるか、 または単にアクセス不能であるかのいずれかです。

たとえば、企業トップが情報システム(IS)部門から地域別の売上げ明細、セールスマン配置や 製品について報告を求めるのはごく普通のことですが、多くの場合これらのレポートは就業時間外に 作成されなければなりません。
その理由は、数百もの記録の検索・仕訳にコンピュ−ティング・ パワーとネットワークを占有すれば、その間は業務システムが停止してしまうからです。

何億というレコード数をもつ企業データベース上で、単純なものから複雑なものまで、 たった一つの検索を実行するだけで、完了までには数分から数時間もの時間がかかってしまい、そのためにコンピュ−ティングおよびネットワーク性能が、かなりの劣化を余儀なくされることになります。

通常、レポートはトータル・データのサブセットに基づいて作成されますが、DBMSはほとんどのレコード内コンテンツをチェックしていくため、 検索の範囲は狭くなります。さらに問題となるのは、企業トップが企業のデータを見ている方法と、 それに基づいてデータベース・プログラマがデータを構成した方法が違うことです。
方法によってはレポート作成時にシステムがさらにスローダウンするケースもあります。 これは企業内での立案に必要なデータの、信頼性に対する信頼感を覆す結果になります。


戦略立案の障害となるもの
SQL(Structured Query Language)はIBMが開発したDBMS用照会言語です。SQLはメインフレームや ミニコンピュ−タ・システムで広く使用され、クライアント/サーバ型ネットワークにもだんだん多く実装 されるようになってきており、パソコンからもSQLを使用して企業のリレーショナル・ データベース管理システム(RDBMS)にアクセス可能です。

SQLの長所は、多くのデータベース管理パッケージで使用できること、 それにデータに依存しないことです。すなわち、ユーザはデータへの物理的アクセス方法の 子細を気にする必要はありません。理論上は、SQLはデバイス非依存でもあり、 メインフレーム、ミニコン、パソコンのどのデータベースへのアクセスにも使用可能です。

しかし、短所もあります。

SQLはコンピュ−タ化されたデータベース管理用の業界標準言語ですが、デシジョン・メーカが 通常投げかける多くの問い(質問)を表現するには不向きなため、通常ビジネス分析アプリケーションに使用することはできません。

また、ほとんどのRDBMSは、コンピュ−タ化されたオンライン・トランザクション処理(OLTP)に 最適化されています。OLTPでは、航空会社のフライト予約、ATMトランザクション、販売受発注業務処理など プールされたデータの頻繁な個別変更を追跡処理します。OLTPシステムは日常業務処理を対象に設計されており、 ビジネス上の分析用にデータを供給してくれるものではなく、データにアクセスして分析を行うという企業トップの 新しい行動・機能要件に十分対応できるようなものでもありません。

分析目的でビジネス・データを操作するための、実用的なコスト効率のよい方法に対するデシジョン ・メーカのニーズが引金となって、1991年、IBMは「データ・インフォメーション・アプリケーション」 というツールセットを使用した「データ・インフォメーション」と呼ばれる新しいデータ管理手法を開発しました。


戦略立案の障害を克服
情報ウェアハウスすなわちデータ・ウェアハウスは、全社レベルおよび外部データの分析用大型・履歴データベースです。

データ・ウェアハウス・アプリケーションは、特に検索処理を念頭において設計されています。 その結果、その作成アーキテクチャは、OLTP用に設計されたシステムより本質的に効率が高く考案されています。 システム内に格納されているデータを利用できること、およびそれを検索する方法が各種存在することが、 戦略立案過程でデシジョン・メーカから信頼される基盤を成しています。
企業内データのすべてが容易に利用可能になれば、 それに基づく意思決定もいっそう信頼性の高いものになるからです。

Red Brick Warehouseは、情報システムおよび自社のビジネス管理アプリケーションの品質・ 性能を改良したいと願う企業トップ向けのクライアント/サーバ型データ・ウェアハウス用RDBMSです。 データの抽出ツールが既存のアプリケーションから必要なデータを検索し、整合性を確保するためにそのデータを 「洗浄」し、そして企業デシジョン・メーカが理解・使用可能な形式に変換します。
この変換されたデータは、 一般にネットワーク経由でデータ・ウェアハウス・サーバに転送され、そこでウェアハウス・ローダが変換された データを読み取り、インデックス付けし、整合性チェックを行い、データ・ウェアハウスに格納します。


SQLがあきらめたところからスタートしたRISQL
SQLを採用した既存のリレーショナル・データベース・システムの場合、 「シカゴの今年度の売上げを今年度のニューヨークの売上げと比較せよ」といった単純なビジネス 向きの質問を投じることすら困難です。SQLの複雑性、加えて元来不足しているビジネス分析機能のため、 この種の基本的な質問への解答が妨げられ、その結果検索性能は決して高くありません。

レッドブリックのシステムの中心となるのが、特に企業トップ向けに設計されたRISQL (Red Brick Intelligent SQL)アーキテクチャです。RISQLはSQLのビジネス分析拡張機能セットであり、 ランク付け、移動平均、比較、市場占有率、今年度/昨年度間比較などデータ分析および意思決定支援 アプリケーションに適した各種の強力な演算または拡張機能でSQLを強化したものです。
RISQLは、 特に複雑なビジネス・クエリー作成を単純化し、容易に迅速に解答を取得し、さらにはアプリケーション 開発コストを引き下げることを目的に開発されたものです(ボックス参照)。

SQLクエリーだけでは、意思決定にごくありふれた質問でも投じることができませんから、 しばしばRDBMSデータにアクセスできません。

レッドブリックRISQL拡張機能およびそのビジネス・アプリケーション

Decode-内部処理目的に多く使用されるコードを、一般に理解されている値への変更または変換。 例:「各地域の売上げを月別にリストし、コード番号ではなく地域実名で示せ」

Cume-カラム内の値のランニング・トータルまたは累計を算出。 例:「各製品の月次売上げと月別当年累計の数字を示せ」

MovingAvg(n)-カレント行とそれ以前のn-1行を使用してカラムの移動平均を算出。 例:「過去2年分の製品売上げの6ヶ月間の移動平均を示せ」

MovingSum(s)-カレント行とそれ以前のn-1行を使用してカラムの移動和を算出。 例:「月別売上とその月までの過去12ヶ月分総売上を示せ」

Rank...When-カラムの値のソートに基づき結果行に連続する数値を割り当てる。 WHEN節を使用した場合は結果を「上位n」または「下位n」に制限する。 例:「昨年度売上げに基づき上位50の顧客をリストせよ。顧客名でリストをソートせよ」

RatioToReport-全行について、カラム合計に対する各行のカラム値の百分率を算出する。 例:「製品種別毎の売上げと販売合計の百分率を示せ」

Tertile-カラムの値に基づき、結果の各行に値「高」「中」「低」を割り付けて3階層のランク付けを実行する。 例:「昨年度分として作成した収益に基づき製品を3グループ分けよ」

Create Macro-普段使用するクエリーまたはサブクエリーのパラメータ化、および 1回の書き込みにより多数ユーザ間での共有を可能にする。 例:「今年度の売上げをリストし、過去5年間の各年度の売上げと比較せよ」

データベースのクエリーに使用されるSQL語彙をRISQL用途に拡張したことにより、 ウェアハウス・システムはビジネスに必須な質問のフレーム化を容易にしています。 結果として、データ・ウェアハウスは、デシジョン・メーカが自社にとって必要なビジネス情報を取得するために 利用可能な、最高速で最も自由度の高い手段となりました。

レッドブリックのデータ・ウェアハウス手法は、オープンな標準ベース環境で動作します。レッドブリック のアプリケーションは明らかに他を上回るクエリー、ロードおよびインデックス性能を発揮し、サポートも管理も容易です。

デシジョン・メーカにとって、RISQLを使用したデータ・ウェアハウスは、豊富なファクト(事実)へ 高速で簡単にアクセスする方法を提供してくれるシステムです。ファクトは整合性を保ち、完全で、 扱いやすく分かりやすい形式で格納されます。オープンな標準環境でデータ・ウェアハウジングが実現されていれば、 複数企業がグループとして、任意のクライアント・ツール、統計パッケージ、ワークステーションやデスクトップ・ システムを使用し独力でデータを検索、分析、フォーマット化することができます。これでユーザは必要なデータの提供を、わざわざ情報システム部門に依頼する必要はなくなります。


RISQLを使用した問題解決例
デシジョン・メーカにとって、たとえば製品販売の月次ランニング・トータルを分析したいと いったケースがあります。たしかにSQLでも、SELECT文を使用して月別売上げを表示することができますが、 連続する数カ月分の月別売上げのランニング・トータルを算出・表示するとなると、通常のSQLでは対応できません。 このタスクに適応したRISQL文であれば、売上げを自動的に選択、ソート、計算し、有用な比較テーブルを出力することができます。


アロマ・データベース
「アロマ・データベース」(Aroma Database)とは、いくつかのコーヒー製品、 その販売店および複数市場に関する情報を格納した架空のサンプル・データベースです。 このデータベースには、2年分の月別売上げデータが格納されています。以下に掲げる例では、 技術的な詳細に入るのではなく、RISQLのいくつかの使用法についてその概要を示します。 RISQLの技術的側面について詳細情報が必要な場合は、レッドブリックのホワイト・ペーパー 「RISQL Extensions to SQL - Optional Functions that Extend SQL Applicability」をご覧下さい。

クエリー:「1993年度のサンフランシスコ地区のコロンビア・コーヒーの月別ランニング・トータルは?」

この情報を得るには、RISQLのCUME機能を使用することになります。クエリー1つを実行するだけで複数の都市に ついてランニング・トータルを算出できます。

結果は以下のような表示になるでしょう。

月別売上げ 売上げ累積 月別売上量 累計売上量
Jan $1,022.36 $1,022.36 838 838
Feb $1,035.78 $2,058.14 849 1,687
Mar $1,038.22 $3,096.36 851 2,538
Apr $1,052.86 $4,149.22 863 3,401
May $1,062.62 $5,211.84 871 4,272
Jun $1,087.02 $6,298.86 891 5,163
Jul $1,099.22 $7,398.08 901 6,064
Aug $1,113.86 $8,511.94 913 6,977
Sep $1,124.84 $9,636.78 922 7,899
Oct $1,145.58 $10,782.36 936 8,838
Nov $1,156.56 $11,938.92 948 9,786
Dec $1,167.54 $13,106.46 957 10,743

クエリー:「季節変動性を度外視した場合、1993年度のマイアミ地区におけるExpresso XOの販売状況は?」

この結果を求めるには、 RISQLのMOVINGAVG機能を使用します。月次平均は一般に時間経過と共に変動し、大きく変動した場合、 その奥にある長期傾向は見えなくなります。移動平均を出せばこれらの変動を小さくする、緩和する、 または季節変動の影響を除去することができます。

結果は以下のようになります。

売上げ量 3ヶ月移動
平均
3ヶ月移動和
Jan 301 NULL NULL
Feb 311 NULL NULL
Mar 322 $311.33 $934.00
Apr 343 $325.33 $976.00
May 347 $337.33 $1,012.00
Jun 549 $413.00 $1,239.00
Jul 527 $474.33 $1,423.00
Aug 536 $537.33 $1,612.00
Sep 577 $546.67 $1,640.00
Oct 603 $572.00 $1,716.00
Nov 627 $602.33 $1,807.00
Dec 651 $627.00 $1,881.00

クエリー:「1993年の米国のLotta Latteコーヒー月別売上の上位10ヶ月は? 各月に対応する売上量ランクは?」

RISQLでは、RANK機能を使用すれば数値の任意の組み合わせをランク付けし、 次いで関心のあるレコードだけを選択することができます。この例では、データベース内の全コーヒー製品の 売上げをランク付けできるわけですが、上位10、下位10だけを表示することも、検索条件で表現可能な任意の 他の組み合わせで表示することも可能です。

結果は以下のようになります。

都市 月別
売上げ
売上げ金額
ランク
売上量ランク
Los Angeles Nov $1,140.21 2 7
Los Angeles Aug $1,136.52 9 10
Los Angeles Oct $1,138.98 4 8
Los Angeles Dec $4,141.44 1 6
Los Angeles Sep $1,137.75 7 9
San Francisco Apr $1,138.26 5 2
San Francisco Feb $1,138.26 5 2
San Francisco Jan $1,137.04 8 4
San Francisco Dec $1,139.48 3 1
San Francisco Nov $1,135.82 10 5

クエリー:「1992年第3および第4四半期のサンフランシスコと ロサンゼルスのXalapa Lapaコーヒーの販売で、どの月のシェアが一番大きい?」

月別の数値、移動平均、および年間ランクを見るとき、ある月が1年間の数値の中で占める割合 (分数値)を知る必要があることがよくあります。RISQLのRATIOTOREPORT機能を使用すればこれらの分数値を算出し、 以下のような結果を得ることができます。

都市 売上げ 比率
San Francisco Jul $330.62 24%
San Francisco Aug $331.84 25%
San Francisco Sep $336.06 25%
San Francisco Oct $208.62 15%
San Francisco Nov $74.42 5%
San Francisco Dec $75.64 6%
Los Angeles Jul $827.79 25%
Los Angeles Aug $654.36 20%
Los Angeles Sep $649.44 19%
Los Angeles Oct $517.83 16%
Los Angeles Nov $414.51 12%
Los Angeles Dec $271.83 8%

クエリー:「1992年第1および第2四半期のサンフランシスコ地区の Aroma Romaのドル単位売上げ金額および売上量のサブトータルは?」

RISQLのORDER BY小節を使用すれば、クエリーのORDER BY節にBREAK BY SUMMING小節を 含めることでコントロール・ブレークが発生するたびにサブトータルをリクエストできます。 下記の例では、1992年第1および第2四半期のサンフランシスコ地区のAroma Roma売上げの四半期毎の サブトータルを算出しています。

このクエリーの解答は以下のようになります。

四半期 売上げ 売上げ量 単位
あたりコスト
1 1 $1,135.82 93.10 $12.20
1 2 $1,155.34 94.70 $12.20
1 3 $1,167.54 95.70 $12.20
1 NULL $3,458.70 283.50 $36.60
2 4 $1,180.96 96.80 $12.20
2 6 $1,137.04 93.20 $12.20
2 5 $1,132.16 92.80 $12.20
2 NULL $3,450.16 282.80 $36.60
NULL NULL $6,908.86 566.30 $73.20

クエリー:「1993年6月、フェニックスを除く西部都市での個々の製品売上げの互いの比較は?」

通常、表計算フォーマットで数字をDECODE関数またはselectリスト・サブクエリーを使って比較する必要が生じます。 DECODE関数で表示された各カラムを下記の情報で定義しなければなりません。

  • 表示するカラム
  • ターゲット値
  • ターゲットの代わりの値

このクエリー例では、フェニックスを除く全西部都市での全コーヒー製品の売上げを表示しています。

製品 LA OAK SJ SF
Aroma Roma $501.84 $0.00 $142.50 $1,052.86
Cafe Au Lait $752.76 $0.00 $0.00 $259.86
Colombiano $987.69 $371.80 $990.00 $1,087.02
Demitasse MS $849.93 $0.00 $0.00 $1,026.02
Expresso XO $948.33 $0.00 $0.00 $1,138.26
Lotta Latte $1,134.06 $118.80 $377.50 $985.76
Veracruzano $889.29 $0.00 $15.00 $635.62
Xalapa Lapa $296.43 $29.70 $742.50 $1,114.68

クエリー:「1993年のどの月においてサンフランシスコ地区の Lotta Latte売上げが1992年の同地区での平均月次売上げを下回ったか?」

サブクエリーとは、別のクエリー内で発生するクエリーで、あるテーブルから、 別のテーブルで得た情報に基づいて情報を検索可能です。この例では、 1993年の月別売上げだけを検索しており、それを1992年の売上げ平均と比較しています。 以下に1992年平均に対するサブクエリーを示します。

製品 都市 1993年売上げ 1992年
売上げ平均
Lotta Latte San Francisco May $986.98 $1,073.80
Lotta Latte San Francisco Jun $985.76 $1,073.80

クエリー:「1992年6月のサンフランシスコ地区のコーヒー売上げは、1993年売上げと比較してどうか?」

多くの場合、クエリーは基本命令ブロックにマイナーな変更を加えてそれを数回繰り返して使用します。 これらのバリエーションは都合の良いパラメータ候補になります。たとえば、当年のコーヒー売上げと 前年とを比較するクエリーには、類似した2つの命令ブロックが含まれます。その1つは当年の売上げを検索し、 もう1つは前年分を検索します。「年」のパラメータを含むマクロは、手動で入力しなければならない命令数を 減らしてくれます。

この例では、親クエリーが1992年6月の月別コーヒー製品売上げを検索し、マクロにより1993年の対応部分を取得します。

製品 1992年売上げ 1993年売上げ
Aroma Roma $1,137.04 $1,052.86
Cafe Au Lait $1,113.86 $259.86
Colombiano $806.42 $1,087.02
Demitasse MS $1,028.46 $1,026.02
Expresso XO $1,218.78 $1,138.26
Lotta Latte $1,184.62 $985.76
Veracruzano $333.06 $635.62
Xalapa Lapa $1,185.84 $1,114.68

自由度・信頼性の高いデータ・ハンドリング
これまでに見てきた例は、RISQLを使うことによって、ビジネス上の意思決定を下すために必要な データの収集がどれだけ容易になるのかを示す、ほんの一例です。

貴社のアプリケーションおよびニーズが、ここに示したものと類似したものであれ、 もっと複雑なものであれ、RISQLの柔軟性と信頼性は実証されており、 貴社が信頼し確信をもって使用できる情報を、必ず入手可能にするでしょう。

上に戻る