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

平成30年度春期 データベーススペシャリスト 午前Ⅱ 問11

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

問題

トランザクションの直列化可能性(serializability)の説明はどれか。

選択肢

  1. ア
    2相コミットが可能であり,複数のトランザクションを同時実行できる。
  2. イ
    隔離性水準が低い状態であり,トランザクション間の干渉が起こり得る。
  3. ウ
    複数のトランザクションが,一つずつ順にスケジュールされて実行される。
  4. エ
    複数のトランザクションが同時実行された結果と,逐次実行された結果とが同じになる。
解き方のヒントを見る

境界操作と整合性を読む視点

トランザクションの境界を確認するときは、処理のまとまりがどこで始まりどこで終わるかを捉え、途中で失敗や同時実行が起きた場合にデータ全体へどのような影響が及ぶかを整理します。

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

一つの処理単位として扱われる範囲に注目し、各操作の前後で整合性を確認する条件と、異常時に状態をどう評価するかを切り分けて考えましょう。境界の位置と、境界をまたぐ処理の関係を図にして整理すると、論点を一つに絞れます。

視点

処理を個別の命令の列として眺めるだけでなく、ひとまとまりの単位として観察します。開始点、終了点、途中の失敗、他の処理との重なりを整理し、整合性が保たれるかを判断するための前提を明確にします。

確認ポイント

  • 処理の開始と終了を区別して整理する
  • 途中で異常が起きた場合の確認対象を分ける
  • 他の処理との重なりが論点に与える影響を考える
正解と解説を見る

正解

エ

解説

トランザクションの直列化可能性とは、複数のトランザクションを同時実行した結果が、それらを逐次的に実行した場合と同じ結果になる性質をいう。

理由

複数のトランザクションを同時に実行しても、逐次実行した場合と同じ結果になるなら、処理の並行性を保ちながら直列実行と同等の結果を得られる。この性質が直列化可能性です。

比較

2相コミットは分散トランザクションのコミット制御、隔離性水準はトランザクション間の見え方や干渉の制御、逐次実行は同時実行しない実行方式を指します。いずれも直列化可能性そのものの定義ではありません。

選択肢ア

これは不正解だよ。2相コミットは、複数の参加者に対してコミットまたはロールバックをそろえるための分散トランザクション制御方式である。複数のトランザクションを同時実行できることとも、同時実行結果が逐次実行結果と一致することとも、直接同じ意味ではない。

選択肢イ

これは不正解だよ。隔離性水準が低い状態では、トランザクション間の干渉が起こり得るが、それはデータの見え方や同時実行制御に関する説明である。直列化可能性は、隔離性水準の低さや干渉の発生可能性を定義する用語ではない。

選択肢ウ

これは不正解だよ。複数のトランザクションを一つずつ順にスケジュールして実行するのは、逐次実行の説明である。直列化可能性は同時実行をしないこと自体ではなく、同時実行した場合の結果を逐次実行の場合と比較して評価する性質である。

選択肢エ(正解)

これは正解だよ。直列化可能性は、複数のトランザクションを同時実行した結果が、トランザクションを逐次実行した結果と同じになる性質を表す。したがって、並行して処理しても、直列実行と同等の結果が保証されるという説明が適切である。

学習のポイント

直列化可能性は、同時実行の可否ではなく、実行結果の等価性を表す概念として理解する。

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

関連する過去問一覧

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