関係データベースの表において、検索速度を向上させるために、列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 |
|
答え エ
【解説】
それぞれの場合の検索にかかる時間の期待値を求める。
ここで、n個のデータから検索するのにかかる時間はnとして考える。
ア |
データ値 |
行の数 |
p |
600 |
q |
600 |
r |
0 |
s |
0 |
t |
0 |
u |
0 |
では、データが“p”である確率が0.5(=600÷1200)で、600個のデータから検索する時間は600なので
600×(600÷1200) + 600×(600÷1200) = 600 |
イ |
1000×(1000÷1200) + 200×(200÷1200) = 866.66… |
ウ |
20×(20÷1200) + 40×(40÷1200) + 80×(80÷1200) + 160×(160÷1200) + 300×(300÷1200) + 600×(600÷1200) = 403.33… |
エ |
200×(200÷1200) + 200×(200÷1200) + 200×(200÷1200) + 200×(200÷1200) + 200×(200÷1200) + 200×(200÷1200) = 200 |
【キーワード】
・インデックス
【キーワードの解説】
- インデックス(index)
コンピュータで大量のデータから特定のデータへのアクセスを早く行えるように、データをアクセスするときに使用するデータの項目について並び替えたり、アクセスのための索引用のテーブルを作成することです。
もっと、「インデックス」について調べてみよう。
戻る
一覧へ
次へ
|