【プログラミング教育ナビ】は、プログラミング初心者が自分に合った勉強法や教室を見つけられたり、プログラミングに特化した求人が検索できたり、SaaSの比較ができるサイトです。人気講座のある入門スクールや独学できる学習サイトを、口コミ・評判で比較してランキング形式でご紹介しています。言語から探す場所から探す条件から探すrsstwitterfacebook案件獲得できなかったら全額返金!未経験からプロのエンジニアスキルを身につけ、フリーエンジニアとして稼げるまで徹底サポート。まとめはじめにリレーショナルデータベースが使いにくいと思ったことはありませんか?リレーショナルデータベース(以下RDB)は、長く使われ続けてきた実績のあるデータベースで、どの分野でも広く使われています。すべてのデータモデルがRDBに適しているとは限りません。場合によっては、別のデータベースを使用したほうがよいこともあります。そのもう一つの選択肢が「NoSQL」です。人気のあるNoSQLデータベースである「MongoDB」についてお伝えしていきます。APIが使われるようになりました。APIでよく使われるデータフォーマットに「JSON」がありますが、階層構造を持っている場合が多く、RDBに格納するにはあまり適していません。スキーマ定義も悩みのタネです。ビッグデータ(センサーなどから収集したテラバイトを超えるデータ)分析もトレンドとなっており、大規模なスケールが難しいRDBに代わるデータベースが求められています。スケールはRDBでは困難です。このような背景から、スキーマに縛られない、スケーラブルなデータベースとしてNoSQLが考案されました。NoSQLデータベースの特徴NoSQLは単一のデータベースを指すのではなく、RDB以外のデータベースの総称です。NoSQLデータベースは、3つの共通した特徴を持っています。一つ目は「スキーマレス」であることです。NoSQLはRDBとは違い、事前にスキーマを定義することなくデータを格納できます。スキーマがないというわけではありませんが、スキーマが固定されていないのです。これはJSONなどの半構造化データを格納するのに適しています。二つ目は「スケールしやすい」ことです。RDBは水平スケールが苦手ですが、NoSQLでは数百台・数千台に渡る水平スケールが可能です。大量のデータを並列処理できるため、ビッグデータ分析に最適です。障害耐性も高く、一部のデータベースが故障しても処理を継続できます。三つ目は「トランザクションを持たない」ことです。RDBはトランザクションを使ってデータの整合性を保ちますが、NoSQLには基本的にトランザクションがありません。これはNoSQLの特性的にトランザクションを実装することが適していないからです。必要な場合にはRDBを使用するか、アプリケーション側で実装する必要があるでしょう。MongoDBはどんなデータベースなのか?NoSQLには数々のデータベースがありますが、そのひとつが「MongoDB」です。NoSQLデータベースの中で突出した人気があり、RDBに引けを取らない人気です。JSONを保存するために使用されます。MongoDBは「ドキュメント型」のNoSQLだからです。MongoDBのデータベースでは、「コレクション」という集合の中に「ドキュメント(JSON)」を格納します。格納したデータはSQLではないJavaScriptライクなクエリで取り出せます。更新や削除も可能です。スキーマレスのためどんな構造のデータでも格納できますが、ある程度スキーマを整えておかないとクエリが難しくなってしまうため、スキーマを管理しなくてもいいわけではありません。レプリケーションやシャーディングがサポートされているので、可用性を高めたり、水平スケールしたりすることも容易です。どんな場合にMongoDBを使うべきなのか?MongoDBが適しているのは、スキーマを事前に定義するのが困難な場合や高い水平スケールが求められる場合でしょう。APIなどのJSONデータの保存やビッグデータ分析などですね。RDBとNoSQLは排他的なものではないので、組み合わせて使うこともできます。状況に合わせて最適なデータベースを選択しましょう。まとめRDBとNoSQLの違いがお分かりになりましたか?NoSQLはRDBを置き換えるものではなく、相互に補い合いながら共存するものです。データモデルを精査して、どちらのほうが適しているかよく考えてみましょう。NoSQLを選ぶ場合には、いくつか種類があることに注意してください。あなたはどのデータベースを使いますか?投稿者:プログラミング教育ナビ編集部tweetプログラミングで挫折しそうなら、現役エンジニアにマンツーマンで相談してみませんか?オンラインのプログラミングスクール「TechAcademy」のメンターが対応。人気の記事まだデータがありません。【プログラミング教育ナビ】は、プログラミング初心者が自分に合った勉強法や教室を見つけられたり、プログラミングに特化した求人が検索できたり、SaaSの比較ができるサイトです。人気講座のある入門スクールや独学できる学習サイトを、口コミ・評判で比較してランキング形式でご紹介しています。