IPA過去問ドリル

令和2年度 10月 データベーススペシャリスト試験 午前Ⅱ 問18

テクノロジ/データベース

分散型DBMSにおいて,二つのデータベースサイトの表で結合を行う場合,どちらか一方の表をもう一方のデータベースサイトに送る必要がある。その際,表の結合に必要な列値だけを送り,結合に成功した結果を元のデータベースサイトに転送して,最終的な結合を行う方式はどれか。

出典:令和2年度 10月 データベーススペシャリスト試験 午前Ⅱ 問18

正解:イ

解説

セミジョイン法は,分散型DBMSにおける結合処理を効率化する手法であり,一方のサイトから結合に必要な列(結合キー)の値だけを他方のサイトへ送り,そちらで結合(絞り込み)を行った結果を元のサイトへ送り返して,最終的な結合を完了させる方式です。表全体を転送するよりも通信データ量を削減できます。

選択肢ごとの解説

  • 誤り。入れ子ループ法は,一方の表の各行に対してもう一方の表を全件走査して結合条件を確認する結合アルゴリズムであり,分散環境における通信量削減を目的とした手法ではありません。
  • 正しい。セミジョイン法は,結合に必要な列値だけを他方のサイトに送って絞り込みを行い,その結果を元のサイトに転送して最終的な結合を行うことで,サイト間の通信データ量を削減する方式です。
  • 誤り。ハッシュセミジョイン法は絞り込みにハッシュ関数を利用する方式ですが,設問の記述は列値だけを送って結合するという一般的なセミジョイン法の説明であり,ハッシュを用いる旨の特有の記述はありません。
  • 誤り。マージジョイン法は,あらかじめソートされた二つの表を先頭から順に走査しながら結合するアルゴリズムであり,分散環境で列値だけを転送するセミジョイン法とは異なります。
データベーススペシャリストの過去問を演習モードで解く