PREPARATION
受験対策

Silverの例題解説
「S3.1 SQL コマンド(ビュー)」

「S3 開発/SQL - S3.1 SQL コマンド(ビュー)」からの出題です。

例題

3.134

ビューの説明として適切なものを2つ選びなさい。

  1. テーブルに対するのと全く同じようにSELECTを実行できる。
  2. データベースのバージョンおよびビューの定義にも依存するが、INSERTやUPDATEを実行できる場合がある。
  3. ビューの列に対してインデックスを作成できる。

  4. ビューの元になっているテーブルをDROP TABLEで削除すると、ビューが無効になる。
  5. ビューをDROP VIEWで削除するとき、CASCADEオプションを指定することで、ビューの元になっているテーブルも一緒に削除できる。

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

解答と解説

ビューは CREATE VIEW ... AS SELECT ... という形式で定義され、テーブルの一部の列あるいは行だけをユーザに提供する、集約などを利用した複雑な問い合わせや複数のテーブルを結合した問い合わせを単純に実行できるようにする、などが主要な用途です。ビューの実体としてはSELECT文だけがデーテベースに格納されており、ビューからのSELECTが実行される度に、ビューを定義するSELECT文が実行されます。

ビューからのSELECTについては、通常のテーブルからのSELECTと全く同じように実行できます。ユーザはSELECTの対象がテーブルなのかビューなのかを意識する必要はありません。

以前のデータベースでは、ビューは参照専用で更新できませんでしたが、PostgreSQLではバージョン9.3から更新可能ビューの機能がサポートされ、複数のテーブルを結合しておらず、かつ集約関数、集合操作、LIMIT/OFFSETを使っていない、など比較的単純な定義のビューであればテーブルと同様にINSERT/UPDATE/DELETEができるようになりました。

更新までできるので、見た目はほとんどテーブルと同じですが、ビューには実体となるデータが入っていないので、ビューの列にはインデックスを作ることはできません。必要なときは、ビューの元となるテーブルにインデックスを作成します。なお、マテリアライズド・ビューは実体となるデータが入っているので、インデックスを作成できます。

ビューの元となるテーブルに対してDROP TABLEを実行すると、ビューがそのテーブルに依存するオブジェクトであるため、エラーになります。DROP TABLEをCASCADEオプション付きで実行すれば、ビューも一緒に削除されますが、テーブルだけ削除されて、ビューが無効な状態で残ることはありません。

DROP VIEWにもCASCADEオプションがありますが、これはビューに依存するオブジェクト(例えば、そのビューからのSELECTを含む別のビュー)があるときに、それを一緒に削除する、というもので、ビューの元となるテーブルは削除されません。

したがって正解はAとBです。

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

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

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

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

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

サンプル問題/例題解説

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

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

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

無料技術解説セミナー

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

OSS-DB道場

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