DBデータベーススペシャリスト試験 午前Ⅱ

平成27年度春期 データベーススペシャリスト 午前Ⅱ 問15

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

B+木インデックスとビットマップインデックスを比較した説明のうち,適切なものはどれか。

選択肢

  1. ア
    ANDやOR操作だけで行える検索はB+木インデックスの方が有効である。
  2. イ
    BETWEENを用いた範囲指定検索はビットマップインデックスの方が有効である。
  3. ウ
    NOTを用いた否定検索はB+木インデックスの方が有効である。
  4. エ
    少数の異なる値をもつ列への検索はビットマップインデックスの方が有効である。
解き方のヒントを見る

索引探索の対象と順序を整理する

索引を使う探索では、検索条件と索引の構成要素がどのように対応するか、探索の開始点から候補を絞る過程、最後に実データを確認する必要性を順に整理して考えます。

この問題で問われていること

確認する観点を、検索条件が索引上のどの情報に結び付き、候補の探索から対象行の確認へ進む流れを追えるかという一点に絞って考えてみましょう。

視点

索引探索を考えるときは、条件の読み取り、索引内で参照する範囲、候補を得た後の確認という段階を分け、各段階の役割を整理します。

確認ポイント

  • 検索条件と索引の項目が対応しているか確認する
  • 探索の開始位置と候補の絞り方を整理する
  • 候補から実際の対象を確認する段階を意識する
正解と解説を見る

正解

エ

解説

ビットマップインデックスは、列が取り得る値の種類が少ない場合に、各値に対応する行の集合をビット列で管理できるため検索に有効です。

理由

ビットマップインデックスは、性別や状態などのように少数の異なる値をもつ列に適している。値ごとに行の該当状況をビットで表せるため、対象行の集合を効率よく扱える。したがって、少数の異なる値をもつ列への検索ではビットマップインデックスが有効です。

比較

B+木インデックスはキーの大小関係を利用する構造で、範囲指定検索などに適している。一方、ビットマップインデックスは行集合の論理演算を効率よく処理でき、値の種類が少ない列で特に効果を発揮する。設問ではこの性質に合う説明を選ぶ。

選択肢ア

これは不正解だよ。ANDやOR操作だけで行える検索では、該当行の集合をビット列として扱い、ビット単位の論理演算を行えるビットマップインデックスが適している。この説明は、B+木インデックスの方が有効だとしており、方式ごとの得意な処理を逆に述べている。

選択肢イ

これは不正解だよ。BETWEENを用いた範囲指定検索は、キーの大小関係を利用して連続した範囲を探索できるB+木インデックスが適している。ビットマップインデックスは少数の値をもつ列で行集合を扱う検索に向くため、範囲指定検索の方が有効だとする説明は適切ではない。

選択肢ウ

これは不正解だよ。NOTを用いた否定検索では、対象外となる行の集合を扱う必要があり、値ごとの行集合をビット演算で処理できるビットマップインデックスの特徴を利用できる。B+木インデックスの方が有効だと一律に述べるこの説明は、方式の性質と一致しない。

選択肢エ(正解)

これは正解だよ。少数の異なる値をもつ列では、ビットマップインデックスが値ごとの該当行をビット列で表し、行集合の検索や論理演算を効率よく行える。この方式の代表的な適用条件に合致しており、比較説明として適切である。

学習のポイント

値の種類数と、インデックスが表す検索対象の集合に注目して比較する。

出典:独立行政法人 情報処理推進機構(IPA)平成27年度春期 データベーススペシャリスト試験 午前Ⅱ 問15(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針