DBデータベーススペシャリスト試験 午前Ⅱ

平成22年度春期 データベーススペシャリスト 午前Ⅱ 問19

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

分散型データベースで結合演算を行うとき,通信負荷を最も小さくすることができる手法はどれか。ここで,データベースは異なるコンピュータ上に格納されて,かつ結合演算を行う表の行数が,双方で大きく異ならないものとする。

選択肢

  1. ア
    入れ子ループ法
  2. イ
    インデックスジョイン法
  3. ウ
    セミジョイン法
  4. エ
    マージジョイン法
解き方のヒントを見る

分散結合を考える視点

分散した場所にあるデータを扱う結合処理を比較するときは、個別の名称や印象だけで判断せず、処理の分担と全体への影響を同じ基準で整理して考えます。説明の対応関係を丁寧に読み取りましょう。

この問題で問われていること

この問題では、結合に関わる処理がどの段階で分担されるかという一点に注目し、データの移動、調整、結果の統合が比較の観点としてどう関係するかを読み取ります。

視点

方式を比べるときは、まず処理の役割を分解し、どこが判断や作業を担うのかを整理します。そのうえで、分散した環境全体への影響を同じ視点で見比べます。

確認ポイント

  • 処理の役割分担を、方式名の印象ではなく問題文の説明に沿って捉えているか
  • データの移動や調整が、処理全体のどの部分と関係するかを整理できているか
  • 各選択肢を同じ比較軸で読み、説明の対応関係を落ち着いて確認しているか
正解と解説を見る

正解

ウ

解説

セミジョイン法は、片方の表から結合に必要な属性や行の情報を先に送り、相手側で不要な行を絞り込んでから必要なデータを転送する。両表の行数が大きく異ならない場合でも、結合に不要なデータの送信を抑えられるため、通信負荷を小さくできる。

理由

セミジョイン法では、一方の表の結合列などを利用して他方の表をあらかじめ選別し、結合に関係しない行を転送対象から外す。その結果、分散配置された表を丸ごと交換するよりも、ネットワーク上を流れるデータ量を削減できる。したがって正答はウです。

比較

入れ子ループ法、インデックスジョイン法、マージジョイン法はいずれも結合処理の方法を表すが、設問の条件で通信負荷を最小化する仕組みを直接示すものではありません。分散環境では、結合前のデータ削減を行うセミジョイン法が通信量の観点で有利になる。

選択肢ア

これは不正解だよ。入れ子ループ法は、一方の表の行を順に取り出し、他方の表を探索して結合相手を探す方式である。探索順序を定める方法であって、分散配置された表について、結合前に不要な行を通信対象から減らす仕組みを直接備えているわけではない。

選択肢イ

これは不正解だよ。インデックスジョイン法は、結合条件に対応するインデックスを利用して相手行を効率よく検索する方式である。検索処理の高速化には役立つが、異なるコンピュータ間で送受信するデータ量を結合前に抑えることを主目的とした方式ではない。

選択肢ウ(正解)

これは正解だよ。セミジョイン法は、結合に必要な列や条件を利用して相手側の表から不要な行を先に絞り込み、その後に必要なデータを転送する。分散データベースで結合前の通信量を削減できるため、設問の通信負荷を最も小さくできる。

選択肢エ

これは不正解だよ。マージジョイン法は、結合キーの順序に合わせて二つの表を走査し、キーを比較しながら結合する方式である。表の走査や比較を効率化できる場合はあるが、分散環境で不要な行の転送を先に抑える方式ではないため、通信負荷の最小化という条件には合わない。

学習のポイント

分散データベースでは、結合アルゴリズムの計算量だけでなくサイト間通信量を評価する。

出典:独立行政法人 情報処理推進機構(IPA)平成22年度春期 データベーススペシャリスト試験 午前Ⅱ 問19(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針