入れ子ループ結合法 (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)$ です。
インデックス設計
インデックスの選定
関係データベースにおいて,タプル数
n
n
n
の表二つに対する結合操作を,入れ子ループ法によって実行する場合の計算量はどれか。
出典
2021r03a_db_am2_問15
ア
O
(
log
n
)
O(\log n)
O
(
lo
g
n
)
イ
O
(
n
)
O(n)
O
(
n
)
ウ
O
(
n
log
n
)
O(n \log n)
O
(
n
lo
g
n
)
エ
O
(
n
2
)
O(n^2)
O
(
n
2
)
【正解・解説】入れ子ループ結合法 (Nested Loop Join) の計算量|2021r03a_db_am2_問15 | IT資格ラボ