SkillStack
テクノロジ系18 / 25問

データベーススペシャリスト試験 令和2年度 秋期 午前II 問18

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

選択肢を押すと答え合わせができます。

正解と解説を見る

【正解】イ

セミジョイン法は、分散した二つのサイトで表を結合するとき、表全体を転送せず、まず結合列の値だけを相手サイトへ送る方式です。相手サイトでは、受け取った結合列の値と一致する行だけを選び、その結果を元のサイトへ返します。元のサイトで最終的な結合を行うため、結合に関係しない大量の行や列をネットワーク上で送らずに済みます。分散データベースでは通信量が処理性能に大きく影響するので、この削減が主な利点です。したがって、正解はイです。

アの入れ子ループ法は誤りです。これは、一方の表の各行について、他方の表を順に調べ、結合条件を満たす行を探す結合アルゴリズムです。

ウのハッシュセミジョイン法は誤りです。これは、セミジョインを実行する際に、結合列からハッシュ値を求めて照合や転送量の削減を行う方式です。設問はハッシュ処理を示さず、結合列値を送る一般的なセミジョイン法を説明しています。

エのマージジョイン法は誤りです。これは、結合列で整列された二つの表を先頭から比較し、同じ値の行を結合するアルゴリズムです。

【ポイント】 分散DBMSの結合では、表の処理量だけでなく、サイト間の通信量が重要です。 「結合列だけを送る」「一致する行だけを返す」という記述が、セミジョイン法を見分ける手掛かりです。

出典:令和2年度 秋期 データベーススペシャリスト試験 午前II 問18
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。

この回の25問を、アプリで通しで解く

  • 本番と同じ問題数・制限時間で通し演習(模試モード)
  • 間違えた問題は自動で「復習すべき問題」に回る
  • 解説で分からない点はAIに質問できる
SkillStackで無料で始める