トランザクションと読み取り一貫性の便利な機能間違いやすいポイントを追え! Bronze SQL基礎I(9)(1/2 ページ)

Oracleデータベースエンジニアとしての基礎力を証明するORACLE MASTER Bronze。その取得を目指すITエンジニアのための講座が本連載だ。間違いやすいポイントを確認し、合格に近づこう!

» 2008年11月14日 00時00分 公開

 前回「SQLを利用してデータを操作する」では、DML文によるデータの操作について学習しました。

 今回は、以下の項目を確認します。

  • トランザクション
  • 読み取り一貫性

トランザクションの意味

例題1

トランザクションについて正しく説明しているものを、次の中からすべて選択してください。

a.トランザクションとは、COMMIT文、ROLLBACK文、DDL文、DCL文のいずれかを発行してから、次にCOMMIT文、ROLLBACK文、DDL文、DCL文のいずれかを発行するまでの間である

b.トランザクションとは、DBに接続してからログアウトするまでの間である

c.トランザクション実行中は、対象の表や行はロックされる

d.COMMIT文、ROLLBACK文、DDL文、DCL文の発行後も、SAVEPOINTには戻れる

例題の範囲をおさらい

参考:「SQLでデータを自在に操作する

 トランザクションとは、COMMIT文、ROLLBACK文、DDL文、DCL文のいずれかを発行してから、次にCOMMIT文、ROLLBACK文、DDL文、DCL文のいずれかを発行するまでの一連の操作を指します。

正解

a、c

解説

選択肢a:トランザクションとは、COMMIT文、ROLLBACK文、DDL文、DCL文のいずれかを発行してから、次にCOMMIT文、ROLLBACK文、DDL文、DCL文のいずれかを発行するまでの一連の操作のことです。

選択肢b:DBに接続してからログアウトするまでの間をセッションと呼びます。

選択肢c:トランザクション実行中、UPDATEなどのDML文を発行して変更作業を行っている間は、対象の表がロックされます。トランザクション終了後、ロックは解除されます。

選択肢d:SAVEPOINTは、COMMIT文、ROLLBACK文、DDL文、DCL文のいずれかを発行することによって削除されます。よってこれらの文の発行後にSAVEPOINTに戻ることはできません。

SQL> update test
  2  set col1=20
  3  where col1=10;
1行が更新されました。
SQL> savepoint a;
セーブ・ポイントが作成されました。
SQL> insert into test
  2  values(20);
1行が作成されました。
SQL> commit;
コミットが完了しました。
SQL> rollback to savepoint a;
rollback to savepoint a
*
行1でエラーが発生しました。:
ORA-01086: セーブポイント'A'は設定されていません

 よって、正しい説明はa、cです。

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。