平成31年度 春期 データベーススペシャリスト試験 午前Ⅱ 問17
テクノロジ/データベース分散型データベースで結合演算を行うとき,通信負荷を最も小さくすることができる手法はどれか。ここで,データベースは異なるコンピュータ上に格納されて,かつ結合演算を行う表の行数が,双方で大きく異ならないものとする。
出典:平成31年度 春期 データベーススペシャリスト試験 午前Ⅱ 問17
- ア入れ子ループ法
- イインデックスジョイン法
- ウセミジョイン法
- エマージジョイン法
正解:ウ
解説
セミジョイン法は,結合に必要な列(結合キー)の値だけを一方のサイトから他方のサイトに送り,そちらで絞り込みを行った結果を元のサイトに送り返して最終的な結合を行う方式であり,表全体を転送するよりも通信データ量を削減できます。特に,双方の表の行数が大きく異ならない(一方が極端に小さいわけではない)場合,結合キーの値だけを送るセミジョイン法は,通信負荷を抑える効果的な手法となります。
選択肢ごとの解説
- ア誤り。入れ子ループ法は結合アルゴリズムの一種であり,分散環境でどちらのサイトからどのデータを転送するかという通信負荷の観点を扱う手法ではなく,通常は表全体を転送する必要があるため通信負荷は大きくなります。
- イ誤り。インデックスジョイン法は索引を利用して結合相手を高速に探す結合アルゴリズムであり,分散環境における通信量の最小化を目的とした転送方式ではありません。
- ウ正しい。セミジョイン法は,結合キーの値だけを他方のサイトに送って絞り込みを行い,その結果だけを転送して最終結合を行うため,表全体を転送する場合に比べて通信データ量を削減でき,通信負荷を最も小さくできます。
- エ誤り。マージジョイン法は,あらかじめソートされた表を順に走査しながら結合するアルゴリズムであり,分散環境での通信量削減を主目的とした手法ではありません。