MongoDB(モンゴデービー)とは、スキーマレスのドキュメント指向データベースです。「NoSQLの高パフォーマンス」と「RDBMSの有用性」がバランスよく組み込まれているデータベースです。NoSQL分野ではシェアトップを獲得しています。

オープンソースのデータベース/MongoDBとは

MongoDB(モンゴデービー)とは、スキーマレスのドキュメント指向データベースです。「NoSQLの高パフォーマンス」と「RDBMSの有用性」がバランスよく組み込まれているデータベースです。NoSQL分野ではシェアトップを獲得しています。

目次

「MongoDB」基本情報
■概要
→基本説明
→MongoDBの適合ケース
→経緯
→有償版
■主な特徴
→スキーマレスドキュメント指向データベース
→RDBライクな検索クエリ
→「トランザクション機能」と「リレーショナル機能」は未実装
→データ階層構造
→「階層③ドキュメント」のデータ構造
→ハイパフォーマンス
→高可用性
→水平スケールアウト
→ストレージエンジンの複数サポート
→各種言語用ネイティブドライバサポート
→マルチプラットフォーム
→管理ツール「Ops Manager」+「MongoDB Cloud Manager」
■同様製品
■オフィシャルサイト
→オフィシャルサイト
→ライセンス情報
→ダウンロード
→導入事例
■参考元サイト

「MongoDB」基本情報

概要

MongoDB(モンゴデービー)とは、スキーマレスのドキュメント指向データベースです。「NoSQLの高パフォーマンス」と「RDBMSの有用性」がバランスよく組み込まれているデータベースです。NoSQL分野ではシェアトップを獲得しています。

基本説明

MongoDBは、スケーラビリティと柔軟性を備えたNoSQLドキュメントデータベースです。「クエリ」と「インデックス」を使用でき、「高性能」「高可用性」「スケーラブル(水平スケールアウト)」「分散データベース」「大量データの高速処理」を実現します。

MongoDBは、データをフレキシブルなJSONライクなドキュメントデータとして保存します。データをドキュメントとしてそのまま格納でき、データの一部更新も可能です。

MongoDBの適合ケース

MongoDBは、次のようなケースに向いています。
・スキーマを事前定義できないケース
・高速処理が求められるケース

一方、次のようなケースには向いていません。
・トランザクション処理を多用するケース
・厳密なデータ整合性が求められるケース
・データ間のリレーションが多いケース

経緯

2009年2月、MongoDBの初期バージョンがリリースされました。

開発とサポートはMongoDB Inc.によって行われています。

NoSQLデータベースの中で頭一つ抜けたシェアを占めています。

有償版

MongoDB自体はオープンソースとして無料で利用できます。

MongoDB Inc.は、「有償版プロダクト」「サブスクリプション」「管理ツール」などを販売しており、開発元から有償サポートを受けることができます。

TOPに戻る

主な特徴

スキーマレスドキュメント指向データベース

RDBでは「テーブルに格納されているすべてのレコードが同じカラムを有する」に対して、MongoDBでは「ドキュメントごとに自由なフィールドを定義できる」点が特徴です。

データはスキーマレスなドキュメントとして格納され、任意のタイミングで任意のフィールドを追加できます。

RDBライクな検索クエリ

MongoDBは、RDBの有用な機能を取り込んでおり、代表的な機能として「RDBライクな検索クエリ」があります。

一般的なKVS(Kye-Value Store)では、基本的にKyeによる完全一致検索しか行なえません。

MongoDBでは、RDBでの「where」「like」「group by」「having」「order by」「範囲をもつクエリ」「正規表現検索」などと同様な複雑な検索が可能です。

「トランザクション機能」と「リレーショナル機能」は未実装

MongoDBは、RDBの有用な機能を取り込んでいますが、「トランザクション機能」と「リレーショナル機能」は実装していません。

これらの機能は、場合によって、コストが高く、パフォーマンスを著しく劣化させる原因となると判断されました。

トランザクション機能が必要な場合は、アプリケーション側で実装します。

データ階層構造

MongoDBは「①データベース」「②コレクション」「③ドキュメント」の3階層構造になっています。

[階層①データベース]
MongoDBの最上位要素は、RDBと同じように、「データベース」です。複数のデータベースを作成できます。
「①データベース」には複数の「②コレクション」が格納されます。

[階層②コレクション]
「②コレクション」は「RDBのテーブル」に該当し、複数のJSON形式構造体「③ドキュメント」を格納します。
RDBのテーブルのようにスキーマ定義はなく、どのような構造のJSON形式構造体でも格納できます。読み取り時にはJSON構造を把握する必要があるため、JSON形式構造体の定義管理は必要です。
このため、データベースに登録するデータの構成が変化しても、柔軟な対応が可能です。

[階層③ドキュメント]
「③ドキュメント」は「RDBのレコード」に該当し、JSON形式構造体です。内部的には、JSONバイナリ形式「BSON」で格納されます。
ORM(オブジェクトリレーショナルマッピング)を行うことなく、直接JSON挿入が可能で、JSONフィールド単位の更新が可能です。

「階層③ドキュメント」のデータ構造

MongoDBの「ドキュメント」は、JSON(JavaScript Object Notation)オブジェクトに似ている構造体で、「BSON(バイナリJSON)」というバイナリ表現でデータを格納します。

BSONエンコーディングは、一般的なJSON表現を拡張したもので、1つ以上のフィールドがあり、「フィールド」と「値」のペアで構成されるデータ構造です。

値には以下のような種類があります。
・基本データ型(int、long、date、浮動小数点、decimal128)
・バイナリデータ
・サブドキュメント(他のドキュメント)
・配列 など

MongoDBは、データを柔軟なJSONライクなドキュメントに保存するため、あらゆる構造のデータを永続化して結合することが容易になります。
開発者は、アプリケーション内データとドキュメント間のマッピングを簡単かつ迅速にモデル化でき、「スキーマガバナンスコントロール」「データアクセス」「複雑な集計」「豊富なインデックス機能」を活用して、データを簡単に操作できます。扱うデータ特性によっては、RDBMSよりも容易かつ迅速に開発を行えます。

[ドキュメントに関するその他の利点]
・多くのプログラミング言語のネイティブデータ型に対応
・動的スキーマであるため多態性をサポートできる
・結合の必要性を低減できる
・複雑な要件に対応しやすい
・ダウンタイムなしでスキーマの動的変更が可能
・複雑な階層構造を持たせることができる
・データの追加/更新/削除が可能
・高速クエリ
・フィールドを指定したクエリやインデックス生成が容易
・JSONライクであるため開発者の学習コストが低い

ハイパフォーマンス

[埋め込みデータモデル]
MongoDBは、埋め込みデータモデルのサポートにより、データベースシステムのI/Oアクティビティを減少させます。

[インデックス]
インデックスは、埋め込みドキュメントや配列からのキーを含めることができ、より高速なクエリをサポートします。

[ネイティブ圧縮をサポート]
一部のストレージエンジンは、ネイティブ圧縮をサポートし、物理ストレージのフットプリントを80%削減します。
ストレージ容量削減に加えて、ディスクから読み取るビット数が減るため、ストレージI/Oスケーラビリティが大幅に向上します。

[効率的なネットワーク転送]
MongoDBは、分散データベースとして、「クエリルーティング」や「ノード間レプリケーション」時の効率的なネットワーク転送が可能です。
「クライアントからデータベースへのワイヤプロトコルの圧縮」「クラスタ内トラフィックの圧縮」などの機能により、ネットワークトラフィックを80%程度まで圧縮できます。
パブリッククラウド環境などに接続する場合の接続コストを削減できます

高可用性

MongoDBは、組み込みレプリケーション機能「レプリカセット(Replica Sets)」を提供しています。

レプリカセットとフェールオーバーによる高可用性により、冗長性を提供し、データ可用性を高め、同じデータセットを維持します。

水平スケールアウト

MongoDBは、コア機能の一部として、「ネイティブシャーディングによる水平スケーラビリティ」を提供し、クラスタ全体にデータを分散することで、データベースを稼働させ続けることができるように設計されています。

シャーディングは自動的に行われるため、クラスタリングソフトウェアを展開する必要はありません。

取り扱うデータ量の増加によってサーバの能力が不足した場合、安価なIAサーバを追加して処理能力を向上させるスケールアウトを容易に行なえます。

ストレージエンジンの複数サポート

ストレージエンジンは、「メモリ」「ディスク」「データ格納」に関する管理を行うデータベース構成要素です。

MongoDBは、複数のストレージエンジンをサポートしています。
・最新デフォルトストレージエンジン「WiredTige」
・旧デフォルトストレージエンジン「MMAPv1」
・暗号化ストレージエンジン(※Enterprise版)
・インメモリストレージエンジン(※Enterprise版)

プラグイン可能なストレージエンジンAPIを提供しているため、ストレージエンジンの独自実装も可能です。

各種言語用ネイティブドライバサポート

MongoDBは、各種プログラミング言語やフレームワーク用のネイティブドライバを提供し、開発生産性をサポートしています。

[サポートされているドライバ]
・C
・C++
・C#
・Java
・JavaScript
・.NET
・Python
・Perl
・PHP
・Scala
・Ruby
・Node.js など

マルチプラットフォーム

MongoDBのバイナリは、Windows/Linux/MacOS/Solaris(x86)をサポートしています。

管理ツール「Ops Manager」+「MongoDB Cloud Manager」

MongoDBは、自動化/監視/バックアップなどを行うための管理ツールとして、「Ops Manager」と「MongoDB Cloud Manager」を提供しています。

TOPに戻る

同様製品

同様な機能を提供する製品として、次のようなものがあります。

オープンソース製品:「Apache HBase」「Redis」「RethinkDB」など。

TOPに戻る

オフィシャルサイト

オフィシャルサイト

→MongoDB(Move at the Speed of Your Data)

ライセンス情報

MongoDB自体のライセンスは「GNU Affero General Public License」です。言語ドライバは「Apache License」です。

詳細について、こちらを参照ください。
→MongoDB →MongoDB Licensing

ダウンロード

→MongoDB →MongoDB Download Center

導入事例

→MongoDB →The Customer Success Program at MongoDB

TOPに戻る

参考元サイト

TOPに戻る

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

MongoDB最新TOPICS

フォレスターによる調査レポート「サービスとしてのデータベース (2017 年第 2 四半期)」AWS社提供(2017年09月27日 09:15)

オープンソース活用研究所は、『フォレスターによる調査レポート「サービスとしてのデータベース (2017 年第 2 四半期)」AWS社提供』と題した資料を無料プレゼントフォームに掲載しています。 資料では、最有力 DBaaS ベンダー 13 社(Amazon Web Services (AWS)、CenturyLink、Citus Data、ClearDB、EnterpriseDB、Google、...

MongoDB最新CLOSEUPコラム

イベント情報

無料資料プレゼント

AI技術の方向性と企業の活用シナリオ

講演資料を見るには、 プライバシーポリシーに同意して、送付先メールアドレスをご入力しご請求ください。

またご入力いただきました情報は、当該資料の作成・提供企業とも共有させていただき、当社及び各社のサービス、製品、セミナー、イベントなどのご案内に使用させていただきます。

本資料を見るには次の画面でアンケートに回答していただく必要があります。



  • 20171130-netapp サイド
  • OSSNEWSに広告を掲載しませんか?

facebook

twitter