ホーム > データベーススペシャリスト試験 > 2010年
データベーススペシャリスト試験 2010年 午前2 問19
分散型データベースで結合演算を行うとき, 通信負荷を最も小さくすることができる手法はどれか。ここで, データベースは異なるコンピュータ上に格納されてかつ結合演算を行う表の行数が, 双方で大きく異ならないものとする。
ア:入れ子ループ法
イ:インデックスジョイン法
ウ:セミジョイン法(正解)
エ:マージジョイン法
解説
分散型データベースの結合演算で通信負荷を最小化する手法【午前2 解説】
要点まとめ
- 結論:分散型データベースの結合演算で通信負荷を最小化するにはセミジョイン法が最適です。
- 根拠:セミジョイン法は結合に必要なキー情報のみを先に送信し、不要なデータ転送を減らすため通信量が大幅に削減されます。
- 差がつくポイント:表の行数が双方で大きく異ならない場合でも、全データを送る方法よりセミジョイン法の方が通信負荷が低い点を理解することが重要です。
正解の理由
セミジョイン法は、結合に必要なキーの集合だけを片方のノードからもう片方に送信し、結合に不要な行を事前に除外します。これにより、結合対象のデータ転送量が大幅に減り、通信負荷を最小化できます。特に分散環境では通信コストが高いため、全データを送る入れ子ループ法やマージジョイン法よりも効率的です。
よくある誤解
通信負荷を減らすには単にインデックスを使えばよいと考えがちですが、インデックスジョイン法は通信量削減に直結しません。全データを送る方法よりも、必要なキーだけを送るセミジョイン法が通信負荷削減に効果的です。
解法ステップ
- 問題文で「通信負荷を最小化」とある点に注目する。
- 分散型データベースの結合演算で通信量が問題になることを理解する。
- 各手法の通信量の特徴を整理する。
- セミジョイン法はキー情報のみを送るため通信量が少ないことを確認する。
- 表の行数が大きく異ならない場合でも、セミジョイン法が通信負荷を抑える点を踏まえ正解を選ぶ。
選択肢別の誤答解説
- ア: 入れ子ループ法
全データを送る必要があり通信負荷が高い。分散環境には不向き。 - イ: インデックスジョイン法
インデックス利用は検索効率向上に寄与するが、通信量削減には直接つながらない。 - ウ: セミジョイン法
必要なキーだけを送るため通信負荷が最も小さい。正解。 - エ: マージジョイン法
両方の表をソートして結合するため、全データの送信が必要で通信負荷が高い。
補足コラム
セミジョイン法は分散データベースの結合処理で通信コストを抑える代表的な手法です。特にネットワーク帯域が制限される環境で効果を発揮します。なお、表の行数が大きく異なる場合は、片方の表を先にフィルタリングするなどの工夫も検討されます。
FAQ
Q: セミジョイン法はどのような場合に特に効果的ですか?
A: 結合対象の表が異なるノードに分散されており、通信コストが高い場合に効果的です。キー情報だけを先に送るため通信量を削減できます。
A: 結合対象の表が異なるノードに分散されており、通信コストが高い場合に効果的です。キー情報だけを先に送るため通信量を削減できます。
Q: インデックスジョイン法はなぜ通信負荷削減に繋がらないのですか?
A: インデックスジョイン法は検索効率を上げる手法であり、通信量自体を減らす仕組みではないためです。
A: インデックスジョイン法は検索効率を上げる手法であり、通信量自体を減らす仕組みではないためです。
関連キーワード: 分散データベース, セミジョイン法, 通信負荷, 結合演算, データベース最適化