DBデータベーススペシャリスト試験 午前Ⅱ

令和2年度10月 データベーススペシャリスト 午前Ⅱ 問12

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

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

選択肢

  1. ア
    コミットポイント
  2. イ
    セーブポイント
  3. ウ
    制約モード
  4. エ
    チェックポイント
解き方のヒントを見る

境界と整合性を読むための着眼点

トランザクションを考えるときは、処理のまとまりとデータの整合性がどの時点で関係するかを整理し、個別の方式名や計算結果ではなく、状態の変化を時系列で追う視点を持ちましょう。

この問題で問われていること

一つの処理単位について、開始から終了までに外部から見える状態と、途中で失敗や中断が起きた場合に確認すべき境界の位置だけに注目し、各場面の前提を丁寧に照合しましょう。

視点

処理を一続きのまとまりとして眺め、実行前・実行中・完了後の状態を分けて整理します。整合性は、関連するデータ間の条件が各段階でどう扱われるかという観点で確認します。

確認ポイント

  • 処理の開始点と終了点を区別する
  • 途中状態が外部からどう見えるかを整理する
  • 失敗や中断時に確認すべき境界を定める
正解と解説を見る

正解

イ

解説

SQLトランザクション内で変更を部分的に取り消すには、処理途中の位置を戻り先として設定する。そこまでの変更は保持し、それ以降の変更だけを取り消せる。

理由

セーブポイントは、トランザクションの途中に設定する戻り先です。後からその位置までロールバックすると、セーブポイント設定後の変更を取り消し、設定前の変更を残せる。

比較

コミットポイントは変更の確定に関係し、制約モードはデータ制約の扱いに関係する。チェックポイントは一般に障害回復などで使われる処理上の基準点であり、設問の部分取り消しを設定する用語ではありません。

選択肢ア

これは不正解だよ。コミットはトランザクションの変更を確定する操作であり、処理途中の特定位置へ戻って、その後の変更だけを取り消すための戻り先を設定するものではない。部分的な取り消しという設問の目的と役割が異なる。

選択肢イ(正解)

これは正解だよ。セーブポイントはトランザクションの途中に戻り先を設定する機能である。その後にロールバックすると、セーブポイントより後の変更だけを取り消し、それより前の変更を保持できるため、部分的な取り消しに適している。

選択肢ウ

これは不正解だよ。制約モードは、データベースの整合性制約をどのようなタイミングや条件で検査するかに関係する用語である。トランザクション内の変更を途中位置まで戻すための設定を表していない。

選択肢エ

これは不正解だよ。チェックポイントは、データベースの障害回復や更新状態の基準となる位置を示す概念である。トランザクション利用者が途中の戻り先を設定し、後続の変更だけを取り消す機能とは役割が異なる。

学習のポイント

コミット、部分取り消し、制約、チェックポイントの役割を区別して覚える。

出典:独立行政法人 情報処理推進機構(IPA)令和2年度10月 データベーススペシャリスト試験 午前Ⅱ 問12(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針