DBデータベーススペシャリスト試験 午前Ⅱ
令和2年度10月 データベーススペシャリスト 午前Ⅱ 問2
問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。
問題
選択肢
- アクライアントからの更新要求を2相コミットによって全てのノードに反映する。
- イデータの更新結果は,システムに障害がなければ,いつかは全てのノードに反映される。
- ウ同一の主キーの値による同時の参照要求に対し,全てのノードは同じ結果を返す。
- エノード間のネットワークが分断されると,クライアントからの処理要求を受け付けなくなる。
解き方のヒントを見る
複製更新と整合性の見方
分散データベースでは、同じデータを複数地点で扱う目的と、更新が各地点へ伝わる過程を分けて捉えます。整合性の考え方は、反映の時点や順序、利用者からの見え方に注目して整理しましょう。
この問題で問われていること
確認する観点を、更新情報が複数の複製へ広がる際の「いつ」「どの順序で」「誰にどう見えるか」に絞ります。用語の定義と前提条件を照らし、単一の見方に早く決めつけないことが重要です。
視点
複製は可用性や負荷分散などの目的と結び付いて考えます。一方、更新反映と整合性は、反映の遅れ、順序、競合時の扱い、利用者が観測する状態という複数の軸で整理できます。
確認ポイント
- 更新の発生地点と、複製へ伝わる範囲を区別できているか
- 反映の時点・順序と、利用者から見える状態を分けて読めているか
- 可用性や応答性などの目的と、整合性に関する性質を混同していないか
正解と解説を見る
正解
イ
解説
BASEは、分散システムで一時的な不一致を許容しつつ、障害がなければ更新結果が最終的に各ノードへ反映されるという考え方です。
理由
BASEでは、更新直後から全ノードが同じ状態になることを必須とせず、システムに障害がなければ時間の経過とともに更新結果が全ノードへ反映される。この性質を結果整合性という。したがって、適切なのはイです。
比較
2相コミットは、複数の参加者によるトランザクションを全体として成立させるか取り消すかという原子性を扱う仕組みであり、全ノードへの即時のデータ複製や反映完了そのものを保証するものではありません。
選択肢ア
これは不正解だよ。2相コミットが保証するのは、参加する処理を全体として確定するか取り消すかというトランザクションの原子性である。BASEの特徴である、更新直後の不一致を許容し、障害がなければ最終的に反映する性質を表していない。
選択肢イ(正解)
これは正解だよ。BASEでは、分散した全ノードへの更新反映が直ちに完了することを必須とせず、一時的な不一致を許容する。その上で、システムに障害がなければ、更新結果が時間の経過によって最終的に全ノードへ反映される。
選択肢ウ
これは不正解だよ。同じ主キーへの参照要求であっても、更新の反映途中ではノードごとに保持するデータの状態が異なることがある。そのため、全ノードが同じ結果を返すことは、BASEが更新時点から保証する性質ではない。
選択肢エ
これは不正解だよ。ノード間のネットワークが分断されても、NoSQLの分散システムが常にクライアントからの処理要求を受け付けなくなるとは限らない。可用性を重視して処理を継続し、後で整合性を収束させる設計もある。
学習のポイント
結果整合性と、2相コミットの役割の違いを理解する。
出典:独立行政法人 情報処理推進機構(IPA)令和2年度10月 データベーススペシャリスト試験 午前Ⅱ 問2(公式資料:問題冊子(PDF) / 解答例)
関連する過去問一覧
IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針