ホーム > データベーススペシャリスト試験 > 2022年
データベーススペシャリスト試験 2022年 午前2 問01
BASE特性を満たし, 次の特徴をもつNoSQLデータベースシステムに関する記述のうち, 適切なものはどれか。
〔NoSQLデータベースシステムの特徴〕
・ネットワーク上に分散した複数のノードから構成される。
・一つのノードでデータを更新した後、他の全てのノードにその更新を反映する。
ア:クライアントからの更新要求を2相コミットによって全てのノードに反映する。
イ:データの更新結果は, システムに障害がなければ, いつかは全てのノードに反映される。(正解)
ウ:同一の主キーの値による同時の参照要求に対し、全てのノードは同じ結果を返す。
エ:ノード間のネットワークが分断されると, クライアントからの処理要求を受け付けなくなる。
解説
NoSQLデータベースのBASE特性に関する問題【午前2 解説】
要点まとめ
- 結論:NoSQLのBASE特性では、更新は即時全ノード反映ではなく「最終的に一貫性」が保証される。
- 根拠:BASEは「Basically Available, Soft state, Eventual consistency」の略で、即時強い一貫性を求めない設計思想。
- 差がつくポイント:2相コミットのような強い一貫性を保証する仕組みはBASEではなく、CAP定理のCP系に近い点を理解すること。
正解の理由
選択肢イは「データの更新結果は、システムに障害がなければ、いつかは全てのノードに反映される」と述べており、これはBASEの「Eventual consistency(最終的整合性)」の特徴を正確に表しています。NoSQLデータベースは分散環境で可用性を重視し、即時の強い一貫性を犠牲にしても、最終的に全ノードのデータが整合することを保証します。したがって、イが適切な記述です。
よくある誤解
BASE特性のNoSQLは「即時に全ノードが同じデータを返す」と誤解されがちですが、実際は「最終的に整合する」ことを目指しています。
解法ステップ
- BASE特性の意味を確認する(Basically Available, Soft state, Eventual consistency)。
- 問題文の「分散ノード」「更新反映」の条件とBASEの整合性モデルを照合する。
- 選択肢の内容が強い一貫性(2相コミットなど)か最終的整合性かを判別する。
- BASEの特徴に合致する選択肢を選ぶ。
選択肢別の誤答解説
- ア: 2相コミットは強い一貫性を保証するためのプロトコルであり、BASEの特徴とは異なります。
- イ: 正解。最終的整合性を示し、BASEの特徴を正しく表現しています。
- ウ: 同一主キーの同時参照で全ノードが同じ結果を返すのは強い一貫性の特徴であり、BASEの設計思想とは異なります。
- エ: ネットワーク分断時に処理要求を受け付けなくなるのはCP系の特徴で、BASEは可用性を重視し処理を継続します。
補足コラム
NoSQLデータベースはCAP定理に基づき、Consistency(一貫性)、Availability(可用性)、Partition tolerance(分断耐性)のうち2つを重視します。BASEは可用性と分断耐性を優先し、一貫性は「最終的に」保証する設計です。代表的なNoSQLにはCassandraやDynamoDBなどがあり、これらはBASEモデルを採用しています。
FAQ
Q: BASE特性の「Soft state」とは何ですか?
A: 状態が時間経過や更新により変化しうることを意味し、即時の一貫性を保証しないことを示します。
A: 状態が時間経過や更新により変化しうることを意味し、即時の一貫性を保証しないことを示します。
Q: 2相コミットはどのような場面で使われますか?
A: 強い一貫性が必要な分散トランザクションで使われ、全ノードの合意を得てからコミットします。
A: 強い一貫性が必要な分散トランザクションで使われ、全ノードの合意を得てからコミットします。
関連キーワード: NoSQL, BASE特性, 分散データベース, 最終的整合性, CAP定理, 2相コミット, 一貫性モデル