PREPARATION
受験対策

Silverの例題解説「開発/SQL - SQL コマンド(マテリアライズド・ビュー)」

「開発/SQL - SQL コマンド(マテリアライズド・ビュー)」からの出題です。

例題

3.135

ビューとマテリアライズド・ビューについての説明として間違っているものを1つ選びなさい。

  1. マテリアライズド・ビューにはインデックスを作成できるが、ビューにはインデックスを作成できない。
  2. マテリアライズド・ビューはデータ量に応じてディスク容量を消費するが、ビューはデータが増えてもディスク容量を消費しない。
  3. 同じ定義のビューとマテリアライズド・ビューに対して同じSELECT文を実行したら、必ず同じ結果が返る。

  4. 同じ定義のビューとマテリアライズド・ビューに対して、"SELECT * FROM ビュー名" を実行したら、通常はマテリアライズド・ビューからのSELECTの方が高速である。
  5. ビューは定義によってはINSERT/UPDATE/DELETEによる更新が可能なものもあるが、マテリアライズド・ビューに対してINSERT/UPDATE/DELETEを実行することはできない。

※この例題は実際のOSS-DB技術者認定試験とは異なります。
例題公開日:2022年1月20日

解答と解説

マテリアライズド(materialized)は「実体化された」という意味で、マテリアライズド・ビューは基本的にはビューなのですが、SELECT文による定義だけからなる通常のビューとは違い、定義に加えて実体となるデータが入っていて、構造的にはテーブルと同じです。

ビューからのSELECTを実行すると、内部的にはビューを定義するSELECTを実行するので、テーブルの結合やWHERE句などの条件を評価しながらデータを検索することになりますが、マテリアライズド・ビューからのSELECTは、そこに実体として入っているデータをSELECTするだけなので、通常はマテリアライズド・ビューからのSELECTの方が高速になります。その代わり、マテリアライズド・ビューはデータ量に応じてディスク容量を消費します。

また、マテリアライズド・ビューからの検索を高速にするためにインデックスを作成することもできます。通常のビューは、それを構成する元のテーブルにインデックスを作ることはできますが、ビューに直接、インデックスを作ることはできません。

マテリアライズド・ビューには、それを作成したときにデータが入りますが、その後、元になるテーブルを更新しても自動的にデータが更新されることはなく、REFRESH MATERIALIZED VIEWを実行してはじめてデータが更新されます。通常のビューは常に元のテーブルのデータを参照しますから、ビューからのSELECTは最新のデータを表示しますが、マテリアライズド・ビューからのSELECTは古いデータを表示し、これらの間に差異が発生することがあります。このような性質から、マテリアライズド・ビューを『スナップショット』と表現することもあります。必ずしも最新のデータを必要としないが、処理を高速にしたい、例えば前月末までのデータを様々な角度から分析したい、などといったケースがマテリアライズド・ビューを活用する場面の1つです。

ビューは、元となるテーブルが1つだけで、集約関数や集合操作などを使っていない、など単純なものは更新可能ビューと呼ばれ、SELECTだけでなく、INSERT/UPDATE/DELETEの更新処理が可能です。マテリアライズド・ビューは定義がそのように単純であったとしても、更新処理をサポートしていません。

間違っているものを選ぶ問題なので、正解はCです。

今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。
採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。

※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。

企業の基幹システムや業務システム、AIなどの
新領域での「PostgreSQL」の採用が拡大している中、
昇格・昇給・就職・転職に必ず役立つ認定です

OSS-DBの受験対策について

受験の学習をサポートする情報や対策に役立つ情報をご紹介

サンプル問題/例題解説

例題 のアーカイブを試験ごとにまとめています。OSS-DB技術者認定試験の学習にお役立てください

学習教材・教育機関のご紹介

OSS-DB認定教材や教育機関について詳しくご説明いたします。

無料技術解説セミナー

受験準備をされていらっしゃる方々を対象に、無料技術解説セミナーの日程をお知らせしています。

OSS-DB道場

受験準備をされていらっしゃる方々を対象に、無料技術解説セミナーの日程をお知らせしています。