NoSQLとは。データベースの特徴と、RDBMSとの違いを解説

データベースで現在主流となっているのは、OracleやMySQLなどに代表されるRDBMS(リレーショナル・データベース管理システム)です。

RDBMSは、データを表形式に格納し、大規模なデータを扱うことができます。

RDBMSに対して、最近注目されており、利用が広がりつつあるのが、NoSQLです。

    • NoSQLとはどのようなデータベースで、なぜ注目が広がっているのでしょうか?
    • RDBMSとは何が違うのでしょうか?

今回はNoSQLについてのさまざまな疑問にお答えします。

Windows VPSならWinserver!
★丁寧な電話サポートで安心★
\2週間無料・全プランSSD搭載/
Winserverを無料で試す

NoSQLとは

NoSQLは、どのようなデータベースなのでしょうか。

まずは、NoSQLの概要や種類について見ておきましょう。

NoSQLはどのようなもの?

NoSQLについてよく誤解されるのが、NoSQL」という種類のデータベースがあるわけではないという点です。

一般的にデータベースの世界で主流とされているのはRDBMSですよね。

NoSQLは、「RDBMS以外のデータベース」という意味を持ちます。

つまり、特定のNoSQLというデータベースがあるわけではなく、RDBMS以外のデータベースはすべてNoSQLなのです。

したがって、NoSQLにはさまざまな種類があります。

RDBMSとして代表的なOracleやMySQLについては、こちらの記事で詳しく解説しています。

NoSQLの種類とは

NoSQLとは、RDBMS以外のデータベースであるため、NoSQLと一言でいってもいくつかの種類があります。

NoSQLには大きく分けて、主に以下の4つがあります。

    • キーバリュー型
    • カラム指向型(列指向型)
    • グラフ型
    • ドキュメント型

これらをもう少し詳しく見ていきましょう。

NoSQL:キーバリュー型

キーバリュー型は非常にシンプルなデータベースで、「キー」に対する「バリュー」という2つの要素を組み合わせた構造となっています。

結合処理などの複雑な処理はできませんが、シンプルな構造を持つため、RDBMSに比べて高速な処理を行えるようになっています。

キーバリュー型でよく使われている製品には「Memcached」などがあります。

NoSQL:カラム指向型(列指向型)

カラム指向型は、列指向型とも呼ばれます。

1行ごとにデータを扱う一般的なデータベースとは異なり、列方向でデータを扱うデータベースです。

列でデータを扱うため、データの集計作業や分析などを得意としています。

カラム指向型でよく使われている製品には「Apache Cassandra」などがあります。

NoSQL:グラフ型

グラフ型は、端的に言うと「グラフ構造」を持つデータベースです。

RDBMSのデータ構造がリレーショナル(階層型)であるのに対して、グラフ型データベースのデータ構造はネットワーク上になっています。

データは、「ノード」「エッジ」「プロパティ」の3要素で表され、データの関係性を表すことが得意です。

大規模データでは、例えばSNS上での人と投稿記事の関係性なども表すことができます。

グラフ型でよく使われている製品には「Neo4j」などがあります。

NoSQL:ドキュメント型

ドキュメント型は、RDBMSとは異なり、データをXML形式やJSON形式などのドキュメントとして扱うデータベースです。

ドキュメントととしてデータが管理されるため、「アプリケーションから利用しやすい」、「分散やスケールアウトが行いやすい」といったメリットがあります。

ドキュメント型でよく使われている製品には「MongoDB」などがあります。

 

このように、NoSQLは「RDBMS以外のもの」という言葉通り、さまざまな種類のデータベースがあります。

NoSQLが注目される理由とは

従来、データベースといえばRDMSを指すことが大半で、RDMSは多くのデータを効率よく管理できる優れたデータベースであると評されてきました。

実際、今でも中小企業から大企業までRDBMSは非常に幅広く活用されています。

では、なぜ現在NoSQLが注目され、利用が広がっているのでしょうか。

それには、以下の3つの理由があります。

    • 特定のデータモデル専用に特化して設計される
    • 大規模なデータ(ビッグデータ)の処理を高いパフォーマンスで実現できる
    • データベースシステムの拡張や分散が容易に行える

近年は、AI(人工知能)、IoT、ビッグデータの利活用などで大規模な情報を取得・蓄積し、高速に処理するニーズが急速に高まっています。

NoSQLが注目される理由には、こうしたIT業界を取り巻く大きな変化が密接に関わっています。

ディープラーニング

NoSQLとRDBMSとの違い

NoSQLの解説をすると、必ずRDBMSが比較対象となります。

具体的にどのような点が両者の違いなのでしょうか。

NoSQLとRDBMSはどこが違う?

NoSQLにはいろいろな種類がありますが、大きく分けてRDBMSとは何が違うのでしょうか。

まずは両者の特徴をあらためて整理してみましょう。

NoSQLの特徴

NoSQLの特徴は以下の通りです。

    • データは表形式ではなく、さまざまな方法で格納、管理される
    • 多数のデータを高速に処理できる
    • シンプルな処理は得意だが複雑な処理は苦手である
    • システムの拡張や分散が行いやすい

RDBMSの特徴

RDBMSの特徴は以下の通りです。

    • データは表形式で格納され、管理がしやすい
    • 複数のテーブルを関連させて、さまざまな情報を取り出せる
    • データ数が多くなると処理が遅くなる
    • データの更新など複雑な処理が得意
    • SQLと呼ばれる共通の操作言語が使える

これを踏まえると、NoSQLとRDBMSの大きな違いは以下の点にあると言えます。

    1. データが表形式で格納されているかどうか
    2. 多数のデータを高速に処理できるかどうか
    3. 拡張や分散が容易に行えるかどうか
    4. SQLで操作できるかどうか

NoSQLとRDBMSの比較

これまで見てきたように、NoSQLとRDBMSにはいくつかの違いがあります。

これらを表にして整理すると、次のようになります。

NoSQLRDBMS
データ格納形式種類による表形式
操作言語種類によるSQL
システム拡張 ○
容易
 ×
難しい
分散処理 ○
容易
 ×
難しい
大規模データ処理 ○
高速に行える
 ×
処理速度が低下する
実績 △
急速に拡大
 ○
豊富な実績

NoSQLが適している分野とは

NoSQLとRDBMSは、データ構造やデータ管理など多くの点で違いがあります。

それぞれの得意不得意を確認し、両者を効果的に使い分けられるようになりましょう。

NoSQLよりRDBMSが適している分野

データを表形式で格納するRDBMSは、以下のような分野での利用が向いています。

    • 社内データの管理用データベース
    • 顧客情報の管理データベース
    • 生産管理システムのような複雑な情報を扱うもの

NoSQLが向いている分野

NoSQLは、大量のデータを扱うのが得意という特徴があるため、以下のような分野が向いています。

    • 大量のデータを処理するIoTのシステム
    • SNSの分析
    • ゲームのWebサービス

など

NoSQLが使える製品やサービス

RDBMSには、OracleやMySQL、PostgreSQLなどさまざまな製品があります。

また大手のクラウドサービスであるAWS(Amazon Web Service)やGCP(Google Cloud Platform)、Azure(Microsoft Azure)などもこれらのデータベースが使えるようになっています。

では、NoSQLの製品やサービスにはどのようなものがあるのでしょうか。

NoSQL製品

NoSQL製品としてよく知られているものには、以下のようなものがあります。

    • MongoDB:ドキュメント型
    • DynamoDB:キーバリュー型
    • Apache Cassandra:カラム指向型
    • Couchbase:ドキュメント型
    • Neo4j:グラフ型

このようにさまざまな製品が存在します。

NoSQLが使えるクラウドサービス

RDBMSは、大手の各クラウドは対応していますが、NoSQLの場合はどうなのでしょうか。

ここでは大手クラウドであるAWS、GCP、AzureについてのNoSQL対応状況を見ていきましょう。

<AWS>

AWSでは、NoSQLデータベースとして以下をサポートしています。

サービスとして提供されているのは以下の通りです。

データーベースタイプ名称
キーバリュー型Amazon DynamoDB
ドキュメント型Amazon DocumentDB
グラフ型Amazon Neptune
カラム指向型Amazon Redshift

これ以外にも仮想サーバーに任意のデータベースをインストールして利用することができます。

<GCP>

GCPでは、NoSQLサービスとしてGoogle Cloud Firestoreというサービスを提供しています。

もちろん、これ以外にも仮想サーバーに任意のデータベースをインストールして利用することができます。

<Azure>

Azureでは、NoSQLサービスとしてAzure Cosmos DBというサービスを提供しています。

もちろん、これ以外にも仮想サーバーに任意のデータベースをインストールして利用することができます。

このようにNoSQLは大手クラウドサービスでも利用できるようになっています。

まとめ

NoSQLは、最近急速に注目と利用が広がっているデータベースです。

従来、データベースとして幅広く利用されてきたのは、OracleやMySQLのようなRDBMSです。

それに対して「RDBMS以外」を意味するNoSQLには、以下のような特徴があります。

    • 大量のデータの高速処理が得意
    • システムの拡張や分散が行いやすく、構造の変動などにも対応可能
    • シンプルな処理は得意だが複雑な処理は苦手

今回解説したようにNoSQLとRDBMSには、それぞれに向き不向きがあります。

それぞれの得意不得意を確認し、両者を効果的に使い分けられるようになりましょう。

NVIDIA製GPU搭載
高性能・高火力の専用サーバー!
「Tesla V100」「RTX-5000」「RTX-4000」

▶ プランを見る

関連記事

サーバーの基礎知識

TOP
CLOSE