データベースの基礎

複数のサーバにデータの複製を置く分散データベースについての、CAP定理の説明として適切なものはどれか。

  1. Aサーバ間のネットワークが分断されたときには、どのサーバから読んでも最新の値が返る一貫性と、すべての要求に応答する可用性を、同時には完全に満たせない
  2. B一貫性、可用性、分断耐性の3つは、適切に設計すれば常に同時に満たせる
  3. C分断耐性とは、サーバ間のネットワークが分断されないように、回線を二重化することをいう
答えと解説を見る

正解:A. サーバ間のネットワークが分断されたときには、どのサーバから読んでも最新の値が返る一貫性と、すべての要求に応答する可用性を、同時には完全に満たせない

CAP定理は、分散したデータベースが、一貫性(Consistency: どのサーバから読んでも最新の書き込みの結果が返る)、可用性(Availability: 故障していないサーバは、すべての要求に応答を返す)、分断耐性(Partition tolerance: サーバ間の通信が途絶えても、システムとして動き続ける)の3つを、同時にすべて完全には満たせないことを示したものです。ネットワークの分断は現実には避けられないので、要点は、分断が起きたときに、一貫性を優先して一部の要求への応答を止めるか、可用性を優先して古い値を返すことを許して応答を続けるかを選ぶ必要がある、ということです。分断が起きていないときは、一貫性と可用性の両方を満たせます。NoSQLの製品には、可用性を優先し、時間がたてば複製がそろう結果整合性を採用するものが多くあります。分断耐性は回線を二重化することではなく、分断が起きても動作を続ける性質のことです。

  • A. 正しい。分断が起きたときは、一貫性と可用性のどちらを優先するかを選ぶ必要があります。
  • B. CAP定理は、3つを同時にすべて完全には満たせないことを示しています。
  • C. 分断耐性は、分断が起きても動き続ける性質のことで、分断を防ぐ仕組みではありません。
この分野を解く 分野ページへ

関連する計算ツール

データベースの基礎の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

データベースの基礎のほかの問題

  1. 関係データベースの用語で、表(リレーション)の1行に当たるものはどれか。
  2. 関係データベースの表で、主キーに指定する列(または列の組)が満たさなければならない条件はどれか。
  3. 社員表(社員番号, メールアドレス, 氏名, 部署)で、社員番号とメールアドレスはどちらも社員ごとに異なり、NULLにならない。氏名と部署は、ほかの社員と同じになることがある。この表の候補キーをすべて挙げたものはどれか。
  4. 履修表(学生番号, 科目番号, 成績)は、どの学生がどの科目を履修し、どんな成績だったかを記録する。1人の学生は複数の科目を履修し、1つの科目は複数の学生が履修する。同じ学生が同じ科目を2回登録することはないとき、この表の主キーとして適切なものはどれか。
  5. 顧客表(顧客ID, 氏名)の主キーは顧客IDで、注文表(注文ID, 顧客ID)の顧客IDは、顧客表の顧客IDを参照する外部キーとして定義されている。顧客表には顧客IDが'C1'と'C2'の行だけがある。この状態で INSERT INTO 注文 VALUES ('O9', 'C5') を実行したときの結果として正しいものはどれか。