令和5年度 秋期 データベーススペシャリスト試験 午前II 問2

テクノロジデータベースアルゴリズム

この問題は2023(R5)秋 データベーススペシャリスト 午前IIに出題されたものです。出題時点の法令・制度に基づく内容のため、現行の内容と一致しない場合があります。

本ページの問題文・選択肢は、原本の体裁を Web 表示用に正規化しています(改行・記号・数式・図表参照の調整)。設問の趣旨および正解に影響する変更は加えていません。

大文字のアルファベットで始まる膨大な数のデータを,規則に従って複数のノードに割り当てる。このようにあらかじめ定めた規則に従って,複数のノードにデータを分散して割り当てる方法はどれか。

[規則]

  • データの先頭文字が A~G の場合はノード1に格納する。
  • データの先頭文字が H~N の場合はノード2に格納する。
  • データの先頭文字が O~Z の場合はノード3に格納する。

解答・解説を読む

正解: 選択肢

シャーディング (sharding) とは、データベースの負荷を分散させるために、あらかじめ定めた規則に従ってデータを複数のノードに分散して格納する手法です。
本問のように、「データの先頭文字の範囲」などの規則に基づいて、データを分割し複数のノードに割り当てる方法は、まさにシャーディング(水平分割)に該当します。

各選択肢の解説

  • ア 2相コミットプロトコル: 分散データベース環境において、トランザクションのコミットを「準備完了通知」と「コミット指示」の2段階で行い、データの一貫性を保つための手法です。データの分割方法ではありません。
  • イ コンシステントハッシング: ハッシュ関数の結果に基づいてデータを各ノードに分散格納するアルゴリズムです。ノードの増減時にデータの再配置を最小限に抑える特徴がありますが、本問のような「先頭文字の範囲」による単純なルールでの割り当てとは異なります。
  • ウ シャーディング: 正解です。あらかじめ定めた規則に従って、複数のノードにデータを分散して割り当てる手法です。
  • エ レプリケーション: データの可用性や読み込みパフォーマンスを向上させるために、全く同じデータを複数のノードに複製して保持する手法です。データを分割して割り当てる手法ではありません。