ソートマージ結合法はどの手順で見分けるか
基本情報技術者試験 平成29年度春期 午前 問27 / データベース › データ操作
過去問にチャレンジ
RDBMSが二つの表を結合する方法のうち,ソートマージ結合法に関する記述はどれか。
- ア
一方の表の結合する列がインデックスに含まれている場合,もう一方の表の結合する列とインデックスの値で結合する。
- イ
一方の表の結合する列の値でハッシュ表を作成し,もう一方の表の結合する列と結合する。
- ウ
一方の表の結合する列の値を順に読み出し,もう一方の表の結合する列と結合する。
- エ
結合する列の値で並べ替えたそれぞれの表の行を,先頭から順に結合する。
会話形式の解説
講師結合方式を見分けるには、行を照合する前に何を準備するかに注目します。ソートマージ結合法では何をしますか。
受験者ソートという名前から、結合する列の値で表を並べ替えるのだと思います。片方の表だけでよいのでしょうか。
講師両方の表をそれぞれ並べ替えます。その後、両表の先頭から値を照合し、一致する行を結合します。
受験者では、両表を並べ替えて先頭から結合する記述が正解ですね。インデックスを使う記述も似て見えます。
講師インデックスを使う記述は、対応する行を探す方法です。両表を並べ替えてから順に照合する手順とは異なります。
受験者一方の表からハッシュ表を作る記述は、並べ替えの代わりにハッシュ表を準備するのでしょうか。
講師はい。その記述はハッシュ結合法を示しています。ソートマージ結合法の準備は、結合列の値による両表の並べ替えです。
受験者一方の表の値を順に読み出す記述には、両表を並べ替える手順がありませんね。
講師そのとおりです。それは入れ子ループ法の説明で、整列した両表を先頭から突き合わせる処理は示されていません。
受験者準備と照合方法を一緒に確かめれば、順に読むという言葉だけで選ばずに済みます。
講師その見方で整理できます。インデックスの利用、ハッシュ表の作成、両表の並べ替えは、それぞれ区別してください。
まとめ
ソートマージ結合法では、二つの表をそれぞれ結合列の値で並べ替えます。その後、両表の先頭から値を照合し、一致する行を結合します。したがって、両表の並べ替えと先頭からの照合を述べた選択肢が正解です。インデックスの利用、ハッシュ表の作成、一方の表の値を順に読む方法とは区別します。
解答・解説
正解はエです
この問題のテーマ
RDBMSの結合方式を、表を結合する前の準備と行の照合方法から見分ける問題です。
解き方の考え方
ソートマージ結合法では、二つの表をそれぞれ結合列の値で並べ替えます。その後、両表の先頭から値を照合し、一致する行を結合します。この二段階を述べている選択肢を選びます。
選択肢ごとの解説
- ×ア 一方の表の結合する列がインデックスに含まれている場合,もう一方の表の結合する列とインデックスの値で結合する。インデックスを利用して対応する行を探す説明です。両方の表を並べ替えてから順に照合する手順には当たりません。
- ×イ 一方の表の結合する列の値でハッシュ表を作成し,もう一方の表の結合する列と結合する。一方の表からハッシュ表を作って照合するのは、ハッシュ結合法です。結合列による並べ替えを使う方式ではありません。
- ×ウ 一方の表の結合する列の値を順に読み出し,もう一方の表の結合する列と結合する。一方の表の値を順に読み、もう一方の表と照合するのは入れ子ループ法の説明です。両表を整列して先頭から突き合わせる処理は示されていません。
- ○エ 結合する列の値で並べ替えたそれぞれの表の行を,先頭から順に結合する。結合列の値で両表を並べ替え、先頭から行を照合しています。これはソートマージ結合法の手順に一致するため、正解です。
POINT
- 結合方式は、照合前に何を準備するかで見分けられます。
- インデックスの利用と、両表の整列は別の手順です。
- ハッシュ表を作る記述はハッシュ結合法を示します。
