SkillStack
テクノロジ系13 / 25問

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

"部品"表のメーカーコード列に対し、B⁺木インデックスを作成した。これによって、"部品"表の検索の性能改善が最も期待できる操作はどれか。ここで、部品及びメーカーのデータ件数は十分に多く、"部品"表に存在するメーカーコード列の値の種類は十分な数があり、かつ、均一に分散しているものとする。また、"部品"表のごく少数の行には、メーカーコード列にNULLが設定されている。実線の下線は主キーを、破線の下線は外部キーを表す。

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

選択肢を押すと答え合わせができます。

正解と解説を見る

【正解】ウ

B⁺木インデックスは、キーが大小順に管理されるので、一致検索だけでなく範囲検索にも適しています。ウの条件では、まず4001以上となる位置を木構造から効率よく見つけ、その後、葉ページを4003まで順にたどれます。メーカーコードの種類が十分に多く、値が均一に分散しているため、この狭い範囲に該当する行は表全体の一部です。読み取る行やページを大幅に絞り込めるので、最も大きな性能改善が期待できます。

アの、1001以外を検索する操作は誤りです。メーカーコードの種類が多い場合、一つの値だけを除外すると、表のほとんどの行が検索対象になります。インデックスから多数の行を個別に参照するよりも、表全体を走査する方が効率的になりやすい条件です。

イの、1001と4001以外を検索する操作も誤りです。除外する値が二つになっても、検索対象は依然として表の大部分です。これは選択性の低い否定条件であり、インデックスによる絞込み効果が小さくなります。

エの、NULL以外を検索する操作は誤りです。NULLが設定された行はごく少数なので、NULL以外という条件にはほぼ全行が該当します。NULLをインデックスに格納するかどうかはDBMSの実装によって異なりますが、この条件の選択性が低い点は変わりません。

【ポイント】 B⁺木インデックスは、等価検索、範囲検索、並び順を利用する検索に向いています。 インデックスの効果は、検索対象をどれだけ少数に絞れるかを示す選択性に左右されます。 「以外」や「NULL以外」のように大部分の行が該当する条件では、効果が小さくなります。

出典:令和5年度 秋期 データベーススペシャリスト試験 午前II 問13
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。

この回の25問を、アプリで通しで解く

  • 本番と同じ問題数・制限時間で通し演習(模試モード)
  • 間違えた問題は自動で「復習すべき問題」に回る
  • 解説で分からない点はAIに質問できる
SkillStackで無料で始める