DBデータベーススペシャリスト試験 午前Ⅱ
平成26年度春期 データベーススペシャリスト 午前Ⅱ 問11
問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。
問題
選択肢
- ア2相コミットが可能であり,複数のトランザクションを同時実行できる。
- イ隔離性水準が低い状態であり,トランザクション間の干渉が起こり得る。
- ウ複数のトランザクションが同時実行された結果と,逐次実行された結果とが同じになる。
- エ複数のトランザクションが,一つずつ順にスケジュールされて実行される。
解き方のヒントを見る
トランザクション境界の見極め
トランザクションの開始から完了までを一つの単位として捉え、途中の処理と確定・取り消しの関係を整理しながら、データの整合性がどの時点で守られるべきかに注目して丁寧に確認します。
この問題で問われていること
選択肢を読むときは、処理の途中状態と境界を越えた後の状態を分けて考え、どの操作が同じ取引に含まれる想定か、また異常時に状態がどう扱われるかという観点だけを確認します。
視点
処理を個別の操作として追うだけでなく、開始・終了・中断の区切りと、区切りの前後で観測されるデータ状態の違いを整理します。
確認ポイント
- 一連の操作のうち、同じ単位として扱われる範囲を確認する
- 確定前と確定後で、外部から見える状態を分けて整理する
- 途中で問題が起きた場合に、どの境界まで影響を考えるか確認する
正解と解説を見る
正解
ウ
解説
直列化可能性とは、複数のトランザクションを同時実行しても、その結果がトランザクションを逐次実行した結果と同じになる性質です。
理由
トランザクションの直列化可能性が保証されている状態では、複数のトランザクションを並行実行した結果が、トランザクションを何らかの順序で逐次実行した結果と同じになる。したがって、並行実行による処理順序の違いが、最終結果の不整合を生じさせない。
比較
2相コミットは分散トランザクションのコミット制御、隔離性水準はトランザクション間の見え方や干渉の制御に関する概念です。また、一つずつ実行することは直列実行そのものであり、並行実行の結果が直列実行と等価になるという性質とは異なる。
選択肢ア
これは不正解だよ。2相コミットは、複数のシステムにまたがるトランザクションを一貫してコミットまたはロールバックするためのプロトコルである。複数トランザクションを同時実行できることも、並行実行結果が逐次実行結果と等しくなる直列化可能性そのものを示していない。
選択肢イ
これは不正解だよ。隔離性水準が低い状態では、トランザクション間の干渉や未確定データの参照などが起こりやすく、結果の一貫性を損なう可能性がある。直列化可能性が保証される状態を説明する内容ではなく、むしろ反対方向の説明である。
選択肢ウ(正解)
これは正解だよ。直列化可能性は、複数のトランザクションを同時実行した結果が、それらをある順序で一つずつ逐次実行した結果と同じになる性質である。この説明は、並行実行と直列実行の結果が一致するという定義に合致している。
選択肢エ
これは不正解だよ。複数のトランザクションを一つずつ順に実行するのは、直列実行の説明である。直列化可能性は、実際に常に一つずつ実行することではなく、同時実行した場合でも、その結果が適切な直列実行と同じになることを表す。
学習のポイント
直列化可能性と、コミット方式・隔離性水準・実行スケジュールを区別する。
出典:独立行政法人 情報処理推進機構(IPA)平成26年度春期 データベーススペシャリスト試験 午前Ⅱ 問11(公式資料:問題冊子(PDF) / 解答例)
関連する過去問一覧
IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針