SkillStack
テクノロジ系12 / 25問

データベーススペシャリスト試験 令和2年度 秋期 午前II 問12

SQLトランザクション内で変更を部分的に取り消すために設定するものはどれか。

選択肢を押すと答え合わせができます。

正解と解説を見る

【正解】イ

セーブポイントは、トランザクションの途中に設定する一時的な区切りです。セーブポイントを設定しておけば、後続の処理でエラーが発生した場合に、トランザクション全体ではなく、そのセーブポイントより後に行った変更だけを取り消せます。SQLでは一般にSAVEPOINT文で設定し、ROLLBACK TO SAVEPOINTなどによって指定位置まで戻します。したがって、変更を部分的に取り消すために設定するイが正解です。

アのコミットポイントは誤りです。コミットは、トランザクション内の変更を確定する処理です。確定後は通常のロールバックの対象にならないため、部分的な取消し位置を示すものではありません。

ウの制約モードは誤りです。これは、外部キーや一意性などの制約を各SQL文の終了時に検査するか、トランザクションの終了時まで遅らせるかを指定するものです。

エのチェックポイントは誤りです。チェックポイントは、データベースの更新状況などを記録し、障害発生後にログを用いて回復するときの開始位置を定める仕組みです。利用者がトランザクションを部分的に戻すための位置ではありません。

【ポイント】 セーブポイントまでの変更は残し、それより後の変更だけを取り消せます。 トランザクション全体の取消しにはROLLBACK、変更の確定にはCOMMITを使用します。 セーブポイントと、障害回復用のチェックポイントを混同しないことが重要です。

出典:令和2年度 秋期 データベーススペシャリスト試験 午前II 問12
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。

この回の25問を、アプリで通しで解く

  • 本番と同じ問題数・制限時間で通し演習(模試モード)
  • 間違えた問題は自動で「復習すべき問題」に回る
  • 解説で分からない点はAIに質問できる
SkillStackで無料で始める