MongoDBはNoSQLなデータベース管理システム(DBMS)です。2007年に登場した比較的新しいDBMSですが、2020年には1億以上ものダウンロード実績を達成しております。世界でも人気第4位を誇るMongoDBについてみていきましょう。この記事ではMongoDBについて理解をするために歴史や特徴、基本的なコマンドなどを簡単に解説していきます。
MongoDBとはデータベース管理システム(DBMS)の中でもNoSQLという種類に分類されるドキュメント指向データベースです。MongoDBは構築、スケーリング、反復を支援するように設計された柔軟なデータプラットフォームで、イノベーションを加速させます。クロスプラットフォーム対応のオープンソースデータベースとして人気を集めており、データベースランキングにおいて「Oracle」「MySQL」「SQL Server」に続き、第4位を実現しております。特徴として『高性能で高可用性』『開発の容易性』『スケーラビリティ』などが挙げられます。
NoSQLとはデータベース言語であるSQLを使用せずとも利用することのできるDBMS(データベース管理システム)を指す言葉です。NoSQLは「Not Only SQL」の略称だと言われておりリレーショナル型データベース以外の総称です。よってNoSQLというDBMSの種類があるわけではありません。別名「非リレーショナル型データベース」と呼ばれています。
NoSQLの歴史や特徴について解説された記事はこちら>>
SQLとはリレーショナルデータベースの管理・操作をするため最も普及されているデータベース言語です。主な用途としてデータベース管理システム(DBMS)へデータの検索、追加、削除、更新などの指示のために使用されます。1970年代にIBM社の開発によって誕生した『Structured English Query Language(SEQUEL)』が元になっております。
そのことから広く知れ渡っている呼び名は『シーケル』です。またSQLは国際標準化機構(ISO)で規格化をされております。そのためMySQL、Oracle、PostgreSQLなど様々なデータベース管理システムにおいてもSQLにて対応することが可能です。またSQLの代表的な拡張プログラム言語としてPL/SQLやT-SQLなどが挙げられます。
SQLの歴史や特徴について解説された記事はこちら>>
データベースとは様々な情報を整理し効率よく使用するために格納するデータの集合体のことです。データベースには様々なデータを効率よく管理するための機能が用意されております。また大量のデータを高速に処理することも可能です。用途は様々で顧客管理や在庫管理などの複数のデータを取り扱うことが必要とされる業務に使用されます。主なデータベースの種類としてOracleDBやMySQLなどが挙げられます。
データベースの種類や特徴を解説している記事はこちら>>
DBMSとはデータベースを構築するためにデータベースの運用、管理を実行するためのシステムです。
代表的な製品としてOracle Database、SQL Server、MySQLなどが挙げられます。
DBMSの歴史や種類を解説している記事はこちら>>
MongoDBの読み方は『モンゴデービー』です。MongoDBの名前の由来は英語で「ばかでかい」を意味する「humongous」から来ていると言われております。
MongoDBはMongoDB Inc.(当時:10gen)によって開発され2009年2月に誕生させました。当時の10genはMongoDBの開発に至るまでにPaaSを実現するためWebアプリケーションをホスティングするためのスケーラビリティーなソフトウェアを開発していましたが断念。
しかしデータベースのスケーラビリティ性と開発のしやすさに注目をしたことからMongoDBの開発に専念する形になりました。誕生から度重なるバージョンアップを重ねて2018年には4,000万回ダウンロードを実現し、2年後の2020年には1億回以上の快挙を達成します。現在の最新バージョンは4.4.3となっております。簡単に以下の年表にまとめておりますのでご覧ください。
年代 | 内容 |
2009年2月 | 『MongoDB 初版』リリース |
2009年8月 | 『MongoDB 1.0』リリース |
2010年8月 | 『MongoDB 1.6』リリース 新機能「シャーディング」「レプリカセット」 |
2011年3月 | 『MongoDB 1.8』リリース Sparse, Cavered インデックス |
2011年9月 | 『MongoDB 2.0』リリース 並列処理性の改善、レプリカセット・シャーディングの改善 |
2015年3月 | 『MongoDB 3.0』リリース プラガブルStrageエンジン |
2018年 | 『MongoDB 4.0』リリース 4,000万回ダウンロード達成 |
2020年 | 1億回ダウンロード達成 |
MongoDBの特徴を見ていきましょう。
MongoDBは高性能で高可用性という特徴があります。NoSQLでありながらインデックスをサポートしており、組み込みデータモデルを利用していることでI/O処理の削減を実現できることから高性能と評価されております。またMongoDBのプロジェクトチームは高可用性を備えた、堅牢なシステムを構築した経験をもとに開発をMongoDBをしました。多くの分散化されたノードにわたって水平に拡大していることも可用性が高い特徴です。
MongoDBは開発の容易性という特徴があります。アプリケーションは自身の構造やデータ型に合った自然な形でデータを格納することができるため、扱うデータの特性によって容易に開発を行うことができます。
MongoDBはスケーラビリティという特徴があります。データを複数のサーバーに分散させる仕組みや自動フェイルオーバー機能により負荷分散、冗長性、費用対効果の向上を実現しております。
MongoDBはドキュメント指向型データベースという特徴があります。1ドキュメントに対し1データを書き込めるという、自由度の高いドキュメント形式でデータを格納するデータベースです。
MongoDBの基本的なコマンドを以下の表にまとめておりますのでご覧ください。
カテゴリ | 内容 | コマンド |
起動 | データベースの起動 | sudo service mongodb start |
停止 | データベースの停止 | sudo service mongodb stop |
データベース | データベース一覧の表示 | show dbs |
データベースの作成 | $ mongo dbname use dbname | |
データベースの削除 | db.dropDatabase(); | |
コレクション | コレクションの一覧表示 | show collections |
コレクションの作成 | db.createCollection(‘COL’); | |
コレクションの削除 | db.COL.drop(); | |
インデックス | インデックスの一覧表示 | db.COL.getIndexes(); |
インデックスの追加 | db.COL.ensureIndex( { name : 1 } ); | |
インデックスの削除 | db.COL.dropIndex( { name : 1 } ); |
MongoDBを理解するために歴史や特徴、基本的なコマンドについて簡単に解説させて頂きました。MongoDBを一言で表すと『1億以上ものダウンロード実績を誇る、ドキュメント指向型データベースシステム』です。MongoDBの特徴として「高性能で高可用性」「開発の容易性」「スケーラビリティ」などが挙げられます。MongoDBについてこの記事で記載されている最低限の内容は理解しておくようにしましょう。