マナビング基本情報技術者

ソートマージ結合法はどの手順で見分けるか

基本情報技術者試験 平成29年度春期 午前 問27 / データベース › データ操作

過去問にチャレンジ

平成29年度春期 午前 問27

RDBMSが二つの表を結合する方法のうち,ソートマージ結合法に関する記述はどれか。

  1. ア

    一方の表の結合する列がインデックスに含まれている場合,もう一方の表の結合する列とインデックスの値で結合する。

  2. イ

    一方の表の結合する列の値でハッシュ表を作成し,もう一方の表の結合する列と結合する。

  3. ウ

    一方の表の結合する列の値を順に読み出し,もう一方の表の結合する列と結合する。

  4. エ

    結合する列の値で並べ替えたそれぞれの表の行を,先頭から順に結合する。

会話形式の解説

講師講師
結合方式を見分けるには、行を照合する前に何を準備するかに注目します。ソートマージ結合法では何をしますか。
受験者受験者
ソートという名前から、結合する列の値で表を並べ替えるのだと思います。片方の表だけでよいのでしょうか。
講師講師
両方の表をそれぞれ並べ替えます。その後、両表の先頭から値を照合し、一致する行を結合します。
受験者受験者
では、両表を並べ替えて先頭から結合する記述が正解ですね。インデックスを使う記述も似て見えます。
講師講師
インデックスを使う記述は、対応する行を探す方法です。両表を並べ替えてから順に照合する手順とは異なります。
受験者受験者
一方の表からハッシュ表を作る記述は、並べ替えの代わりにハッシュ表を準備するのでしょうか。
講師講師
はい。その記述はハッシュ結合法を示しています。ソートマージ結合法の準備は、結合列の値による両表の並べ替えです。
受験者受験者
一方の表の値を順に読み出す記述には、両表を並べ替える手順がありませんね。
講師講師
そのとおりです。それは入れ子ループ法の説明で、整列した両表を先頭から突き合わせる処理は示されていません。
受験者受験者
準備と照合方法を一緒に確かめれば、順に読むという言葉だけで選ばずに済みます。
講師講師
その見方で整理できます。インデックスの利用、ハッシュ表の作成、両表の並べ替えは、それぞれ区別してください。

まとめ

ソートマージ結合法では、二つの表をそれぞれ結合列の値で並べ替えます。その後、両表の先頭から値を照合し、一致する行を結合します。したがって、両表の並べ替えと先頭からの照合を述べた選択肢が正解です。インデックスの利用、ハッシュ表の作成、一方の表の値を順に読む方法とは区別します。

解答・解説

正解はエです

この問題のテーマ

RDBMSの結合方式を、表を結合する前の準備と行の照合方法から見分ける問題です。

解き方の考え方

ソートマージ結合法では、二つの表をそれぞれ結合列の値で並べ替えます。その後、両表の先頭から値を照合し、一致する行を結合します。この二段階を述べている選択肢を選びます。

選択肢ごとの解説

  1. ×ア  一方の表の結合する列がインデックスに含まれている場合,もう一方の表の結合する列とインデックスの値で結合する。
    インデックスを利用して対応する行を探す説明です。両方の表を並べ替えてから順に照合する手順には当たりません。
  2. ×イ  一方の表の結合する列の値でハッシュ表を作成し,もう一方の表の結合する列と結合する。
    一方の表からハッシュ表を作って照合するのは、ハッシュ結合法です。結合列による並べ替えを使う方式ではありません。
  3. ×ウ  一方の表の結合する列の値を順に読み出し,もう一方の表の結合する列と結合する。
    一方の表の値を順に読み、もう一方の表と照合するのは入れ子ループ法の説明です。両表を整列して先頭から突き合わせる処理は示されていません。
  4. ○エ  結合する列の値で並べ替えたそれぞれの表の行を,先頭から順に結合する。
    結合列の値で両表を並べ替え、先頭から行を照合しています。これはソートマージ結合法の手順に一致するため、正解です。

POINT

  • 結合方式は、照合前に何を準備するかで見分けられます。
  • インデックスの利用と、両表の整列は別の手順です。
  • ハッシュ表を作る記述はハッシュ結合法を示します。

※出典:平成29年度春期 基本情報技術者試験 午前 問27