DBデータベーススペシャリスト試験 午前Ⅱ
平成30年度春期 データベーススペシャリスト 午前Ⅱ 問15
問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。
問題
選択肢
- アAND操作や OR操作だけで行える検索は,B+木インデックスの方が有効である。
- イBETWEENを用いた範囲指定検索は,ビットマップインデックスの方が有効である。
- ウNOTを用いた否定検索は,B+木インデックスの方が有効である。
- エ少数の異なる値をもつ列への検索は,ビットマップインデックスの方が有効である。
解き方のヒントを見る
索引探索の対象を見極める視点
索引を使う探索では、条件に対して何を手掛かりにできるか、候補範囲と確認の流れがどう関係するかを整理し、処理全体の見通しを持つことが大切です。実際の選択肢では、対象列や条件の組合せを同じ基準で比べてみましょう。
この問題で問われていること
この問題では、検索条件と索引の構成を対応させるとき、どの情報が探索対象を絞る手掛かりになり、どの部分を別途確認する必要があるかという観点だけに注目し、用語の役割を区別して整理します。
視点
索引探索を考えるときは、検索条件、対象となる属性、候補の範囲、最終的なデータ確認という役割を分けて整理します。これらを混同せず、各選択肢がどの役割を説明しているかを読み取ると、手順の比較がしやすくなります。
確認ポイント
- 検索条件のうち、探索の手掛かりとして扱われている情報を確認する
- 索引が扱う対象と、検索後に確認する対象を区別する
- 候補範囲の絞り込みと最終結果の確認を同じ意味にしない
正解と解説を見る
正解
エ
解説
B+木インデックスは順序を利用した検索に向き、ビットマップインデックスは値の種類が少ない列の検索で効率を発揮します。したがって、少数の異なる値をもつ列への検索にビットマップインデックスが有効とするエが適切です。
理由
ビットマップインデックスは、列の値ごとにビット列を持たせ、検索条件をビット演算で処理します。そのため、性別や状態などのように異なる値が少ない列では、効率よく検索できます。
比較
B+木インデックスはキーの順序を利用するため、範囲検索や順序性を持つ検索に適しています。一方、ビットマップインデックスはAND、OR、NOTなどのビット演算と相性がよく、低カーディナリティの列で効果を発揮します。
選択肢ア
これは不正解だよ。ANDやORだけで検索することを理由に、常にB+木インデックスの方が有効とはいえません。ビットマップインデックスは条件ごとのビット列をANDやORで組み合わせられるため、この記述は方式の特性を逆に捉えています。
選択肢イ
これは不正解だよ。BETWEENを用いる範囲指定検索は、キーの大小関係を利用できるB+木インデックスが得意とする処理です。ビットマップインデックスが範囲検索に特に有効とする説明は、両方式の代表的な用途に合いません。
選択肢ウ
これは不正解だよ。NOTを用いた否定検索だけを根拠に、B+木インデックスの方が有効とは判断できません。ビットマップインデックスでは条件に対応するビット列を反転する処理が可能であり、記述は特性と一致しません。
選択肢エ(正解)
これは正解だよ。ビットマップインデックスは、列が取り得る異なる値が少ない場合に、値ごとのビット列を使って効率よく検索できます。したがって、少数の異なる値をもつ列への検索に有効とする説明は適切です。
学習のポイント
B+木とビットマップインデックスの構造上の得意分野を、列の値の種類数と検索方法から比較する。
出典:独立行政法人 情報処理推進機構(IPA)平成30年度春期 データベーススペシャリスト試験 午前Ⅱ 問15(公式資料:問題冊子(PDF) / 解答例)
関連する過去問一覧
IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針