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

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

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

問題

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

選択肢

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

索引探索を整理する一つの視点

索引を使う探索問題では、検索条件とデータの並び方の関係に注目し、どの情報を手掛かりに候補範囲を段階的に捉えるかを整理します。全体を確認する場面との違いも、処理の流れに沿って考えます。

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

確認する観点は、与えられた条件が索引の構造とどのように対応するかです。探索の開始点、絞り込みの進み方、対象外になる範囲を順に考え、各判断の根拠を言葉で確かめます。

視点

索引探索では、条件の項目と並びの単位を対応づけ、全体を調べるのか、候補を段階的に狭めるのかを区別します。処理の各段階で、何を根拠に次の範囲へ移るかを言葉で整理すると、方式の違いを比較しやすくなります。

確認ポイント

  • 検索条件と索引の構成要素が対応しているか確認する
  • 探索の各段階で候補範囲がどう変化するかを追う
  • 終了条件と、確認対象から外れる範囲を整理する
正解と解説を見る

正解

エ

解説

ビットマップインデックスは、列の値の種類が少ない場合に、各値に対応するビット列を用いて検索対象を効率よく絞り込めます。そのため、少数の異なる値をもつ列への検索では有効です。

理由

ビットマップインデックスは、列の取り得る値が少ないとき、値ごとのビットマップを使って検索条件を表現できます。複数条件のANDやORもビット演算で効率よく処理できるため、低カーディナリティの列に適しています。

比較

B+木はキーの順序を利用した範囲検索や単一値検索などに適しています。一方、値の種類が少ない列ではビットマップインデックスの効果が高く、設問の適切な説明はエです。

選択肢ア

これは不正解だよ。ANDやOR操作だけで行える検索では、条件に対応するビットマップ同士を論理演算できるため、ビットマップインデックスが有効です。したがって、このような検索をB+木の方が有効とする説明は適切ではありません。

選択肢イ

これは不正解だよ。BETWEENを用いた範囲指定検索は、キーの順序を利用して範囲をたどれるB+木インデックスが得意です。ビットマップインデックスが一般にB+木より有効とする説明は、両者の特徴と一致しません。

選択肢ウ

これは不正解だよ。NOTを用いた否定検索では、対象外の行を効率よく表現できるビットマップインデックスが有効になる場合があります。否定検索をB+木インデックスの方が有効と一律に説明するのは適切ではありません。

選択肢エ(正解)

これは正解だよ。異なる値の数が少ない列では、値ごとのビットマップを作成し、検索条件に応じてビット演算で対象行を絞り込めます。このような低カーディナリティの列への検索は、ビットマップインデックスが有効です。

学習のポイント

B+木とビットマップインデックスの適用条件を、値の種類数と検索処理の特徴から比較する。

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

関連する過去問一覧

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