データベーススペシャリスト 2019年 午前2 問01
問題文
分散型データベースシステムにおいては、一貫性・可用性・分断耐性の三つの特性のうち、同時には最大二つまでしか満たすことができないとする理論はどれか。
選択肢
ア:BASE特性
イ:CAP定理(正解)
ウ:アムダールの法則
エ:ベイズの定理
🔒 解説は解答すると表示されます
CAP定理【午前2解説】
正解の理由
分散型データベースや分散システムで「一貫性(Consistency)」「可用性(Availability)」「分断耐性(Partition tolerance)」という三つの性質のうち、同時に全てを満たすことはできないという主張は、CAP定理を指します。選択肢の中では イ がこれに該当します。
CAP定理は、ネットワーク分断(パーティション)が発生した場合に、システム設計者は「一貫性」と「可用性」のどちらを優先するかを選ばざるを得ない、という本質的なトレードオフを示します。形式的には、Eric Brewer が2000年に提唱した概念的主張を基に、Seth Gilbert と Nancy Lynch が2002年に論文でモデル化・証明を与えました(Gilbert & Lynch, PODC 2002)。ここでの「一貫性」は一般に強い意味(線形化可能性など)で解釈されます。
解法ステップ
- 問題文から重要語を抽出:「一貫性」「可用性」「分断耐性」。
- これらがセットで語られる有名な理論を想起する(CAP定理)。
- 選択肢を照合:CAP定理を意味する選択肢を選ぶ(イ)。
- 他の選択肢(BASE、アムダール、ベイズ)を定義に照らして除外する。
選択肢別の誤答解説
- ア: BASE特性
- 説明: BASE は「Basically Available, Soft state, Eventually consistent」の略で、分散データストアが強い一貫性を放棄して可用性や漸近的一貫性を取る設計思想。CAPの主張そのものではないため不正解。
- イ: CAP定理(正解)
- 説明: 上述のとおり。
- ウ: アムダールの法則
- 説明: 並列処理における速度向上の理論(並列化による上限)であり、分散システムの一貫性・可用性・分断耐性のトレードオフとは無関係。
- エ: ベイズの定理
- 説明: 条件付き確率の基本定理で、分散システム特性を述べる理論ではない。
よくある誤解
- 「CAPは常に“二つしか満たせない”と言っている」
- 誤解: CAPは「平常時でも常に二つまでしか満たせない」とは述べません。重要なのは「ネットワーク分断が発生した場合」に、可用性と強い一貫性を同時に保証することは不可能だという点です。分断がなければ両方を満たすことは可能です。
- 「分断耐性は妥協できる」
- 誤解: 実運用ではネットワーク分断は現実的な事象なので、多くの分散システムは分断耐性を前提に設計され、代わりに一貫性か可用性のどちらかを選ぶことが多いです。
- 「一貫性=データの整合性(広義)」
- 誤解: CAPでの「一貫性」は実装により“強い一貫性(線形化可能性)”を指すことが多く、アプリケーションレベルの整合性制約とは区別して考える必要があります。
補足コラム
- 起源と証明: CAP定理は最初に Eric Brewer による経験的主張(2000年)として知られ、その後 Seth Gilbert と Nancy Lynch が理論的モデルで2002年に形式化・証明しました("Brewer's Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services")。この証明は、非同期ネットワークモデルにおける不可能性結果として示されています。
- 実務的応用: 実際の設計では「CP(Consistency + Partition tolerance)」や「AP(Availability + Partition tolerance)」のどちらを重視するか、あるいは一貫性の強さを調整することで妥協(チューニング)します。
- PACELC: CAPの拡張概念として PACELC があります。要点は「パーティション発生時(P)には延性が生じるが、それ以外(E)でも遅延と一貫性のトレードオフ(L vs C)が常に存在する」という考え方で、より実務的な選択肢評価に役立ちます。
FAQ
Q1: CAP定理はどの程度厳密な理論ですか?
A1: 概念自体はBrewerの経験的主張ですが、Seth Gilbert と Nancy Lynch が2002年にモデル化・形式的な不可能性証明を与えています。条件(ネットワークモデルや一貫性定義)を明確にすると厳密な結果になります。
A1: 概念自体はBrewerの経験的主張ですが、Seth Gilbert と Nancy Lynch が2002年にモデル化・形式的な不可能性証明を与えています。条件(ネットワークモデルや一貫性定義)を明確にすると厳密な結果になります。
Q2: 「一貫性」は具体的に何を指しますか?
A2: CAP文脈では通常、強い一貫性(例えば線形化可能性=全ての操作が単一の順序で見える)を指します。アプリケーションで求められる整合性要件はこれより緩い場合もあります(最終的一貫性など)。
A2: CAP文脈では通常、強い一貫性(例えば線形化可能性=全ての操作が単一の順序で見える)を指します。アプリケーションで求められる整合性要件はこれより緩い場合もあります(最終的一貫性など)。
Q3: 実際のデータベースはどう選ぶべきですか?
A3: 要求される応答性(レイテンシ)、データ更新頻度、ネットワークの信頼性、整合性要件を基に、CP寄りかAP寄りか、あるいは調整可能な一貫性設定を持つ製品を選びます。PACELCの視点で比較すると判断がしやすくなります。
A3: 要求される応答性(レイテンシ)、データ更新頻度、ネットワークの信頼性、整合性要件を基に、CP寄りかAP寄りか、あるいは調整可能な一貫性設定を持つ製品を選びます。PACELCの視点で比較すると判断がしやすくなります。
関連キーワード: CAP定理、分散システム、一貫性、可用性、分断耐性、PACELC、BASE、ACID、Seth Gilbert、Nancy Lynch、Eric Brewer

\ せっかくなら /
データベーススペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

