データベース用語集一覧に戻る
ホーム > データベーススペシャリスト > 用語集 > ビュー(VIEW)の更新可能性とマテリアライズドビュー(実体化ビュー)
SQL設計・ウィンドウ関数・関係代数 重要度:★★出題: AM2・PM1

ビュー(VIEW)の更新可能性とマテリアライズドビュー(実体化ビュー)

びゅーのこうしんかのうせいとまてりあらいずどびゅー / Updatable Views & Materialized Views
SELECT文の定義のみを保持する仮想表(ビュー)に対してINSERT/UPDATE/DELETEが可能となる条件と、問合せ結果自体を物理的に保持して高速化するマテリアライズドビュー。

3行速習ポイント

  • 通常のビューは実データを持たず参照のたびに基底表へアクセスするが、GROUP BY・HAVING・DISTINCT・集合関数・集合演算(UNION等)を含むビューは原則として直接更新できない
  • `WITH CHECK OPTION` を指定したビューでは、そのビューのWHERE句の条件を満たさないような行のINSERTやUPDATEをエラーとして拒否する
  • マテリアライズドビュー(実体化ビュー)は集計・結合結果を物理格納し索引も作成できるため参照が高速になる一方、基底表更新との同期(リフレッシュ)設計が必要

図解

図通常のビュー(仮想表)とマテリアライズドビュー(実体化表)
通常のビュー(CREATE VIEW)論理データ独立性
実データを持たず参照時に基底表へアクセス。単一表の単純選択なら更新可能(WITH CHECK OPTION対応)
マテリアライズドビュー(実体化ビュー)集計高速化
集計・結合結果を物理領域に保持し索引付けも可能。高速参照と引き換えにリフレッシュが必要

概要と本質

午前IIのSQL問題で「更新可能なビューはどれか」「WITH CHECK OPTIONを指定したビューに対するUPDATE文の挙動はどれか」として頻繁に出題される定番論点です。

重要ポイント・コア概念

  • 更新不可能なビューの条件(SQL標準の基本):基底表の1つの行とビューの1つの行が1対1に対応しないもの(GROUP BY、DISTINCT、集合関数、UNION、複数表の結合等)は更新不可
  • WITH CHECK OPTION:例えば `WHERE 部門コード = 'D01'` で定義されたビューに対し、`部門コード = 'D02'` の行をINSERTしたり既存行を `'D02'` にUPDATEしたりすると制約違反エラーになる
  • 論理データ独立性:基底表を垂直分割・水平分割しても、従来と同じ列構成のビューを提供することでアプリケーションのSELECT文変更を局所化できる

午後I・午後II記述試験での攻略ポイント

午前IIで「更新可能なビューはどれか」が出たら、`GROUP BY`、`DISTINCT`、`AVG/SUM/COUNT`、`UNION` が入っている選択肢を消去し、単一基底表から主キーを含んで単純に列・行を選択しているものを選びます。

午後記述で使える加点キーワード(クリックでコピー)

この用語が出題された過去問を解く(1分演習)

即時アウトプットで定着
データベーススペシャリスト 過去問演習で実践力を鍛える

理解を深める推薦副読本

この用語の背景理論・実務動向を深く理解し、午後II小論文の説得力を劇的に高める必読書

PR
ソフトウェアアーキテクチャの基礎 エンジニアリングに基づく体系的アプローチ
戦略・名著セレクションソフトウェアアーキテクチャの基礎 エンジニアリングに基づく体系的アプローチマーク・リチャーズ, ニール・フォード 著 / オライリー・ジャパン
ISBN: 4873119820
🏗️ EA・SoR/SoE・モダナイゼーションの名著

ソフトウェアアーキテクチャの基礎 エンジニアリングに基づく体系的アプローチ

マーク・リチャーズ, ニール・フォード 著 / オライリー・ジャパン

アーキテクチャ特性(非機能要件)の定義と優先度付けモジュラリティ、マイクロサービス、イベント駆動設計のトレードオフレガシーシステムの段階的刷新(モダナイゼーション)設計
なぜこの用語の理解に役立つのか

『ビュー(VIEW)の更新可能性とマテリアライズドビュー(実体化ビュー)』の背景にある理論と業界動向を体系的に理解し、実務や小論文に直結する戦略的視点を深掘りできます。

午後II小論文(ST論文)への応用・加点ポイント

エンタープライズアーキテクチャ(EA)やSoR/SoE連携、クラウド移行のアーキテクチャ方針を決定した根拠(トレードオフ判断)を論述する際の強力な武器になります。

※価格・在庫状況は各ECモールの最新情報をご確認ください(もしもアフィリエイト経由)