平成21年度 春期 午前Ⅱ 問10
トランザクション処理
インデックスに関する問題
関係データベースの表において,検索速度を向上させるために,列 Z にインデックスを付与する。ア~エは,列 Z の値が等しい行の数を示したものである。インデックスを付与することによって,1 行当たりの平均検索速度が最も向上するものはどれか。ここで,各行は等頻度で検索されるものとする。
選択肢は原典ではそれぞれ データ値・行の数 の表。
- アp:600 / q:600 / r:0 / s:0 / t:0 / u:0
- イp:1000 / q:200 / r:0 / s:0 / t:0 / u:0
- ウp:20 / q:40 / r:80 / s:160 / t:300 / u:600
- エp:200 / q:200 / r:200 / s:200 / t:200 / u:200
答えと解説を見る
✓ これが正解エp:200 / q:200 / r:200 / s:200 / t:200 / u:200
解説
値が均等に分かれているほど、1 回の検索で読む行が少なくなります。
どの分布も合計は 1,200 行です。各行が等頻度で検索されるので、ある行の値を指定して探したときに該当する行数の平均は、各値の行数を 2 乗して合計し、総行数で割った値になります。均等な分布では 6×200²÷1,200=200 行です。600 行ずつの分布は 600²×2÷1,200=600 行、1,000 行と 200 行の分布は (1,000²+200²)÷1,200≒867 行、20 から 600 まで偏った分布は 484,000÷1,200≒403 行です。最も少ないのは均等な分布で、インデックスで絞り込める効果が最も大きくなります。同じ値の行が少なく、偏りのない列ほどインデックスの効果が高いと覚えておくと判断できます。
ほかの選択肢はなぜ違うのか
- アp:600 / q:600 / r:0 …:p と q が 600 行ずつで、どちらの値を指定しても 600 行が該当します。インデックスで全 1,200 行の半分までしか絞り込めず、平均して 600 行を読む計算になるので、効果は小さくなります。
- イp:1000 / q:200 / r:0…:p に 1,000 行が集まっているので、多くの検索で 1,000 行が該当します。行数の 2 乗の合計 1,040,000 を総行数で割ると約 867 行となり、四つの分布の中で最も絞り込み効果が小さくなります。
- ウp:20 / q:40 / r:80 /…:値の種類は六つありますが、u に 600 行、t に 300 行と偏っています。行数の 2 乗の合計 484,000 を 1,200 で割ると約 403 行で、200 行ずつの均等な分布より読み出す行が多くなります。
この問題の用語
- 関係データベースデータを表の形で持ち、表どうしを結びつけて扱う、最も広く使われているデータベース。データの定義や操作にはSQLを使います。
出典:平成21年度 春期 データベーススペシャリスト試験 午前Ⅱ 問10
同じ用語が出る問題
- 令和7年度 秋期 午前Ⅱ 問11:参照制約に関する問題(関係データベース)
- 令和6年度 秋期 午前Ⅱ 問5:主キーに関する問題(関係データベース)
- 令和6年度 秋期 午前Ⅱ 問3:ノード分割後のB^+木構造(関係データベース)
- 令和3年度 秋期 午前Ⅱ 問15:入れ子ループ法に関する問題(関係データベース)
- 令和3年度 秋期 午前Ⅱ 問2:UMLに関する問題(関係データベース)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)