連載
» 2017年11月14日 05時00分 公開

「データベーススペシャリスト試験」戦略的学習のススメ(30):「分散データベース」を理解する (1/2)

あの“津崎さん”も保有する難関資格「データベーススペシャリスト」。本企画では、データベーススペシャリスト試験 午前/午後試験対策のための「基礎知識」を抜粋してお届けします。今回は「分散データベース」の基礎を解説します。

[具志堅融, 河科湊,著]

連載目次

ポケットスタディ データベーススペシャリスト [第2版]

書籍の中から有用な技術情報をピックアップして紹介する本シリーズ。今回は、秀和システム発行の書籍ポケットスタディ データベーススペシャリスト [第2版](2015年12月22日発行)』からの抜粋です。

ご注意:本稿は、著者及び出版社の許可を得て、そのまま転載したものです。このため用字用語の統一ルールなどは@ITのそれとは一致しません。あらかじめご了承ください。


※編集部注:前回記事「大量のデータから知見を得る「データマイニング」を理解する」はこちら

分散データベース

出題頻度 午前II:●●● 午後I:--- 午後II:---


 ●--:過去14年間での過去問出題数が1〜9回
 ●●-:過去14年間での過去問出題数が10〜19回
 ●●●:過去14年間での過去問出題数が20回以上


Key Word

分散データベース、透過性、分散問合せ、分散トランザクション制御


分散データベースとは

 分散データベースは、ネットワーク上に複数存在するデータベースを、あたかも一つのデータベースであるように利用する仕組みです。通信負荷の軽減、パフォーマンスの向上が図れるほか、一つのサイトが障害に遭っても全体の機能が失われないというメリットもあります。

分散データベースのイメージ

 以上の背景から、分散データベースには次の要件が求められます。

資源位置に対する透過性 利用者がデータベースの位置を意識せずに利用できる
移動に対する透過性 データの格納サイトが変わっても利用者に影響がない
分割に対する透過性 データが複数サイトに分割格納されていても利用者は意識する必要がない
重複に対する透過性 データが複数サイトに重複して格納されていても利用者は意識する必要がない
障害に対する透過性 あるサイトで障害が起きても利用者に影響がない

 午前試験では前ページの一覧より「○○透過性として正しいものを選べ」という問題が出題されます。

本試験過去問題による類題演習
□H19 午前問36 分散データベースの"分割に対する透過性"
□H23 午前II問20 分散データベースの“複製に対する透過性”
□H26 午前II問19 分散データベースの“移動に対する透過性”(Chance問題)

分散問合せ

 分散データベースでは、テーブルが複数のサイトにわたって配置されている場合があります。このため、異なるサイト間のテーブル同士を結合する場合に大量のデータをサイト間で通信する可能性があることから、この処理を最適化・性能向上するため次のような処理方法があります。

<1>入れ子ループ法

 下図のように、データを1行ずつサイトに送信し、受け取ったサイトで1行ずつ順次結合処理を行います。

入れ子ループ法によるテーブルA、Bの結合イメージ

<2>マージジョイン法(ソートマージン法)

 結合するテーブルについて、それぞれ結合キーでソートした後、テーブルを一方のサイトに転送し、転送されたサイトで結合処理を行います。

<3>セミジョイン法

 下図のように、結合キーの列のみを片方のサイトに送信し、この列と結合した結果の返信を受け、最後の結合を行います。

セミジョイン法によるテーブルA、Bの結合イメージ

<4>ハッシュセミジョイン法

 考え方はセミジョイン法と同じですが、更に通信量を削減するため、結合キーの列の値をハッシュ値で送信します。これを受け取ったサイトでも、結合先のテーブルの結合キーをハッシュ値に変換し、ハッシュ値同士で結合を行います。

Chance問題

演習29-1

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

ア 入れ子テーブル法      イ セミジョイン法

ウ ハッシュセミジョイン法   エ マージジョイン法

(H25春DB午前II問20)


解答 演習29-1 

 *囲み内をクリックすると解答を表示します(表示後ページをリロードすると、再び非表示になります)

Chance問題

演習29-2

 分散データベースシステムにおける問合せでは、サイト間にまたがる結合演算の最適化が重要である。この最適化の方法として、適切なものはどれか。

ア LRU法        イ セミジョイン法

ウ ソートマージ法   エ 楽観的方法

(H21春DB午前II問12)


解答 演習29-2 

 *囲み内をクリックすると解答を表示します(表示後ページをリロードすると、再び非表示になります)

 分散データベースシステムでは、データ通信量がパフォーマンスに大きな影響を与えます。サイト間にまたがる結合演算においては、データ通信量が最も少ないセミジョイン法が“最適”と言えます。尚、LRU法、楽観的方法は分散データベースの結合演算とは異なる概念です。

Chance問題

演習29-3

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

ア 入れ子ループ法   イ インデックスジョイン法

ウ セミジョイン法   エ マージジョイン法

(H22春DB午前II問19)


解答 演習29-3 

 *囲み内をクリックすると解答を表示します(表示後ページをリロードすると、再び非表示になります)

 入れ子ループ法はトランザクションを分散し、負荷を平準化しますが、通信量自体は減りません。インデックスジョイン法という方式は一般的には存在しません。

本試験過去問題による類題演習
□H27 午前II問17 タプル数Nの表の結合を入れ子ループ法で実行するときの計算数(Chance問題)
       1|2 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。