PREPARATION
受験対策

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

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

例題

3.98

マテリアライズド・ビューと通常のビューに関する説明として、正しいものを2つ選びなさい。

  1. どちらも CREATE VIEW コマンドで作成する。
  2. ビューの定義が同じなら、一般的に、マテリアライズド・ビューからの検索の方が高速である。
  3. ビューの定義が同じなら、どちらからSELECTしても、必ず同じ結果が返される。
  4. マテリアライズド・ビューは、それに含まれるデータの量に従ってディスク容量を必要とするが、通常のビューはディスク容量を必要としない。
  5. ビューを定義する問い合わせを変更する場合、通常のビューは CREATE OR REPLACE VIEW コマンドを使うのに対し、マテリアライズド・ビューでは REFRESH MATERIALIZED VIEW という特殊なコマンドを使用する。

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

解答と解説

マテリアライズド・ビューは PostgreSQL 9.4 で追加された機能で、ビューとしての機能とテーブルとしての機能を併せ持った特徴があります。
通常のビューは CREATE VIEW コマンドで作成しますが、マテリアライズド・ビューは CREATE MATERIALIZED VIEW
コマンドで作成します。どちらもコマンド名の後は「ビュー名 AS 問い合わせ(SELECT文)」の形式になります。
通常のビューは、その問い合わせのSELECT文をデータベースに記録するだけですが、マテリアライズド・ビューでは、問い合わせの結果をデータベースに保存します。つまり、CREATE MATERIALIZED VIEW の内部処理は
CREATE TABLE テーブル名 AS SELECT文
に近いことを行っています。


通常のビューから検索するときは、ビュー定義自体の SELECT文を実行した上で検索のSQLを実行する必要があるのに対し、マテリアライズド・ビューからの検索では、CREATE MATERIALIZED VIEW の実行時に保存されたデータから直接検索を実行するため、高速になります。特に、ビューの定義で複数のテーブルを結合しているとき、複雑なWHERE句を含むとき、グループ化演算を含むときなど、マテリアライズド・ビューであれば、これらの処理を実施済みのデータから検索することになるため、高速になります。
マテリアライズド・ビューは高速ですが、良い点ばかりとは限りません。ビュー定義のSELECT文の結果をデータベースに保存するため、元となるテーブルのデータとは別にディスクを消費します。通常のビューであれば、ビューを定義するSELECT文が保存されるだけで、追加のディスク容量は必要としません。


また、マテリアライズド・ビューの作成時に保存されたデータは、元となるテーブルが更新されても、自動的には更新されません。通常のビューであれば、元のテーブルが更新されたら、ビューからの検索結果もそれに合わせて変わりますが、マテリアライズド・ビューからの検索結果は変化せず、以前と同じ結果が返ります。元のテーブルの更新をマテリアライズド・ビューに反映させるためには REFRESH MATERIALIZED VIEW というコマンドを使用します。CREATE あるいは REFRESH の直後は、どちらのビューでも同じ結果が得られますが、基本的に、マテリアライズド・ビューと通常のビューで同じ結果が返るとは限りませんので、必ずしも最新のデータに基づく結果でなくても良い場合にのみ、マテリアライズド・ビューを使うようにします。


ビューを定義するSELECT文を変更するには、CREATE OR REPLACE VIEW を使用することができますが、マテリアライズド・ビューでは(PostgreSQL 11の時点では)これに相当するコマンドがなく、DROP MATERIALIZED VIEW と                     CREATE MATERIALIZED VIEW を順次実行することになります。


従って正解はBとDです。

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

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

企業の基幹システムや業務システムでの
OSS-DBの採用がますます拡大している中、
昇格・昇給・就職・転職に必ず役立つ認定資格になります

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

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

サンプル問題/例題解説

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

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

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

無料技術解説セミナー

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

OSS-DB道場

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

LPI-Japan
Platinum Sponsors