データベーススペシャリスト試験 2023年 午前204


B+B^+木インデックスが定義されている候補キーを利用して、1件のデータを検索するとき、データ総件数Xに対するB+木インデックスを格納するノードへのアクセス回数のオーダーはどれか。
x\sqrt{x}
logx\log x(正解)
XX
X!X!

解説

B+木インデックスの検索アクセス回数のオーダー【午前2 解説】

要点まとめ

  • 結論:B+木インデックスを使った1件検索のアクセス回数はデータ件数XXに対してlogX\log Xのオーダーです。
  • 根拠:B+木は平衡木の一種であり、木の高さがlogX\log Xに比例するため、検索時のノードアクセス回数もlogX\log Xとなります。
  • 差がつくポイント:B+木の構造理解と、単純な線形探索や階乗オーダーとの違いを明確に把握することが重要です。

正解の理由

B+木はデータベースやファイルシステムで広く使われる平衡木構造で、すべてのデータが葉ノードに格納されます。内部ノードは索引情報のみを持ち、木の高さはデータ件数XXに対してlogX\log Xのオーダーで増加します。したがって、1件のデータを検索する際にアクセスするノード数は木の高さに相当し、logX\log X回のアクセスで済みます。これが選択肢イの理由です。

よくある誤解

B+木の検索時間をデータ件数に比例すると誤解し、線形探索のXXや平方根X\sqrt{X}と混同しやすいです。階乗X!X!は全く現実的でないオーダーです。

解法ステップ

  1. B+木の構造を理解する(平衡木であること、葉ノードにデータがあること)。
  2. 木の高さがデータ件数XXに対してどのように変化するかを考える。
  3. 木の高さはlogX\log Xに比例するため、検索時のノードアクセス回数もlogX\log Xとなる。
  4. 選択肢の中からlogX\log Xを選ぶ。

選択肢別の誤答解説

  • ア: X\sqrt{X}
    → B+木の高さは平方根オーダーではなく、平衡木の特性からlogX\log Xです。
  • イ: logX\log X
    → 正解。B+木の高さに比例し、効率的な検索が可能です。
  • ウ: XX
    → 線形探索のオーダーであり、B+木の高速検索の特徴を無視しています。
  • エ: X!X!
    → 階乗は計算量として非現実的であり、木構造の検索とは無関係です。

補足コラム

B+木はデータベースのインデックス構造として非常に重要です。ノードの分岐数(ファンアウト)が大きいため、木の高さはさらに低く抑えられ、ディスクI/O回数の削減に寄与します。これにより大規模データの高速検索が可能となります。

FAQ

Q: なぜB+木はlogX\log Xの高さになるのですか?
A: B+木は平衡木であり、各ノードが複数の子を持つため、データ件数XXに対して木の高さはlogX\log Xに比例します。
Q: B+木とB木の違いは何ですか?
A: B+木はすべてのデータが葉ノードにあり、内部ノードは索引のみを持つ点がB木と異なります。これにより範囲検索が効率的になります。

関連キーワード: B+木, インデックス検索, 平衡木, 検索オーダー, データベースインデックス
← 前の問題へ次の問題へ →

©︎2025 情報処理技術者試験対策アプリ