平成27年度 春期 午前Ⅱ 問17
データ操作
計算量に関する問題
関係データベースにおいて,タプル数nの表二つに対する結合操作を,入れ子ループ法によって実行する場合の計算量はどれか。
- アO(2n)
- イO(log n)
- ウO(n^2)
- エO(n log n)
答えと解説を見る
✓ これが正解ウO(n^2)
解説
外側のn行ごとに内側のn行を調べるので、n×nでO(n^2)です。
入れ子ループ法は、一方の表の各行について、もう一方の表の全行を順に調べて、結合条件に合う組を探す方法です。外側の表にn行、内側の表にn行あれば、比較の回数は外側の1行につきn回、それがn行分なので、n×n=n^2回になります。計算量は、データ量が増えたときに処理量がどの程度の割合で増えるかを表すもので、この場合は行数が2倍になると比較の回数は4倍になります。したがってO(n^2)です。ループが二重になっていればnの2乗、と構造から読み取るのが確実な方法です。
ほかの選択肢はなぜ違うのか
- アO(2n):O(2n)は、二つの表をそれぞれ1回ずつ読むだけで済む場合の大きさで、定数倍を除けばnに比例する量です。入れ子ループ法では外側の1行ごとに内側を読み直すので、この大きさには収まりません。
- イO(log n):O(log n)は、整列済みのデータを半分ずつ絞り込んで1件を探すときのような、ごく緩やかに増える大きさです。表の全行どうしを組み合わせて調べる結合処理は、これよりはるかに大きくなります。
- エO(n log n):O(n log n)は、データを整列するときに現れる大きさです。入れ子ループ法は整列を使わず、外側の行ごとに内側の全行をたどるので、比較の回数はn^2の大きさになります。
この問題の用語
- 関係データベースデータを表の形で持ち、表どうしを結びつけて扱う、最も広く使われているデータベース。データの定義や操作にはSQLを使います。
出典:平成27年度 春期 データベーススペシャリスト試験 午前Ⅱ 問17
同じ用語が出る問題
- 令和7年度 秋期 午前Ⅱ 問11:参照制約に関する問題(関係データベース)
- 令和6年度 秋期 午前Ⅱ 問5:主キーに関する問題(関係データベース)
- 令和6年度 秋期 午前Ⅱ 問3:ノード分割後のB^+木構造(関係データベース)
- 令和3年度 秋期 午前Ⅱ 問15:入れ子ループ法に関する問題(関係データベース)
- 令和3年度 秋期 午前Ⅱ 問2:UMLに関する問題(関係データベース)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)