(3)NOSQL内での種別
一口にNOSQLと言っても、いろいろな種別があります。代表的な種別として、Key-Value型やColumn指向型、Document指向型などが有名です。以下では、それぞれの特徴を整理します。
- Key-Value型
-
|

|
| 図a-1: Key-Value型 |
値を、Key値とValue値のペアで管理します。
Keyを指定して値を特定するのが基本的なスタイルです。
Keyでの前方一致検索などをサポートするものもあります。
特徴は、データ・モデルがシンプルなことです。プログラミング言語でよく登場する連想配列の代用などに利用できます。ユーザー情報やセッション情報を複数のアプリケーション間で共有したり、RDBMSの検索結果を格納したりするなど、現在のRDBMS主体で構築されたアプリケーションに適応しやすいのも特徴です。
- 代表的な実装
- memcached
- Flare
- ROMA
- Redis
- Column指向型
-
|

|
| 図a-2: Column指向型 |
列をベースにデータを扱うモデルです。RDBMSは行(レコード)単位でデータを扱うのに対して、列単位でデータにアクセスします。
特徴は、指定した列のデータを高速に取得できることです。列単位で更新できるため、大規模データの検索システムや更新処理の基盤などに有効です。
- Document指向型
-
|

|
| 図a-3: Document指向型 |
データが一定の型をとる必要がないデータベースです。スキーマレスのデータベースと呼ばれることもあります。
RDBMSがデータ投入時にテーブル定義を必要とするのに対して、Document指向型は1件ずつフォーマットが違っていても構いません。事前に型を決める必要がないため、変更頻度の高いデータベースに有効です。
上記のように、NOSQLという種別の中でも、複数の分類があります。実際にアプリケーションに適応する際は、この特性を理解して、適切に配置することが重要です。当然、RDBMSとは役割が異なります。どれか1つだけではアプリケーションのユースケースを満たすことが難しい場合もあるでしょう。データベースの選定にあたっては、データの種類とアクセス形態に合わせることが重要です。