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

午前U 問19

分散型データベースで結合演算を行うとき,通信負荷を最も小さくすることができる手法はどれか。ここで,データベースは異なるコンビュータ上に格納されて,かつ結合演算を行う表の行数が,双方で大きく異ならないものとする。
  • 入れ子ループ法
  • インデックスジョイン法
  • セミジョイン法
  • マージジョイン法
  • [この問題の出題歴]
  • データベース H16春期 問44
  • データベース H19春期 問44

分類

テクノロジ系 » データベース » トランザクション処理

正解

解説

セミジョイン法(準結合演算法)は、分散型演算に特有の転送コストを少なくするための結合手法です。サイト1上の表Rとサイト2上の表Sをセミジョイン法で結合する手順は以下のようになります。
  • サイト1は表Rのうち結合する属性の射影だけをサイト2に転送する
  • サイト2は転送されてきた結合属性の射影と表Sの結合演算を行う
  • サイト2は(2)の結合演算結果をサイト1に転送する
  • サイト1は転送されてきた結果と表Rの結合演算を行う
最初に結合属性の射影を転送するコストは余分に掛かりますが(2)の操作によって結合に必要な最小限のレコードが抽出されるため、どちらかの表の全てを他方のサイトに転送する場合と比較して通信負荷の低減が期待できます。
19.gif/image-size:561×668
  • 入れ子ループ法(ネストループ法)は結合演算の処理量を最適化するための手法で、通信量負荷の軽減とは無関係です。
    //入れ子ループ法による表Rと表Sの結合処理
    for (t in R)
      for (t' in S)
        if (t['A'] == t'['A'])
          結合(t, t');
      end
    end
  • 一般にインデックスジョイン法という結合方法は存在しません。(入れ子ループ法において結合属性にインデックスを張ることで最適化することを指しているのかも知れません)
  • 正しい。
  • マージジョイン法(ソートマージ法)は結合演算の処理量を最適化するための手法で、通信量負荷の軽減とは無関係です。
© 2016-2019 データベーススペシャリストドットコム All Rights Reserved.

Pagetop