インデックスとは?
インデックスとは、列の値と行の格納位置の対応を別構造で保持し、全行走査を避けて目的行へ到達できるようにする補助データ。検索は速くなるが更新のたびに索引側も保守が要るため、参照と更新の比率を見て設計する判断が午前Iで問われる。
高度試験・午前I(全区分共通)の過去問では2回出題されています(2016年度〜2018年度)。
いんでっくす
インデックスの意味
列の値と行の格納位置の対応を別構造で保持し、全行走査を避けて目的行へ到達できるようにする補助データ。検索は速くなるが更新のたびに索引側も保守が要るため、参照と更新の比率を見て設計する判断が午前Iで問われる。
インデックスの具体例
100万件の受注表で受注日に索引を張ると、特定日の数十件を取り出す処理は全件読みから索引経由に変わり劇的に速くなる。一方、性別のように値の種類が2つしかない列に張っても大半の行が該当するので効果は薄い。
インデックスは試験でどう引っ掛けられる?
索引は多いほどよいわけではなく、挿入・更新・削除の負荷と記憶域を増やす。また列に関数や演算を適用した条件、前方一致でない曖昧検索では索引が使われないことが多い点も狙われる。
インデックスと関連する用語
インデックスが出た過去問
B+木インデックスが定義されている候補キーを利用して、1件のデータを検索するとき、データ総件数Xに対するB+木インデックスを格納するノードへのアクセス回数のオー…
正解:logX
要点:B+木の検索は木の高さ、すなわちO(log X)
B+木は全ての葉が同じ深さになる平衡木で、1ノードに多数のキーを収めて木の高さを抑える構造である。1件の検索は根から葉までを1回ずつたどるのでアクセス回数は木の高さに等しく、データ総件数Xに対してO(log X)のオーダとなる。
出典:平成28年度 秋期 高度共通_午前I試験 am1 問9(IPA)関係データベースのテーブルにレコードを1件追加したところ、インデックスとして使う、図のB+木のリーフノードCがノードC1とC2に分割された。ノード分割後のB+木…
正解:中間ノードAから、B、C1、C2、Dの4つのリーフノードへポインタが伸びる。リーフノード同士はB↔C1↔C2↔Dの順に双方向リンクでつながる。
要点:B+木の分割後もリーフは同じ深さでキー順にリンクされる
B+木ではすべてのリーフノードが同じ深さに置かれ、リーフは親ノードから直接ポインタで指される。リーフCが分割されてC1とC2になった場合、両方とも親である中間ノードAの直下に並び、キー値の順序どおりに B→C1→C2→D とリーフ同士が順次リンクされる。中間ノードAには空きがあるので木の高さは変わらない。
出典:平成30年度 春期 高度共通_午前I試験 am1 問8(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。