PREPARATION
受験対策

Silverの例題解説「開発/SQL - トランザクションの概念(トランザクション分離レベル)」

今回は、Silverの「開発/SQL - トランザクションの概念(トランザクション分離レベル)」からの出題です。

例題

3.56

PostgreSQLにおけるトランザクション分離レベルについて、誤った説明を2つ選びなさい。

  1. トランザクション分離レベルは、SET TRANSACTIONコマンドで設定することができる。

  2. トランザクション分離レベルは、BEGINとCOMMITの間の任意の箇所で指定できる。

  3. トランザクション分離レベルとしてREAD UNCOMMITTEDを指定しても、READ COMMITTEDを指定したのと同じ動作になる。

  4. 最上位の分離レベルであるSERIALIZABLEはまだ実装されていない。

  5. トランザクションの外側でトランザクション分離レベルを設定すると、警告が発生するが、エラーにはならない。

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

解答と解説

トランザクション分離レベルとして、PostgreSQLではSERIALIZABLE、REPEATABLE READ、READ COMMITTEDの3種類が利用できます。標準SQLではこれに加えてダーティーリードを許容するREAD UNCOMMITEDが定義されていますが、PostgreSQLではREAD UNCOMMITTEDを指定しても、READ COMMITTEDとして動作します(この動作自体は、標準SQLの仕様と矛盾するものではありません)。
トランザクション分離レベルは、トランザクション開始のBEGIN(あるいはSTART TRANSACTION)コマンドのオプションで指定するか、あるいはBEGINの直後にSET TRANSACTIONコマンドで指定します。トランザクション内でSELECTやUPDATEなどのSQL文を実行した後では、トランザクション分離レベルは指定できません。
トランザクションブロックの外部でトランザクション分離レベルを指定しても何の効果もありませんが、これ自体は警告を発するだけでエラーにはなりません。

誤っているものを選ぶ問題なので、正解はBとDです。

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

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

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

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

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

サンプル問題/例題解説

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

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

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

無料技術解説セミナー

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

OSS-DB道場

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

LPI-Japan
Platinum Sponsors