メインコンテンツへ
データベースDB実践

マテリアライズドビューに関する説明として、最も適切なものはどれか。

ア.マテリアライズドビューは通常のビューと同様に毎回元テーブルのSQLを実行するが、表示を高速化するためにキャッシュを使う仕組みである。
イ.マテリアライズドビューはクエリ結果を物理的に保存したオブジェクトで、参照時に元テーブルのSQLを再実行せず高速にデータを返せる。ただしデータの更新には明示的なリフレッシュが必要になる場合がある。正解
ウ.マテリアライズドビューはリアルタイムに元テーブルと同期するため、元テーブルが更新されると即座に反映される点で通常のビューと異なる。
エ.マテリアライズドビューは読み取り専用ではなく、INSERT・UPDATE・DELETEを通じて元テーブルを直接更新できる書き込み可能なビューである。

解説

マテリアライズドビューは「計算済み答案を金庫に保存しておく」仕組み。普通のビューが「毎回計算する数学の公式」なら、マテリアライズドビューは「事前に計算した答えをメモ用紙に書いておく」感覚。速いけど古くなるリスクがある。

なぜ イ が正解か

イが正解。マテリアライズドビューはSELECT結果をディスク上に物理保存する。参照時に元テーブルへのアクセスが不要なため、集計・結合が多い複雑なクエリの高速化に効果的。ただし元テーブル更新後は手動または定期REFRESHが必要で、データが古くなる(鮮度問題)可能性がある。

なぜ ア は間違いか

通常のビューの説明。マテリアライズドビューは結果を物理保存するため、参照のたびにSQLを再実行しない点が根本的に異なる。

なぜ ウ は間違いか

リアルタイム同期するものはほとんどなく、多くのRDBMS(PostgreSQL等)では明示的なREFRESH MATERIALIZED VIEWが必要。自動同期はRDBMSの実装依存。

なぜ エ は間違いか

マテリアライズドビューは基本的に読み取り専用。書き込み可能なビューは別の概念(updatable view)であり、マテリアライズドビューを通した元テーブル直接更新はできない。

出典: AI生成問題(学習用)