ハッシュインデックス
Hash Index
はっしゅいんでっくす
キーの値をハッシュ関数で変換した値をもとに格納位置を決める索引。キーの値が一致する行を、データ量によらずほぼ一定の時間で探せる。一方、ハッシュ値には元の値の大小関係が残らないので、範囲検索や並び替えには使えない。
Related
他の資格での定義
Past Exams
過去問での出題
過去問で 5 回出題(応用情報技術者試験 3・基本情報技術者試験 2)
出典: 独立行政法人情報処理推進機構(IPA)の過去問題。問題文は IPA のサイトの PDF で確認できます。「選択肢」は、問題文ではなく選択肢に出たものです。用語名で照合しているため、関係の薄い問題が含まれることがあります。
Related
関連キーワードの用語
表の行を、特定の列の値をもとに速く探し出すために作る補助的なデータ構造。インデックスとも呼び、B木、ハッシュ、ビットマップなどの方式がある。検索や結合は速くなるが、行の追加・更新・削除のたびに索引も更新するので更新処理が遅くなり、記憶領域も要るため、検索条件や結合条件によく使われ絞込みの効く列に絞って設定し、索引の数を増やしすぎないようにする。
問合せで必要な列をすべて含んでいる索引。検索条件の列だけでなく、選択リストや並び替えに使う列も索引に持たせることで、表本体を読まずに索引だけで結果を返せる(インデックスオンリースキャン)。表へのアクセスが省けて入出力が減るが、索引が大きくなり更新の負荷が増える。
キーの値が重複しないことを保証する索引。重複する値の行を追加・更新しようとするとエラーになる。主キー制約や一意性制約を定義すると、多くのDBMSは一意性の検査のためにユニークインデックスを自動で作成する。
表の行そのものを、索引のキーの順に物理的に並べて格納する索引。行の並びは1通りしかないので、1つの表に1つしか作れない。キーの範囲を指定した検索や並び替えでは連続したページを読めばよいので速いが、キーの途中への挿入や更新では行の移動が起きやすい。
キーを整列した状態で保持する平衡木(B木やB+木)で構成した索引で、根から葉までの深さがどのキーでも同じなので、データ量がnのとき探索・挿入・削除をO(log n)で行える。一致検索のほか範囲検索や並び替えにも使えるため、多くのDBMSで標準の索引方式になっている。値の種類が多い(カーディナリティが高い)列に向く。
列の値ごとに、各行がその値を持つかを1ビットで表したビット列(ビットマップ)を持つ索引。性別や地域のように値の種類が少ない(カーディナリティが低い)列に向き、複数の条件のAND・ORをビット演算で高速に求められる。更新のたびにビットマップを書き換える負荷が大きいので、更新の少ないデータウェアハウスで使われる。
