情報処理安全確保支援士試験 情報処理安全確保支援士試験 平成30年度春期 午前Ⅰ8: 関係データベースのテーブルにレコードを1件追加したところ,インデックスとして使う,図のB⁺木のリーフノードCがノードC1とC2に分割された。ノード分割後のB⁺木

情報処理安全確保支援士試験 平成30年度春期 午前Ⅰ
Q 88 / 30
関係データベースのテーブルにレコードを1件追加したところ,インデックスとして使う,図のB⁺木のリーフノードCがノードC1とC2に分割された。ノード分割後のB⁺木構造はどれか。ここで,矢印はノードへのポインタとする。また,中間ノードAには十分な空きがあるものとする。
問題の図:中間ノードAから子ノードB,C,Dへポインタが伸び,リーフB↔C↔Dが双方向連結されたB⁺木。選択肢ア~エは,リーフCをC1とC2に分割した後のB⁺木構造の図(4つの異なる結線パターン)。

問題本文

関係データベースのテーブルにレコードを1件追加したところ,インデックスとして使う,図のB⁺木のリーフノードCがノードC1とC2に分割された。ノード分割後のB⁺木構造はどれか。ここで,矢印はノードへのポインタとする。また,中間ノードAには十分な空きがあるものとする。

選択肢

  • .(図)中間ノードAから子ノードB,C1,C2,Dへポインタが伸び,リーフはB↔C1↔C2↔Dの順で双方向に連結されている。
  • .(図)中間ノードAから子ノードB,C1,C2,Dへポインタが伸び,リーフはB↔C1↔C2↔Dの順で連結されているが,AからC2へのポインタの向きなどが異なる。
  • .(図)中間ノードAから子ノードB,C1,D,C2へポインタが伸び,リーフがB↔C1↔D↔C2の順に連結されている。
  • .(図)中間ノードAから子ノードB,C1,Dへポインタが伸び,C2はC1の下にぶら下がる(C1↔C2が縦に連結された)構造。

正解

. (図)中間ノードAから子ノードB,C1,C2,Dへポインタが伸び,リーフはB↔C1↔C2↔Dの順で連結されているが,AからC2へのポインタの向きなどが異なる。

解説

B⁺木でリーフCが満杯になり新レコードで分割されると、CはC1とC2の2つのリーフになる。親の中間ノードAにはB・C1・C2・Dへのポインタが正しく張られ、リーフ層はB↔C1↔C2↔Dの順に双方向連結されて順次アクセスを保つ必要がある。この正しい結線を示すのがイで正解。B⁺木はDBインデックスの基礎で、分割後も整列と連結が保たれる点が要点。

選択肢ごとの解説

  • .結線は近いが親ポインタの向きなどに不整合があり、正しい分割後構造になっておらず誤り。
  • .AからB・C1・C2・Dへ正しくポインタが張られリーフもB↔C1↔C2↔Dに連結され正解。
  • .リーフがB↔C1↔D↔C2と並び順が崩れており、整列保持に反するため誤り。
  • .C2をC1の下に縦にぶら下げる形はB⁺木のリーフ構造として不正で誤り。

情報処理安全確保支援士試験 平成30年度春期 午前Ⅰ過去問一覧へ戻る・問8