OLTPとOLAPとは(全体像)
まず、データベースの使い方には大きく2つの場面があるよー。
身近にたとえると、お店のレジと月末の売上分析のちがいなのー。レジは「1件ずつ素早く会計する」、月末は「たくさんの記録をまとめて集計する」。同じデータでも、目的がちがえば向いている作りもちがうよー。
- OLTP … 日常の取引処理(レジの会計)。短い処理をたくさん。
- OLAP … 分析処理(売上のまとめ)。大量データをまとめて集計。
そして、OLAP(分析)のためにデータを集めておく大きな置き場がDWH(データ倉庫)だよー。押さえるのは、OLTPとOLAPの違い、ETL/ELT、スタースキーマの3つなのー。
詳しく:OLTP・OLAPとETL/ELTだけ覚えれば戦える
ここが記事の心臓部。まずOLTPとOLAPの違いを見ていこーね。
OLTP と OLAP
| OLTP | OLAP | |
|---|---|---|
| 目的 | 日常の取引処理 | 分析・意思決定 |
| 処理 | 短い処理をたくさん | 大量データをまとめて集計 |
| データの形 | 正規化(きれいに分ける) | 非正規化(集計しやすくまとめる) |
| たとえ | レジの会計 | 月末の売上分析 |
OLTPは取引向けで正規化、OLAPは分析向けで非正規化——用途で設計が変わるのが大事だよー。
次に、DWH(倉庫)へデータを入れる流れ、ETLとELTだよー。
ETL と ELT(変換のタイミング)
| 方式 | 流れ | 変換する場所 |
|---|---|---|
| ETL | 抽出 → 変換 → ロード | 倉庫に入れる前に変換 |
| ELT | 抽出 → ロード → 変換 | 先に入れて、倉庫の中で変換(現代の主流) |
ここでひっかけが「ETLとELTは同じもの」という誤解だよー。ちがうのは「変換するタイミング」。ETLは倉庫の外で先に変換、ELTは先に入れてから倉庫の中で変換するのー。
そして、分析を速くするためのデータの形がスタースキーマ。中央に「売上などの事実(ファクト)」、その周りに「いつ・どこで・何を」の情報(ディメンション)を星形に置く形で、集計が速くなるよー。
わかりやすく言い換えると
要するに、レジと倉庫でイメージするとラクだよー。
①OLTP … レジの会計(1件ずつ素早く・正規化)
②OLAP … 月末の売上分析(まとめて集計・非正規化)
③ETL/ELT … 倉庫に入れる前に仕分けするか(ETL)、先に入れて中で仕分けするか(ELT)
つまり、「OLTPは取引・OLAPは分析」「ETLは外で変換・ELTは中で変換」。この2つの対比が試験の急所なのー。
試験のツボ
🔴 一番出る:OLTPとOLAPの違い
①OLTP = 日常の取引処理・短い処理を多数・正規化
②OLAP = 分析処理・大量データを集計・非正規化
🔴 次に出る:ETLとELTの違い
①ETL = 倉庫に入れる前に変換(抽出→変換→ロード)
②ELT = 先に入れて倉庫の中で変換(抽出→ロード→変換・現代の主流)
🟡 押さえると安定:スタースキーマ
①中央に事実(ファクト)、周りに説明(ディメンション)を星形に置く
②集計が速くなる形
よくある間違い
①「OLTPとOLAPは同じもので、設計の方針も同じである」→ ✗ OLTPは取引向けで正規化、OLAPは分析向けで非正規化。用途で設計が変わる。
②「ETLとELTはまったく同じ意味である」→ ✗ ちがうのは変換のタイミング。ETLは倉庫の外で先に変換、ELTは先に入れて中で変換。
③「DWH(データ倉庫)は、レジのような取引処理のためのものである」→ ✗ DWHは分析(OLAP)のためにデータを集めた置き場。取引向けはOLTP。
試験での出題パターン
実際の問題でたしかめてみよう。
オリジナル問題1(OLTPとOLAP)
OLTPとOLAPに関する次の記述のうち、正しいものはどれか。
- OLTPもOLAPもまったく同じもので、設計の方針にもなんの違いもまったくないものだとされている
- OLTPは日常の取引処理(正規化)、OLAPは分析処理(非正規化)で、設計の方針がちがう
- OLTPもOLAPも、画面の明るさを段階で決めるための専用の設定だとされているのである
- OLTPもOLAPも、音の大きさを段階で決めるための専用の機能だとされている
解答は 2 だよー。
OLTPは日常の取引処理(レジの会計のような短い処理を多数・正規化)、OLAPは分析処理(売上のまとめのような集計・非正規化)なのー。用途がちがうから設計の方針もちがうよー。
選択肢1の「まったく同じ」は誤りなのー。選択肢3・4の「明るさ」「音の大きさ」も関係ないよー。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✗ | 用途も設計の方針も違う |
| 2 | ✓ | OLTPは取引・正規化、OLAPは分析・非正規化 |
| 3 | ✗ | 画面の明るさの設定ではない |
| 4 | ✗ | 音の大きさの機能ではない |
オリジナル問題2(ETLとELT)
ETLとELTに関する次の記述のうち、正しいものはどれか。
- ETLは倉庫に入れる前に変換し、ELTは先に入れてから倉庫の中で変換する点がちがう
- ETLとELTは並びがちがうだけで、変換のタイミングはまったく同じものだとされているのだ
- ETLもELTも、画面を必ず点滅させるための専用の設定だとされている
- ETLもELTも、音を必ず二重に鳴らすための専用の機能のことだとされているのである
解答は 1 だよー。
ETLとELTのちがいは、変換するタイミングなのー。ETLは倉庫に入れる前に変換、ELTは先に入れてから倉庫の中で変換するよー。「Tが先ならETL、Lが先ならELT」って覚えてねー。
選択肢2の「タイミングは同じ」は誤りなのー。選択肢3・4の「点滅」「二重に鳴らす」も関係ないよー。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✓ | ETLは外で先に変換、ELTは中で変換 |
| 2 | ✗ | 変換のタイミングがちがう |
| 3 | ✗ | 画面を点滅させる設定ではない |
| 4 | ✗ | 音を鳴らす機能ではない |
オリジナル問題3(スタースキーマ)
スタースキーマに関する次の記述のうち、正しいものはどれか。
- スタースキーマは音を必ず二重に鳴らすための専用の機能だとされているものである
- スタースキーマは画面を必ず点滅させる専用の設定だとされているもの
- スタースキーマは保存した文字を必ず全部消すための専用の命令だとされているものである
- スタースキーマは中央に事実、周りに説明を星形に置く形で、集計が速くなるものである
解答は 4 だよー。
スタースキーマは、中央に「売上などの事実(ファクト)」、その周りに「いつ・どこで・何を」の説明(ディメンション)を星形に置く形なのー。この形だと集計が速くなるよー。
選択肢1の「二重に鳴らす」、選択肢2の「点滅」、選択肢3の「全部消す」はどれも誤りなのー。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✗ | 音を鳴らす機能ではない |
| 2 | ✗ | 画面を点滅させる設定ではない |
| 3 | ✗ | 文字を消す命令ではない |
| 4 | ✓ | 中央に事実・周りに説明を星形に置き集計が速い |
まとめ
押さえどころ
- 🔴 OLTPとOLAP = OLTPは取引処理で正規化、OLAPは分析処理で非正規化。用途で設計が変わる。
- 🔴 ETLとELT = ちがいは変換のタイミング。ETLは倉庫の外で先に変換、ELTは先に入れて中で変換(現代の主流)。
- 🟡 スタースキーマ = 中央に事実、周りに説明を星形に置く形。集計が速い。
次に学ぶ
- DB設計(パーティショニング) ── 表を分けて速くする技法。分析向けの設計とあわせて押さえる。
- 正規化(詳細) ── OLTPで使う、表を上手に分けるルール。
- NoSQL ── 大量データを柔軟に扱うしくみ。分析や分散とあわせて押さえる。
執筆: SikakuQuest編集部