トランザクション処理(全62問中1問目)

"売上"表への次の検索処理のうち,B+木インデックスよりもハッシュインデックスを設定した方が適切なものはどれか。ここで,インデックスを設定する列を<>内に示す。

 売上 (伝票番号,売上年月日,商品名,利用者ID,店舗番号,売上金額)

出典:令和5年秋期 問26

  • 売上金額が1万円以上の売上を検索する。<売上金額>
  • 売上年月日が今月の売上を検索する。<売上年月日>
  • 商品名が'DB'で始まる売上を検索する。<商品名>
  • 利用者IDが'1001'の売上を検索する。<利用者ID>
正解 問題へ
分野:テクノロジ系
中分類:データベース
小分類:トランザクション処理
解説
インデックスは、データベースに格納されているデータの検索を高速に行うための仕組みです。データベース内のテーブルや列に関する特定のキー値を格納し、その値を元にデータの高速な検索や並替えを可能にします。インデックスを使用することで、データベースのアクセス効率を高めることができますが、インデックスの利用に際しては追加のディスクスペースや処理が必要となるので、適切な設計管理が求められます。

インデックスにはいくつかの種類がありますが、本設問の"B+木インデックスと"ハッシュインデックス"は、それぞれ次のような特徴があります。
B+木インデックス
木構造を使ってデータを管理する方式で、RDBMSで最も一般的に使用されている。
節ごとにキー値の範囲とその子要素へのポインタを保持しているので、範囲検索をスムーズに行えるほか次のような性質がある。
  • 木構造の深さが一定になっているので、どのようなキー値であっても探索コストが大きく変わらない
  • 大量のデータに対する操作であっても、ある程度の速度が期待できる
  • インデックスノードはソートされた状態になっているので整列処理が高速に行える
ハッシュインデックス
ハッシュ関数を使用してキー値とレコードの格納位置を直接関連つける方式。
キー値をもとにレコードの格納位置を一意に特定できるので、B+木インデックスより高速なアクセスが可能。その反面、範囲検索やキー値を順番に読み込んで処理を行う用途には使用できない。
以上の特徴を踏まえると、ハッシュインデックスの向き・不向きは次のように判断できます。
  • 売上金額が1万円以上のレコードを取得するのは条件検索に当たるので、ハッシュインデックスには不向きです。
  • 売上年月日が今月のレコードを取得するのは範囲検索に当たるので、ハッシュインデックスには不向きです。
  • 商品名が'DB'のレコードを取得するのは条件検索に当たるので、ハッシュインデックスには不向きです。
  • 正しい。キー値に関連付けられた単一のレコードを検索するので、ハッシュインデックスを有効に活用できる処理です。

この問題の出題歴


Pagetop