入れ子ループ結合法 (Nested Loop Join) の計算量

正解の理由 入れ子ループ法(Nested Loop Join)は、2つの表を結合する最も基本的なアルゴリズムです。 外側の表(駆動表/外部表)の各タプルを1行ずつ読み込み、そのタプルごとに内側の表(内部表)の全タプルを走査して結合条件を比較・評価します。 外部表のタプル数: $n$ 件 各外部タプルに対する内部表の走査件数: $n$ 件 総比較回数: $n \times n = n^2$ 回 インデックスが存在しない場合、総処理回数はタプル数の2乗に比例するため、計算量は $O(n^2)$ となります。したがって、エが正解です。 各選択肢の解説 $O(\log n)$ は二分探索などの対数オーダーの計算量です。 $O(n)$ は1つの表の全走査などの線形オーダーの計算量です。 $O(n \log n)$ は内部表にB-Treeインデックスが存在する場合の入れ子ループ結合や、ソートマージ結合(ソートフェーズ含む)の計算量です。 正しい計算量です。インデックスを用いない単純な入れ子ループ結合の計算量は $O(n^2)$ です。

関係データベースにおいて,タプル数 nn の表二つに対する結合操作を,入れ子ループ法によって実行する場合の計算量はどれか。

出典2021r03a_db_am2_問15
ア
O(log⁡n)O(\log n)
イ
O(n)O(n)
ウ
O(nlog⁡n)O(n \log n)
エ
O(n2)O(n^2)