PREPARATION
受験対策

Silverの例題解説「開発/SQL」

このページではメルマガで紹介した例題のアーカイブを試験のレベルごとにまとめています。
是非、OSS-DBの学習にお役立てください。

修正等により、例題番号が連番ではない場合がございます。あらかじめご了承ください。

 1  2  3  4  5  6 

[開発/SQL - SQLコマンド(インデックス)] から

3.108 NEW

CREATE TABLEの実行時に自動的にインデックスが作成されるのはどの場合か。該当するものをすべて選びなさい。

  1. テーブルに FOREIGN KEY 制約をつけたとき
  2. 列にNOT NULL制約をつけたとき
  3. 列に PRIMARY KEY制約をつけたとき
  4. 列に REFERENCES 制約をつけたとき
  5. 列に UNIQUE 制約をつけたとき

[開発/SQL - SQLコマンド(テーブル定義)] から

3.107 NEW

ALTER TABLEで変更できないものを1つ選びなさい。

  1. テーブルの名前
  2. テーブルの所有者
  3. 列の名前
  4. 列のデータ型
  5. 列の並び順

[開発/SQL - SQLコマンド(データ型)] から

3.106

PostgreSQL で使用できるデータ型の説明として間違っているものを1つ選びなさい。

  1. integer は4バイトの整数で、10桁までの値であれば安全に使用できる。
  2. real と double precision は浮動小数点の実数で、double precision の方が精度が高い演算が可能である。
  3. numeric は整数あるいは小数を扱う数値型で、全体の桁数と、小数点以下の桁数を指定することで、精度を設定できる。
  4. date は日付を扱うデータ型で、時刻の情報は保持していない。
  5. timestamp は日時を扱うデータ型で、マイクロ秒単位の時刻データを保持する。

[開発/SQL - SQLコマンド(マテリアライズド・ビュー)] から

3.105

PostgreSQLのバージョン10からサポートされた宣言的パーティショニングと、従来のバージョンからサポートされている継承を利用したパーティショニングの説明として、適切なものを3つ選びなさい。なお、親テーブルの名前は parent、パーティションの名前は partition1, partition2, partition3… だとします。

  1. どちらの方法でも、親テーブルの作成は通常の CREATE TABLE parent… で行い、パーティションを使うための特別なオプション指定は必要ない。
  2. パーティションを作成するときのコマンドは、宣言的パーティショニングでは
    CREATE TABLE partition1 PARTITION OF parent…
    継承を利用する場合は
    CREATE TABLE partition1 () INHERITS (parent)
    で、どちらもCREATE TABLEを使用する。
  3. どちらの方法でも、INSERT文の実行時にデータの格納先となるパーティションが自動的に作成することはなく、事前にパーティションを作成しておく必要がある。
  4. どちらの方法でも、親テーブルとパーティションを適切なCREATEコマンドで作成しておけば、
    INSERT INTO parent…
    で挿入するデータは自動的に適切なパーティションに格納される。
  5. 宣言的パーティショニングではすべてのパーティションは同じ列を持っていて、異なる列を追加できないが、継承を利用したパーティショニングでは、パーティションごとに異なる列を追加できる。

[開発/SQL - SQLコマンド(マテリアライズド・ビュー)] から

3.104 

テーブルtable1とtable2を結合したマテリアライズド・ビューmviewを作成した。適切なものを3つ選びなさい。

  1. 作成するのに使用したコマンドは
    CREATE MATERIALIZED VIEW mview AS SELECT …  FROM table1, table2…
    のような形式である。
  2. 作成時に使用したAS以下のSELECT文を実行するより、
    SELECT * FROM mview
    を実行する方が通常は高速である。
  3. 作成時に使用したAS以下のSELECT文を実行した結果に含まれる行と
    SELECT * FROM mview
    を実行した結果に含まれる行は常に同じである。
  4. mviewの元となっているtable1の行を更新したが、mviewからSELECTした結果では更新前の古いデータが表示された。
  5. 元になっているテーブルtable2のサイズは巨大だが、データベースには mview
    の定義文が保存されるだけなので、マテリアライズド・ビューを作成してもディスク容量が逼迫する心配はない。

[開発/SQL - SQLコマンド(プロシージャ定義)] から

3.103 

PostgreSQLのバージョン11で追加されたプロシージャ(PROCEDURE)と、従来のバージョンからサポートされている関数(FUNCTION)の違いの説明として適切なものを2つ選びなさい。

  1. PROCEDURE は CREATE PROCEDURE コマンドで、FUNCTION は CREATE FUNCTION コマンドで作成する。
  2. PROCEDURE は標準 SQL で定義されているが、FUNCTION は PostgreSQL 独自の拡張機能である。
  3. void型の FUNCTION は廃止予定であり、PROCEDURE に置き換えることが推奨されている。
  4. FUNCTION は SELECT func_name(arg1, arg2...) のようにして実行するのに対し、PROCEDURE
    は CALL proc_name(arg1, arg2...) のようにして実行する。
  5. PROCEDUREはデータベース内のデータを更新できるが、FUNCTIONはデータに基づいた計算をするだけで、データの更新はできない。

[開発/SQL - 組み込み関数(時間関数)] から

3.102 

現在時刻を返す関数 current_timestamp の select を以下のように連続して2回実行した。

select current_timestamp;
select current_timestamp;

このとき、2回とも同じ値が返った。考えられる理由として最も適切なものを選びなさい。

  1. サーバマシンのハードウェアクロックが故障している。
  2. サーバマシンで timed を実行していないため、時刻が正確に保たれていない。
  3. 2つのSELECT文を間を空けず、連続して素早く実行したため、同じ時刻が返った。
  4. これらのSELECTを実行する直前に BEGIN コマンドを実行していた。
  5. 同じセッション内から実行すれば、current_timestamp は必ず同じ値を返す。

[開発/SQL - SQLコマンド(パーティション)] から

3.101 

CREATE TABLE table1(列定義) PARTITION BY…
CREATE TABLE partition1 PARTITION OF table1 FOR VALUES…
CREATE TABLE partition2 PARTITION OF table1 FOR VALUES…

の手順でパーティションテーブルを作成した。このときの動作として正しいものを1つ選びなさい。

  1. テーブルへのINSERTで適切な挿入先となるパーティションが作成されていない場合、自動的に新しいパーティションが作成され、そこにデータが挿入される。
  2. UPDATEの結果、そのデータが別のパーティションに移ることになる場合は、エラーとなって実行されない。
  3. table1にインデックスを作成すれば、それがすべてのパーティションに適用される。
  4. table1に行トリガーを作成すれば、それがすべてのパーティションに適用される。
  5. 一旦作成したパーティションpartition1は、パーティションが空でなければ削除できない。

 1  2  3  4  5  6 

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

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

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

サンプル問題/例題解説

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

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

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

無料技術解説セミナー

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

OSS-DB道場

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

LPI-Japan
Platinum Sponsors

関連資格