ホーム > データベーススペシャリスト試験 > 2023年
データベーススペシャリスト試験 2023年 午前2 問01
CAP定理に関する記述として、適切なものはどれか。
ア:システムの可用性は基本的に高く、サービスは利用可能であるが、整合性については厳密ではない。しかし、最終的には整合性が取れた状態となる。
イ:トランザクション処理は、データの整合性を保証するので、実行結果が矛盾した状態になることはない。
ウ:複数のトランザクションを並列に処理したときの実行結果と、直列で逐次処理したときの実行結果は一致する。
エ:分散システムにおいて、整合性、可用性、分断耐性の三つを同時に満たすことはできない。(正解)
解説
CAP定理に関する記述 +【午前2 解説】
要点まとめ
- 結論:分散システムでは整合性、可用性、分断耐性の三つを同時に完全に満たすことは不可能です。
- 根拠:CAP定理は分散システムの基本理論で、ネットワーク分断時に整合性か可用性のどちらかを犠牲にせざるを得ないことを示しています。
- 差がつくポイント:CAP定理の「三つの特性のうち同時に2つまでしか保証できない」という本質を正確に理解し、誤解しやすいトランザクションの整合性や並列処理の結果との違いを押さえることが重要です。
正解の理由
選択肢エはCAP定理の核心を正しく表現しています。CAP定理とは、分散システムにおいて「Consistency(整合性)」「Availability(可用性)」「Partition tolerance(分断耐性)」の三つの特性を同時に完全に満たすことは不可能であり、ネットワーク分断が発生した場合は整合性か可用性のどちらかを犠牲にしなければならないという理論です。したがって、エの記述が正解です。
よくある誤解
CAP定理はトランザクションのACID特性や単一ノード内の整合性保証とは異なり、分散環境での特性のトレードオフを示しています。整合性が常に保証されるわけではありません。
解法ステップ
- CAP定理の3要素「整合性」「可用性」「分断耐性」を理解する。
- それぞれの意味を整理する(整合性=全ノードで同じデータ、可用性=常に応答可能、分断耐性=ネットワーク分断に耐える)。
- CAP定理の主張「3つ同時に満たせない」を確認する。
- 選択肢の記述がこの理論に合致しているかを判断する。
- トランザクションの整合性や並列処理の結果の一致はCAP定理とは別の概念であることを区別する。
選択肢別の誤答解説
- ア: 「最終的に整合性が取れた状態となる」は「最終的整合性」の説明に近いが、CAP定理の本質ではなく誤解を招く表現です。
- イ: トランザクション処理の整合性保証はACID特性の話であり、CAP定理の分散環境の制約とは異なります。
- ウ: 並列トランザクションの結果が直列処理と一致するのは「直列化可能性」の話で、CAP定理とは無関係です。
- エ: 分散システムで整合性、可用性、分断耐性の三つを同時に満たせないというCAP定理の核心を正しく述べています。
補足コラム
CAP定理は2000年にエリック・ブルーワーによって提唱され、その後ギル・ピーターズによって理論的に証明されました。分散システム設計では、用途に応じて整合性重視(CPシステム)か可用性重視(APシステム)かを選択することが多いです。また、最終的整合性を許容することで可用性を高める設計も一般的です。
FAQ
Q: CAP定理の「分断耐性」とは何ですか?
A: ネットワーク分断が発生してもシステムが動作を続けられる能力を指します。分断時に整合性か可用性のどちらかを犠牲にする必要があります。
A: ネットワーク分断が発生してもシステムが動作を続けられる能力を指します。分断時に整合性か可用性のどちらかを犠牲にする必要があります。
Q: トランザクションの整合性とCAP定理の整合性は同じですか?
A: いいえ。トランザクションの整合性は単一ノードやデータベース内のACID特性で、CAP定理の整合性は分散システム全体での一貫性を指します。
A: いいえ。トランザクションの整合性は単一ノードやデータベース内のACID特性で、CAP定理の整合性は分散システム全体での一貫性を指します。
関連キーワード: CAP定理, 分散システム, 整合性, 可用性, 分断耐性, トレードオフ, ネットワーク分断