Web教材一覧データベース

NoSQLデータベース

キーワード

NoSQL、ビッグデータ、RDBMS、非構造化データ、キーバリューストア、カラムストアドキュメントデータベース、グラフデータベース


NoSQLの概要

RDBMSとは異なり、多様な形式の大量データ(ビッグデータ)の格納や処理に適したデータベースの総称です。
 NoSQLは、「Not Only SQL」ですが、むしろ「RDBではない」と解釈すべきでしょう。当然、NoSQLでの検索ではSQLは使えず、個々の型による検索言語を用います。

NoSQLは、単一の製品名ではなくそれらの総称です。通常の製品、OSSでの提供、クラウドでのサービスなどで多くの製品があります。
 RDBMSも、JSONなども取り扱うなど、NoSQLの特徴を取り込んだ製品があります。
 ビッグデータでも各種統計など構造化データも多くあります。それらの処理にはRDBMSが適しており、NoSQLとRDBMSを適所適材で使い分けるのが適切です。

NoSQLのデータ格納形式による分類

NoSQLは、データ格納形式から、キーバリューストア型、カラムストア型、ドキュメント型、 グラフ型などに区分されます。

キーバリューストア(Key-Value Store)型
最も代表的なNoSQLであり、単にNoSQLというとこれを指すこともあります。
データ構成が、すべてインデックス付きのキーと値(バリュー:データ本体)のペアで構成され、キーを指定して値を取り出せます。連想配列と同じデータ形式でハッシュが用いられます。
このような単純な構造ですから、スキーマ定義は不要(ダイナミックスキーマ)です。膨大かつ更新頻度が高いデータをシンプルに管理できます。 複雑な検索などは苦手ですが、単純な処理はハッシュ検索が主なので高速です。
カラムストア(Column Store)型
RDBMSでは、データテーブルを行を主に考えますが、カラムストアではカラム(列)を主として、カラムに分割して格納します。列方向の集約が高速で集計処理などが得意です。
キーバリューストア型のバリュー部分が、さらに任意の数のキーバリューの集合(列名と値)になったような構造だともいえます。
ドキュメントデータベース(Document Database)
複雑なデータを「ドキュメント」として格納して、準構造化データ形式のキーによりアクセスするものです。キーバリューストア型のバリュー部分が、JSONやXMLなどの半構造化データ(ドキュメント)になったような構造です。
個々のドキュメントのデータ構造は自由であって、データを追加する都度変えることができます。
グラフデータベース(Graph Database)
個々の情報をグラフ理論に基づき結び付てて、高い拡張性と多様な観点での高速検索を実現する方法です。
グラフ理論では、ノード(バーテックス)、リレーションシップ(エッジ)、プロパティ(属性)の3要素によって、ノード間の関係性を表現します。RDBMSでは面倒な「友達の友達は友達」というような複雑な検索が容易にできます。

本シリーズの目次へ