Next Generation Databases mostly addressing some of the points: being non-relational, distributed, open-source and horizontal scalable. |
2009年に入ったあたりからNoSQLという言葉が使われるシーンが増えてきた。2010年にはいってからその言葉が使われるシーンはさらに増えており、IT関係者としてはその意味をおさえておきたいキーワードになりつつある。NoSQL、またはNoSQL movementという言葉で使われることが多い。NoSQLというプロダクトやデータベースが存在するのではなく、データベースに関係するひとつの潮流を示す言葉としての意味を持っている。
2009年に入ってから新しいデータベースとしてCouchDBやBrowserCouchなどを取り上げた。いわばこれがNoSQLという分類に該当する。2009年以前からあるデータベースであっても該当するものもあり、HamsterDBやBerkeley DBなどはNoSQLに分類されることになる。
NoSQL - Not Only SQL
NoSQLという名称からは「SQLを使わないデータベース」という意味が連想されるが、現在のところ「Not Only SQL」という言葉の短縮形であるとしてより広い意味で使われている。NoSQLという言葉自身の背景にはMySQLやPostgreSQL、MS SQLといった言葉をもじったというところもあるようだ。
NoSQLの潮流はWebアプリケーションやWebサービスが発祥源になっている。大量のユーザに対して大規模なデータを、しかもかなりの頻度でサービス内容が変化するような用途に適用するために開発されていった経緯がある。
従来のリレーショナルデータベースはもちろんこれまでの用途には適しているが、変更の頻度が高いうえにきわめて高いスケーラビリティと柔軟な運用が求められるケースでは要求を満たすことが難しいケースがある。こうした状況に対して、シンプルな機能と高いスケーラビリティを提供するといったように、特定の機能を提供することを目的として開発されたデータベースがNoSQLという分類に当てはまることになる。
NoSQLの特徴と、NoSQLに分類されるデータベースの種類
NoSQLの特徴をまとめると次のようになる。ただし、明確な定義があるわけではない。列指向データベース、グラフ指向データベース、キーバリューデータベース、ドキュメントデータベースが特にNoSQLとして分類されることが多い。ただし、NoSQLの意味をRDBMS以外のシステムといったようにもっと広く取り、オブジェクト指向データベースやXMLデータベースなどもNoSQLとして参照しているケースもある。
NoSQLデータベースと呼ばれるものの特徴(ただし必須事項というものではない) |
---|
明示的なスキーマを要求しない。たとえばリレーショナルデータベースのテーブルスキーマなどがない。 |
リレーショナルデータベースと比べると、より何かの処理に特化したデータベースになっている。 |
リレーショナルデータベースに要求されるACIDを必ずしも求めない。 |
スケーラビリティが高く、大規模なデータ処理に適している。分散処理に向いている。 |
明確な定義があるものではない。 |
NoSQLデータベース種類 | 特徴 |
---|---|
列指向データベース | データマイニングやデータ分析などに特に利用できるように列処理に注力したデータベール。 |
グラフ指向データベース | リレーショナルで発生するテーブル間の繰り返しクエリを避けるため、データをグラフとして保持して操作できるようにしたデータベース。 |
キーバリューデータベース | キーとそれに対応する値という構造のデータベース。Berkeley DBなどUNIX系OSでは古くから好まれている形式。 |
ドキュメントデータベース | 任意の長さの文書を保持することを目的としたデータベース。 |
NoSQLデータベースに分類されることもある種類 |
---|
オブジェクト指向データベース |
XMLデータベース |
グリッドデータベース |