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

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

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

問題

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

選択肢

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

結合方式を見分ける整理視点

方式名や用語の印象だけで判断せず、データの所在、処理を担う場所、通信の発生条件、結果をまとめる順序に注目して、各選択肢の説明が同じ観点で整合しているかを確認します。

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

この問題では、結合処理そのものの細かな手順を暗記するより、処理の分担とデータ移動の関係を読み取り、説明されている方式の前提と処理の流れが矛盾していないかを一つの軸で確かめます。

視点

分散したデータを扱う方式を比較するときは、まず処理の主体とデータの配置を対応づけ、その後に通信や中間結果の扱いを確認します。用語の連想ではなく、説明全体の因果関係を追うことが大切です。

確認ポイント

  • 処理を主に担当する場所と、データが置かれる場所の関係を確認する
  • ノード間の通信がどの段階で必要になる説明かを読み取る
  • 中間結果や最終結果がどこで整理される想定かを確かめる
正解と解説を見る

正解

ウ

解説

セミジョイン法は、結合に必要な情報を先に相手サイトへ送り、相手側で不要な行を除いてから必要なデータだけを返送させることで、サイト間の通信量を削減できます。

理由

セミジョイン法では、一方の表の結合属性に関する情報を利用して、もう一方のサイトから結合に不要な行をあらかじめ除外します。その結果、最終的な結合に必要なデータだけを転送でき、通信負荷を小さくできます。

比較

入れ子ループ法、インデックスジョイン法、マージジョイン法は、結合処理の進め方や探索方法を表す手法です。設問のように異なるコンピュータ上の表を結合し、通信負荷を最小化する観点では、転送データを削減できるセミジョイン法が適しています。

選択肢ア

これは不正解だよ。入れ子ループ法は、一方の表の各行を基準にして、もう一方の表から一致する行を順に探す結合方法です。分散環境では探索対象のデータを繰り返し通信する可能性があり、設問が重視するサイト間の通信負荷を最小にする方法とはいえません。

選択肢イ

これは不正解だよ。インデックスジョイン法は、結合条件に利用できる索引を使って相手表の一致行を探す方法です。検索を効率化できる場合はありますが、分散配置された表の間で転送するデータ量を直接削減する手法ではないため、この設問の条件には適しません。

選択肢ウ(正解)

これは正解だよ。セミジョイン法は、結合に必要な情報を相手サイトへ先に送り、相手側で結合に不要な行を除外してから必要なデータを返送します。分散配置された表の間で送受信するデータ量を減らせるため、通信負荷を最も小さくできます。

選択肢エ

これは不正解だよ。マージジョイン法は、結合キーの順序に合わせて二つの表を走査し、同じキーの行を結合する方法です。表の走査や結合を効率化できても、分散環境で事前に不要な行の転送を抑えることを目的とした手法ではありません。

学習のポイント

分散データベースでは、結合アルゴリズムの計算量だけでなく、サイト間通信量を基準に手法を比較することが重要です。

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

関連する過去問一覧

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