ホーム > データベーススペシャリスト試験 > 2016年

データベーススペシャリスト試験 2016年 午前211


表の結合演算アルゴリズムのうち, 等結合だけに適用できるものはどれか。
入れ子ループ法
索引結合法
ソートマージ法
ハッシュ法(正解)

解説

表の結合演算アルゴリズムにおける「等結合」について

問題の概要

表(テーブル)を結合する際、特定の条件に基づく結合アルゴリズムがいくつか存在します。
問題文は、「等結合(イコール条件の結合)だけに適用できる結合アルゴリズムはどれか?」を問うています。

選択肢の概要

選択肢アルゴリズム特徴
入れ子ループ法任意の結合条件に対応可能。全組み合わせを比較するため時間がかかる。
索引結合法片方の表に索引(インデックス)があれば効率よく等結合が可能。索引がある場合に有効。
ソートマージ法両方の表を結合キーでソートし、マージしながら等結合を行う。等結合に使われることが多いが、等結合以外の条件では適用が難しい。
ハッシュ法結合キーの値でハッシュテーブルを作り、対応する行を高速に検索できる。等結合専用の手法。

等結合(Equi-join)とは?

  • 「等結合」とは、主に2つの表の指定した属性(カラム)が 等しい 場合にのみ行を結合するタイプの結合です。
  • 例えば、
    R.A=S.BR.A = S.B
    のように、ある属性の値が完全に一致する行だけを結合します。

各アルゴリズムの適用可能性

1. 入れ子ループ法(Nested Loop Join)

  • どんな結合条件でも可能。
  • 2つの表のすべての行を一つずつ比較するので、非等結合も可能です。
  • しかし、時間計算量が大きい(O(n×m)O(n \times m))ので効率は悪い。

2. 索引結合法(Index Join)

  • 片方の表が索引を持っている場合、等結合で効果的に利用できる。
  • 索引の検索性を利用して効率アップ。
  • 索引がなければ難しい。

3. ソートマージ法(Sort-Merge Join)

  • 両表を結合キーでソートし、ソート済みのデータをマージする形で等結合を行う。
  • 基本的には等結合向けだが、結合条件が等号以外の場合は適用困難。
  • 一度ソートする必要があり、コストがかかる場合もある。

4. ハッシュ法(Hash Join)

  • 結合キーの値を元にハッシュテーブルを作る。
  • 等結合専用の手法で、等しい値の行をすぐに見つけられる。
  • 大量データでも効率的に処理可能。
  • 非等結合(大小比較など)には適用できない。

なぜ「エ: ハッシュ法」が正解なのか?

  • ハッシュ結合法は「等結合のみ」に限定して適用できるアルゴリズムです。
  • なぜなら、キーの「値の等しいもの」をハッシュ関数で分類し、それをもとに高速に結合を行う設計だからです。
  • 例えば、結合条件が「R.A>S.BR.A > S.B」などの大小比較であれば、ハッシュ関数の利用は成立せず使えません。

まとめ

アルゴリズム名等結合専用?適用できる結合条件の例
入れ子ループいいえ等結合以外も可能
索引結合部分的に可能等結合が主だが索引依存
ソートマージ主に等結合向け等結合に最適
ハッシュ法はい(等結合専用)等結合のみ

結論

問題文の「等結合だけに適用できるもの」は「エ: ハッシュ法」となります。

参考文献

  • データベース実践入門(結合アルゴリズムの基礎・応用)
  • 「Database System Concepts」 by Silberschatz et al. (ハッシュ結合法の解説)

以上が、本問題における解説です。
← 前の問題へ次の問題へ →

©︎2025 情報処理技術者試験対策アプリ