'; html_body += '
'; html_body += '' + title + ''; html_body += '' + summary + ''; html_body += '
'; dom_floating.innerHTML = html_body; /**/ dom_floating.getElementsByClassName('floating_box')[0].style.bottom = f_bottom + '.px'; /**/ var thumb_elem = dom_floating.getElementsByClassName('thumb')[0]; thumb_elem.addEventListener('click', function(){ location.href = link_url; }); var content_elem = dom_floating.getElementsByClassName('content')[0]; content_elem.addEventListener('click', function(){ location.href = link_url; }); var close_btn_elem = dom_floating.getElementsByClassName('close_btn')[0]; close_btn_elem.addEventListener('click', function(){ dom_floating.classList.add('content_hidden'); }); /**/ dom_ad_float.appendChild(dom_floating); } /** * */ window.AI.unsetF = function(){ } }());

トータルの人件費を安くできる--デファクトの可能性もある「MongoDB」の勘所

渡部徹太郎 (野村総合研究所)

2015-03-16 19:38

 「MongoDB」はNoSQLの中でもドキュメント型NoSQLに分類されます。MongoDBは他のNoSQLと同様に、リレーショナルデータベース(RDBMS)と比較してビックデータや非構造データの処理が得意といった特徴がありますが、ここではそういったNoSQLの一般的な特徴の紹介は割愛し、他のNoSQLとは違うドキュメント型NoSQLならではの特徴、そしてMongoDBならではの特徴を紹介します。

ドキュメント型ならではの特徴

 ドキュメント型NoSQLではデータとして階層型データ構造であるJSONを扱います。図1にRDBMSのリレーショナルデータ構造、キーバリューストア(KVS)のキーバリューデータ構造、ドキュメント型NoSQLのJSONを比較します。

 最初にリレーショナルデータと比較すると、リレーショナルデータは美しく正規化されていますが、データの全貌を見たいときには結合(JOIN)する必要があり、SQLを操れるエンジニアでなければデータの全貌を知ることができません。また、JSONはデータの変化に柔軟であり、RDBMSとは違いデータ構造変更のオペレーションをすることなくデータ構造を更新できます。

 次にキーバリューデータに注目すると、1対多のデータ構造を表現しようとした時に、キーの値に連番を振らなくてはならず、表現が難しいことがわかります。これらのことからJSONの特徴は、エンジニアでなくてもデータの全貌がわかり、構造の変更が柔軟で、かつ1対多のような複雑なデータ構造も扱えるといえます。

図1
図1:データ構造の比較(筆者作成)
図2
図2:OpenWeatherMapでのデータ形式(筆者作成)

 JSONはデータ通信の主流なフォーマットになりつつあります。以前は、同じ階層型データ構造であるXMLが主流でしたが、よりシンプルに書けることから現在ではJSONが普及しており、TwitterやFacebookをはじめとした多くのウェブサービスで採用されています。

 例えば、OpenWeatherMapというウェブサービスでは、URLにアクセスするとJSON形式で天気のデータを取得できます(図2参照)。近年話題の“モノのインターネット(Internet of Things:IoT)”や“機械間通信(Machine to Machine:M2M)”でもセンサや機器などが出すデータの多くはJSON形式です。

 これまでを整理すると、ドキュメント型NoSQLならではの以下の4つの特徴があることになります。

  1. キーバリューよりも複雑なデータが簡単に扱える
  2. データ構造の変更が柔軟
  3. エンジニアでなくても全貌がわかる
  4. ウェブサービスやM2Mの標準的なデータ構造
図3:ウェブサイトやオンラインゲームでの構成
図3:ウェブサイトやオンラインゲームでの構成(筆者作成)

キーバリュー型よりも複雑なデータが簡単に扱える

 この特徴がメリットとなる代表的なケースは、ウェブアプリケーションやオンラインゲームです。例えば、オンラインゲームでは、プレイヤーは複数のアイテムを持っていますし、アイテムには複数の属性があるでしょう。このような複雑なデータ構造はキーバリューでの表現は困難ですが、JSONであれば難なく扱うことができます。

 RDBMSで扱えるかというと、データの量が少ない時は問題ないですが、サービスが流行して一気にユーザーが増えた時に、RDBMSでは現実的なコストで処理しきれない可能性があります。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ホワイトペーパー

新着

ランキング

  1. セキュリティ

    Pマーク改訂で何が変わり、何をすればいいのか?まずは改訂の概要と企業に求められる対応を理解しよう

  2. セキュリティ

    従来型のセキュリティでは太刀打ちできない「生成AIによるサイバー攻撃」撃退法のススメ

  3. 運用管理

    メールアラートは廃止すべき時が来た! IT運用担当者がゆとりを取り戻す5つの方法

  4. セキュリティ

    2025年はクラウドを標的にする攻撃が増加!?調査レポートに見る、今後警戒すべき攻撃トレンド

  5. セキュリティ

    Microsoft Copilot for Security--DXをまい進する三井物産が選んだ理由

ZDNET Japan クイックポール

所属する組織のデータ活用状況はどの段階にありますか?

NEWSLETTERS

エンタープライズコンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]