フリーキーズ | 独学プログラミング

NoSQLとは

最終更新日

NoSQLとは「Not Only SQL」の略で、リレーショナルデータベース(MySQLなど)で使われる表組み以外の手段でモデル化されたデータを保存・検索するための仕組みを提供するデータベースの一種です。

もっと簡単に言うと、NoSQLデータベースは多くのデータを扱うことができるデータベースですが、そのデータは必ずしも構造化された表形式(行や列のような)である必要はないのです。

NoSQLの種類

NoSQLデータベースには、ドキュメント指向データベース、キーバリューストア、列指向データベース、グラフデータベースなど、いくつかのタイプがあります。大量のデータを扱う場合や、データの関係を表形式で簡単にモデル化できない場合によく利用されます。

NoSQLの使いどころの例

例えば、何十億人ものユーザーを抱えるソーシャルメディアプラットフォームで、各ユーザーが友人やフォロワーのリストを持っているとします。また、各ユーザーは投稿を行い、各投稿には他のユーザーからのコメントや「いいね!」が付くこともあります。このような複雑で相互接続されたデータを、従来のSQLのテーブル構造に当てはめようとすると複雑で非効率的です。

そこで、より柔軟なフォーマットでデータを保存できるNoSQLデータベースを利用することが考えられます。例えば、グラフデータベースを使い、ユーザー、投稿、コメント、「いいね!」のそれぞれがグラフのノードとなり、それらの間の関係(「ユーザーXはユーザーYと友達」「ユーザーZは投稿Aにいいね!」など)がノードをつなぐエッジとなります。この構造により、あるユーザーの既存の友人のつながりから新しい友人を提案するなど、データポイント間の関係性を簡単かつ迅速に分析できます。

NoSQL製品の例

NoSQLデータベースの代表的な例としては、MongoDB(ドキュメント指向データベース)、Apache Cassandra(列指向データベース)、Google BigTable、Amazon DynamoDB(キーバリューストア)などがあります。

注意すべきは、NoSQLがSQLの完全な代替を意味するわけではないということです。どちらも独自のユースケースを持っており、異なるタイプのデータやワークロードを扱う上で強力です。私たちが「Not Only SQL」と言うのはそのためで、適切な仕事のために適切なツールを選ぶということなのです。