ホーム > データベーススペシャリスト試験 > 2021年
データベーススペシャリスト試験 2021年 午前2 問15
関係データベースにおいてタプル数nの表二つに対する結合操作を入れ子ループ法によって実行する場合の計算量はどれか。
ア:
イ:
ウ:
エ:(正解)
解説
関係データベースの入れ子ループ結合の計算量【午前2 解説】
要点まとめ
- 結論:入れ子ループ法による2つの表の結合は計算量がとなる。
- 根拠:外側のループで回、内側のループでも回の比較が必要なため、総計回の操作が発生する。
- 差がつくポイント:結合アルゴリズムの計算量を理解し、特に入れ子ループ法の非効率さを把握しているかが重要。
正解の理由
入れ子ループ法は、外側の表の各タプルに対して内側の表の全タプルを順に比較する単純な結合方法です。
表のタプル数がそれぞれの場合、外側ループで回、内側ループで回の比較が行われるため、計算量はとなります。
このため、選択肢の中でである「エ」が正解です。
表のタプル数がそれぞれの場合、外側ループで回、内側ループで回の比較が行われるため、計算量はとなります。
このため、選択肢の中でである「エ」が正解です。
よくある誤解
入れ子ループ法の計算量をやと誤認しやすいですが、単純な二重ループであるため二乗の計算量になります。
また、インデックスを利用した結合と混同してしまうことも多いです。
また、インデックスを利用した結合と混同してしまうことも多いです。
解法ステップ
- 入れ子ループ法の動作をイメージする(外側の表の各タプルに対し内側の表を全探索)。
- 外側の表のタプル数を、内側の表のタプル数もと仮定する。
- 外側ループで回、内側ループで回の比較が行われることを確認。
- 総比較回数はとなり、計算量はと判断。
- 選択肢の中からを選ぶ。
選択肢別の誤答解説
- ア:
→ 二重ループの計算量を誤解。は二分探索などの計算量であり、入れ子ループ法には該当しない。 - イ:
→ 片方の表だけを走査する場合の計算量。入れ子ループ法は両方の表を全探索するため、これより大きい。 - ウ:
→ ソートや効率的な結合アルゴリズムの計算量に近いが、単純な入れ子ループ法ではない。 - エ:
→ 入れ子ループ法の典型的な計算量で正解。
補足コラム
入れ子ループ法は最も単純な結合アルゴリズムですが、効率が悪いため大規模データには不向きです。
より効率的な結合方法としては、ソートマージ結合やハッシュ結合があり、これらは計算量をやに抑えられます。
また、インデックスを利用した結合も計算量削減に有効です。
より効率的な結合方法としては、ソートマージ結合やハッシュ結合があり、これらは計算量をやに抑えられます。
また、インデックスを利用した結合も計算量削減に有効です。
FAQ
Q: 入れ子ループ法はどんな場合に使われますか?
A: 小規模データやインデックスがない場合の単純な結合処理で使われますが、大規模データには非効率です。
A: 小規模データやインデックスがない場合の単純な結合処理で使われますが、大規模データには非効率です。
Q: ソートマージ結合と入れ子ループ法の違いは?
A: ソートマージ結合は両方の表をソートしてからマージするため、計算量は程度で、入れ子ループ法より高速です。
A: ソートマージ結合は両方の表をソートしてからマージするため、計算量は程度で、入れ子ループ法より高速です。
関連キーワード: 関係データベース, 結合アルゴリズム, 入れ子ループ法, 計算量, データベース最適化