助け合いフォーラム

Oracle DB

Oracle Master Silver SQL 2019(1Z0-071)
問題ID : 26529
問題を開く
トランザクションの説明として正しいものはどれですか(該当するものを全て選択して下さい)。

正解

トランザクションは前回コミットまたはロールバックしてから次回コミットまたはロールバックするまでの一連の処理の単位のことである

トランザクションはDDL文により終了する

トランザクションはDCL文により終了する

解説

トランザクションは、前回処理を確定または取消した後に、COMMIT文やROLLBACK文を実行した時や、DDL文、DCL文を実行した時に終了します。
DML文は1つ以上の文のまとまりで1つのトランザクションになりますので、一連の処理の終了後、COMMIT文またはROLLBACK文を実行する等してトランザクションを終了します。

以上より、
・トランザクションはDDL文により終了する
・トランザクションはDCL文により終了する
・トランザクションは前回コミットまたはロールバックしてから次回コミットまたはロールバックするまでの一連の処理のことである
が正解となります。

その他の選択肢については次のとおりです。

・DML文は常に1つの文で1つのトランザクションになる
DML文は1つ以上の文のまとまりで1つのトランザクションになります。

・トランザクションはSAVEPOINT文により終了する
SAVEPOINT文はトランザクション内にマーカーを作成します。SAVEPOINT文ではトランザクションは終了しません。

・トランザクションはDML文により終了する
DML文は1つ以上の文のまとまりで1つのトランザクションになります。一連の処理の後にCOMMIT文またはROLLBACK文を実行する等してトランザクションを終了します。

参考

トランザクションとは、Oracle Database接続後、または直前のトランザクションの終了後、最初のデータを操作するSQL文(通常のSELECT文は除く)実行時に開始され、一連の操作を確定または取消しするまでの処理のまとまりのことです。
トランザクションは以下の要素で構成されます。



DML文は1つ以上のDML文のまとまりで1つのトランザクションになるのに対し、DDL文、DCL文は1つの文で1つのトランザクションになります。

[トランザクションの開始と終了]
トランザクションは、Oracle Database接続後、または直前のトランザクションの終了後、最初のデータを操作するSQL文(通常のSELECT文は除く)実行時に開始され、下記のいずれかによって終了します。

・COMMIT文またはROLLBACK文の実行
・DDL文の実行
・DCL文の実行
・SQL DeveloperやSQL *Plusの終了
・システム障害の発生



また、トランザクションの終了後の動作は次のようになります。

・トランザクション内のすべての処理が確定または破棄され、取消すことはできない
・データの追加や変更処理がトランザクションの終了によって確定された場合、すべてのユーザーが追加/変更後のデータを参照できる
・トランザクション内のすべてのセーブポイントが破棄される
・排他ロックが解除される

なお、トランザクションを終了する時に実行するCOMMIT文やROLLBACK文は、トランザクション制御文と呼ばれてます。トランザクション制御文には次のものがあります。

上に戻る

DML文のトランザクションについて

公開日 2023/02/06

解説では、
「・DML文は1つの文で1つのトランザクションになる
 DML文は1つ以上の文のまとまりで1つのトランザクションになります。」
となるので、ばつとなっています。

DML文は1つ以上の文のまとまりで1つのトランザクションが正解であれば
DML文は1つの文で1つのトランザクションになる。も正解では無いでしょうか。

1つ以上の文のまとまりという言葉が理解できていないかもしれません。
誰かわかる人教えてください。

スタッフからの返信

s staff

2023/02/13 16:35

ご指摘の点を修正いたしました。 ご報告ありがとうございました。

この投稿に対して返信しませんか?