基本情報のOLTPとOLAPの違いを業務例と分析操作で理解する

取引処理の買い物模型と売上分析の透明キューブ教材

OLTPは注文・決済・予約などの取引を処理し、OLAPは蓄積した売上などをさまざまな切り口で分析する仕組みです。同じ販売データを扱っていても、今の注文を成立させるのか、過去の売上から判断材料を得るのかで役割が変わります。

基本情報の学習では、この目的の違いを押さえたうえで、OLAPのドリルダウン・ロールアップ・スライス・ダイス・ピボットを見分けると整理しやすくなります。この記事では自作の小さな売上表を使い、操作の前後に何が変わるかを確認します。

この記事のポイント
  • 受注を確定する処理と売上を比較する処理の区別
  • 時間・地域・商品を分析軸として読む方法
  • 集計の細かさ・対象範囲・表示方向による操作の選び方
  • 自作例題の答えと間違えやすい選択肢の理由
無料

基本情報技術者試験 過去問アプリ

本番形式で繰り返し解ける。スキマ時間に1問から

2,000問以上収録
無料で過去問を解く
目次

基本情報のOLTPとOLAPの違い

注文を表す商品模型と多次元分析を表す積み木模型

取引を進めるか分析するか

OLTPはOnline Transaction Processing、OLAPはOnline Analytical Processingの略です。日本語ではそれぞれオンライントランザクション処理、オンライン分析処理と呼ばれます。末尾のTPは取引処理、APは分析処理に対応します。

通販サイトを例にすると、利用者が商品を買い、注文番号を発行して在庫を減らす処理はOLTPです。一方、担当者が月ごとの売上を地域別に比較し、どの商品を追加で仕入れるか検討する処理はOLAPに当たります。AWSのOLTPとOLAPの比較でも、注文や在庫更新と、傾向分析の違いが示されています。

スクロールできます
比較する点OLTPOLAP
中心となる目的注文などの業務を処理する集計・比較で判断を助ける
具体例商品の注文、入金登録、予約の確定月別売上、地域別傾向、商品の比較
一回の処理で注目する対象指定された注文や顧客など分析対象に含まれる多数の記録
結果として得たいもの取引の処理結果や現在の業務状態集計値や比較結果
問題文の読み方何の取引を成立させるのか何をどの切り口で分析するのか

この表は、試験問題を読むための典型的な整理です。「OLTPは小さいデータしか扱えない」「OLAPは一定秒数以上かかる」といった容量・速度の絶対条件を意味しません。判定に迷ったら、まず処理の目的へ戻りましょう。

また、OLTPにも参照処理があります。在庫の残数を調べて注文できるか確認する場面まで、すべて分析処理になるわけではありません。「データを読む」という動作だけでなく、その読取りが一件の業務を進めるためなのか、傾向を調べるためなのかを見るのがコツです。

注文と決済を一つの業務で考える

注文トークンと在庫の五個から三個への変化を示す教材模型

学習用の通販店で、商品Aの在庫が5個あり、利用者が2個買うとします。注文処理では、注文内容を記録し、必要な在庫を確保し、処理結果を返します。ここで知りたいのは「商品Aが売れ筋か」ではなく、「この注文を受け付けられたか」です。

購入後の在庫は3個になる想定です。ただし、複数の利用者が同時に注文した場合も、在庫数と注文内容のつじつまを合わせる必要があります。同じ在庫を別々の注文で重複して確保してしまえば、販売できる数を超えて注文を受け付けることになります。

こうした業務処理を支える考え方として、トランザクションの整合性や同時実行の制御があります。OracleのOLTPの説明は、多数の利用者による取引処理とデータの保護を整理しています。具体的なACID特性や排他制御は、基本情報のトランザクション処理とデッドロックで確認できます。

なお、現実のカード決済では、注文管理・在庫管理・決済サービスが別のシステムになっていることもあります。この例はOLTPの目的をつかむためのモデルであり、注文から外部決済まで必ず一つのデータベーストランザクションで完結する、という実装の説明ではありません。

「予約」も同じように考えられます。指定日の空席を確認して一人分の座席を確保するなら、目的は予約の成立です。数か月分の予約履歴を集めて曜日別の利用傾向を調べるなら、目的は分析です。扱う対象が同じ予約情報でも、問われている業務は違います。

売上の記録と集計結果を分ける

OLAPの見分け方は、分析したい問いを具体的にすることです。たとえば「商品Aはどの店舗で売れているか」「9月と10月で売上はどう変わったか」なら、個々の注文を処理するだけでは答えが出ません。一定の対象を集め、店舗や月で分けて比較します。

以下は説明用に作成した売上データです。実際の店舗の調査結果や統計ではありません。金額はすべて同じ定義の売上額とし、返品・税・値引きなどの条件は含めず、各行を重複のない店舗・月・商品の組合せとして扱います。

スクロールできます
月店舗商品売上額
9月東京店商品A120万円
9月東京店商品B80万円
9月大阪店商品A90万円
9月大阪店商品B60万円
10月東京店商品A150万円
10月東京店商品B100万円
10月大阪店商品A110万円
10月大阪店商品B70万円
個々の売上を表す小片と月別にまとめた二つの容器

9月全体の売上は120+80+90+60=350万円、10月全体は150+100+110+70=430万円です。ここでは「月別」という軸で、店舗と商品の違いをまとめました。10月は9月より80万円多いと分かりますが、それだけでは増加がどの店舗・商品で起きたかまでは分かりません。

そこで10月を店舗別に見ると、東京店は250万円、大阪店は180万円です。さらに商品別に見ると、東京店の内訳は商品Aが150万円、商品Bが100万円になります。問いに合わせて集計の切り口や細かさを変えることが、後半で扱う分析操作につながります。

元の表には「10月・東京店・商品A」という組合せの値が残っています。合計の430万円だけを手元に残し、内訳をすべて失っていれば、東京店の250万円を再び読み出すことはできません。詳細へ掘り下げるには、必要な内訳データが保持されていることが前提です。

売上を比べるときは、対象期間・通貨・金額の意味をそろえることも必要です。片方が注文時の金額、もう片方が返品後の確定売上なら、単純な比較では意味がずれます。この記事の表では条件をそろえていますが、実務では数値の定義を先に確認します。

分析軸と数値を読み分ける

時間・店舗・商品を三方向に配した透明キューブ教材

次元はデータを分類する切り口、尺度は比較・集計する値と考えると分かりやすくなります。先ほどの表なら、月・店舗・商品が分析の切り口で、売上額が集計する値です。IBMのOLAPの解説でも、時間・場所・製品などから売上を見る多次元分析が説明されています。

三つの切り口は、教材の立方体模型として想像できます。横方向を月、奥行きを店舗、高さを商品にして、小さな区画へ売上額を対応させるイメージです。「10月・東京店・商品A」を指定すると一つの区画が決まり、その値は150万円になります。

この模型は分析の見方を表すもので、データを物理的に立方体の形で保存しなければならないという意味ではありません。画面に二次元の表が表示されていても、背後のデータを月・店舗・商品という複数の切り口から分析することはできます。

切り口には細かさの段階もあります。時間なら年→四半期→月→日、地域なら全国→地域→店舗のような階層を設定できます。この記事の店舗例では、東京店と大阪店をまとめた全店舗の段階から、店舗の内訳へ移る関係を使います。

次元と尺度を逆に覚えないようにしましょう。「商品A」はどの区分を見るかを決める値で、「150万円」はその区分に対応する売上額です。商品名や月を足し算するのではなく、それらで分類した売上額を足し合わせます。

また、売上合計と平均単価では集計方法が違います。この表の売上額は対象が重複していなければ足し算できます。一方、別々の店舗の平均単価を単純に足しても全店舗の平均にはなりません。操作名を選ぶ学習と、尺度に合った集計方法を選ぶ学習は分けて考えます。

DWHとBIは関連する別の言葉

OLTPとOLAPの比較に、DWHやBIという用語が登場することがあります。データウェアハウスは分析に利用するデータを蓄積・整理する仕組み、BIはデータを意思決定へ活用する取組やツールの文脈で使われます。OLAPは、その分析を行う方法の一つとして位置付けて考えます。

たとえば店舗の販売記録を分析用に集め、月・店舗・商品で見られるようにする構成を考えられます。ただし、データの保管場所を答える問題と、データをどう分析するかを答える問題は同じではありません。「データウェアハウスだから、操作名もデータウェアハウス」と選ばないようにします。

IPAの基本情報技術者試験シラバスVer.9.2では、データベース応用としてデータウェアハウスやOLAP、用語例としてOLTPやETLなどが挙げられています。まず各用語が示す役割を分けると、周辺用語も整理しやすくなります。

業務システム全体の説明で出てくるERP・CRM・SCMとも区別が必要です。それらは業務の対象や管理範囲を表す言葉で、OLTP・OLAPは処理の目的を表します。一つの業務システムの中に取引処理と分析機能がある場合もあります。用語の対象範囲は、基本情報のERP・CRM・SCMの違いで整理できます。

また、取引処理と分析処理を同じ基盤で支援する設計も研究されています。L-Storeの研究論文はその一例です。「必ず二つの別製品を使う」とは覚えず、基本情報の問題では、示された処理が取引を進めるのか分析するのかを判断します。

OLTPとOLAPを業務と分析操作で見分ける

同じ売上教材を細分化・抽出・軸入替えで比較する模型

細かく見るか大きくまとめるか

ここからは、先ほどの売上表を使ってOLAPの操作を確認します。操作名を暗記するときは、まず変化の種類を分けます。集計の細かさが変わるのか、分析対象の範囲が変わるのか、それとも表の表示方向が変わるのか、という三つです。

代表的な操作の基本定義は、カリフォルニア州立大学ノースリッジ校のOLAP講義資料とOracleのOLAP教材で確認できます。以下の金額と例題は、この考え方を使って作成した学習用の例です。

ドリルダウンは詳細へ進む

全体の集計容器から店舗別の二つの容器へ分けた模型

ドリルダウンは、集計されたデータをより細かい段階で見る操作です。10月全体の売上430万円から、東京店250万円と大阪店180万円へ掘り下げる場合は、全店舗の合計を店舗別に分けています。

時間の階層なら、年間の売上から月別の売上を見る方向が対応します。ただし、この記事の表には9月と10月しかないので、二か月の合計780万円を年間売上と呼ぶことはできません。例の範囲と、一般的な階層の説明を区別してください。

ドリルダウン後に東京店250万円と大阪店180万円を足すと、元の430万円になります。対象期間や売上の定義を変えず、同じ対象をより詳しく見たためです。この関係を確認すると、「東京店だけを選ぶ」との違いがつかめます。

東京店だけを対象にする操作では、大阪店を分析対象から外します。一方、全店舗の売上を店舗別に分ける操作では、東京店も大阪店も見ています。「細かい分類へ分ける」と「特定の区分に絞る」は、結果に同じ数字が現れても操作の意図が異なります。

ロールアップは上位へ集計する

ロールアップは、より大きな区分へまとめて集計する操作です。10月の東京店250万円と大阪店180万円を、全店舗430万円へまとめる方向が対応します。ドリルダウンとは逆向きです。

時間で考えるなら、日別を月別にまとめる、月別を四半期別にまとめる、といった方向です。細かな値を単に画面から隠すのではなく、上位の区分に対応する集計値を見ることがポイントです。

「売上が上がったのでロールアップ」という覚え方は避けましょう。増減の方向は操作名の判定とは関係ありません。東京店と大阪店の売上が前年より減っていても、それらを全店舗の合計にまとめるならロールアップです。上へ進むのは数値ではなく、分類の階層です。

スライスとダイスは対象を絞る

一層を抜き出したキューブと複数方向から小区画を選んだキューブ

スライスは一つの軸を固定する

スライスは、一つの次元の値を固定して、その断面を見る操作として覚えます。元の月・店舗・商品というデータから「10月」を選ぶと、月を固定した店舗別・商品別の売上表になります。

スクロールできます
店舗商品A商品B合計
東京店150万円100万円250万円
大阪店110万円70万円180万円
合計260万円170万円430万円

この表では9月のデータを対象から外し、10月という断面に残る店舗と商品を見ています。立方体模型で、時間の軸から一枚の層を取り出すイメージです。月を固定したのであって、商品Aと商品Bをまとめたわけではありません。

「10月だけ見る」はスライスの典型例ですが、「年別から月別へ詳しく見る」はドリルダウンです。どちらにも月という語が入るため、語句だけで選ばず、指定した月へ絞るのか、時間の階層を細かくするのかを読みます。

ダイスは複数の軸で範囲を選ぶ

ダイスは、複数の次元に条件を置いて部分的な範囲を取り出す操作として整理できます。たとえば「9月と10月の東京店の商品A」なら、時間・店舗・商品という軸に条件を指定しています。残る値は9月の120万円と10月の150万円です。

その二つを比較すれば、東京店の商品Aが二か月の間に30万円増えたと分かります。ダイスという名前は、この増加を計算したことではなく、比較したい部分のデータを複数の軸から選んだことに対応します。

スライスとダイスの説明には、製品や教材による表現差があります。試験の学習では「一つの軸を固定する断面」と「複数の軸で指定する部分集合」を対にして押さえ、設問に操作の定義が書かれていればその定義を優先します。

条件の個数と次元の個数も分けて見ます。「9月または10月」という二つの月の値は、時間という同じ次元の中の指定です。一方、「東京店かつ商品A」は、店舗と商品という異なる二つの次元に条件を置いています。選択肢を読むときは、条件がどの軸に対応するかを書き出すと混乱が減ります。

ピボットは表の見方を変える

ピボットは、分析に使う軸の配置を変えて表示する操作です。行を店舗、列を商品にしていた10月の表を、行を商品、列を店舗に変更すると、次のようになります。

スクロールできます
商品東京店大阪店合計
商品A150万円110万円260万円
商品B100万円70万円170万円
合計250万円180万円430万円
同じ色の駒を行と列を入れ替えて配置した二枚の格子盤

商品Aの売上は東京店150万円と大阪店110万円で、先ほどの表と同じです。行と列を入れ替えたことで、商品ごとに店舗を比較する見方になりました。選んだ対象と集計の細かさを保つこの例では、全体の合計430万円も変わりません。

ピボットを行っても、注文の追加や在庫の更新が起きるわけではありません。また、この例では対象を東京店だけに絞っていません。表示方向を変えるだけなので、スライス・ダイスやOLTPの更新処理とは区別できます。

表計算ソフトのピボットテーブルは、実際には表示軸の変更に加えて集計やフィルターなども扱えます。問題文が「行と列の分析軸を入れ替える」と説明しているなら、ここで学習するピボットの特徴に注目します。ツールのボタン名だけで一連の操作を同じ意味に扱わないことが大切です。

SQLで集計表を作れることも、OLTPとOLAPの判定とは別の話です。使う言語がSQLだから取引処理、という区別ではありません。集計条件の読み方やGROUP BYを学ぶ場合は、基本情報のSQL問題の解き方へ進むとつながります。

自作例題で操作前後を確認する

ここでは、操作の目的を選ぶ練習をします。すべてこの記事用の自作例題で、IPAの過去問題を転載したものではありません。先に答えを見るより、処理の前後を短い言葉で書いてから名称を選んでみてください。

スクロールできます
例題の処理答え判断の理由
注文を登録して商品の在庫を減らすOLTP一件の注文を処理するため
売上履歴から店舗と商品の傾向を比較するOLAP意思決定のための分析
10月の全店舗430万円を店舗別へ分けるドリルダウン合計から詳細へ進む
10月の店舗別売上を全店舗430万円へまとめるロールアップ詳細から上位の集計へ進む
月・店舗・商品のデータから10月を固定するスライス時間の軸を一つの値へ固定
9月と10月の東京店の商品Aに絞るダイス複数の軸に条件を指定
店舗を行、商品を列にした表の軸を入れ替えるピボット同じ対象の表示方向を変える

例題の三つ目と五つ目を比べましょう。「10月」という語はどちらにもありますが、三つ目は全店舗の合計を店舗別の内訳へ変えています。五つ目は元のデータから10月という期間だけを選んでいます。期間の名前ではなく、何を変えたかが答えを決めます。

四つ目と七つ目も区別できます。店舗別を全店舗にまとめると、店舗の違いを集計に含めて一つの値へまとめます。一方、行と列を入れ替えた表では、東京店と大阪店の内訳がそのまま残ります。表が横長になったかどうかではなく、詳細の段階を残しているかを見ます。

追加で、「東京店の商品Aの注文番号を指定し、配送先を変更する」という処理を考えてください。店舗・商品という複数の条件があるためダイスに見えるかもしれませんが、処理の目的は特定の注文情報を変更することです。OLAPの操作名を選ぶ前に、取引処理なのか分析処理なのかを判定する必要があります。

逆に、「一件の注文の金額を表示する」だけでは、OLAPと断定できません。問い合わせ対応のために注文内容を確認するのか、売上分析を詳細まで掘り下げた先で確認するのかによって文脈が違います。問題文にない目的を勝手に補わず、明示された業務と操作に沿って選びます。

読解の順番は、処理の目的→分析の対象→変化の種類です。この順番で読むと、取引の更新処理を多次元分析の操作と取り違えにくくなります。分析の対象が同じまま細かくなるならドリルダウン、大きくまとまるならロールアップ。範囲を選ぶならスライスかダイス、軸の置き方ならピボットです。

OLTPとOLAPは目的から判断する

OLTPとOLAPの違いは、業務を成立させる処理か、データから判断材料を得る分析かにあります。商品名・売上・予約といった単語だけで決めず、そのデータを何のために扱うのかを読むことが基本です。

OLAPの操作は、細かさ・範囲・向きで復習できます。詳細へ進むドリルダウンと上位へまとめるロールアップ、断面を選ぶスライスと複数の軸で範囲を選ぶダイス、軸の配置を変えるピボットを、同じ売上表で説明できれば区別がついています。

復習するときは、表を見ずに「430万円→250万円と180万円」「全データ→10月だけ」「店舗の行と商品の列→入替え」の三つを言葉で説明してみましょう。名称だけが出てこないのか、操作の前後が理解できていないのかを切り分けられます。

基本情報の演習へ進むなら、基本情報の過去問アプリで無料演習できます。科目A・科目Bの問題を解き、答え合わせでは用語の名前だけでなく、処理の目的と操作前後の違いまで説明する練習をしてみてください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次