NoSQLとは
NoSQL(Not only SQL)はRDBではスケールできないという課題を解決させるために生まれました。それではこの技術が生まれた背景はどのようなものだったのでしょうか?NoSQLの特性と、それを活かしたサービスとともに解説していきます。
RDBMSからNoSQLへの変遷
RDBMS(Relational DataBase Management System)には、汎用性が高いデータ構造によってもたらされるACID特性(複数の処理をまとめて管理する時の4つの特性:Atomicity、Consistency、Isolation、Durability)があります。この特性により金融システムに求められるようなデータの整合性や速いトランザクション処理などができました。
しかし、Webサービスの多様化により、非構造的なデータ(文章や動画、画像など)を大量に処理するために、処理能力の拡張をすることが必須となりました。この課題を解決するために、構造化データを構築するSQL(Structured Query Language)と他の言語を組み合わせたNoSQL(Not only SQL)という領域のデータベース技術が登場しました。
特にNoSQLはACID特性のようなデータの整合性ではなく、柔軟な一貫性概念と分散処理能力を重視しています。この移行は「ACIDからBASEへ(厳密な一貫性の代わりにスケーラビリティを優先する概念:Basically Available、Soft-state、Eventually consistent)」と表現されています。
また以下の記事でデータベースのトレンドについて詳しく解説しています。RDBの変遷について理解を深めたい方は参考にしてください。
▼RDBについて詳しく知ろう!
参考記事:データベースの現状と最新トレンド
NoSQLの主な機能
NoSQL誕生の背景からもわかるように、機能の一つとしてスケールアウトがありますが、他にも耐障害性や高速処理もあります。具体的には以下の通りです。
- ■スケールアウト
- 大量のデータを扱うことができ、サーバの大きさ・台数に比例して拡張できる柔軟性
- ■耐障害性
- トランザクション(データベース全体の整合性を維持する処理)が必要ないため、一部のトラブルによるバグが生じにくい
- ■高速処理
- 整合性を取る処理がないため、反応が速い
NoSQLの種類とは
NoSQLはYoutubeなどの動画サイトが主な例ですが、とにかくデータ量が大きく、整合性よりも処理速度が求められた背景のもと開発されました。また一言でNoSQLといってもその特性は様々で、技術的には大きく4つに分類されます。それではNoSQLの種類について主な特徴を取り上げながらご紹介します。
ドキュメント指向型
データの中でも、記事コンテンツや文字などの不定型データを扱うために、データをドキュメント化して保存することを目的としたデータベースです。キー(識別)に対する反応としてバリュー(必要)を要求せず、ドキュメントとして格納できます。スキームが必要なく、複雑なデータ構造にでも対応できるため、オンラインゲームアプリなどに使用されます。
キーバリュー型
製品ごとに異なりますが、共通の特徴としてはトランザクションのない大容量・高速データ処理が挙げられます。動画や文字などの格納に適し、キーワードでアクセス可能です。可用性・拡張性に優れており、Twitterなどの非トランザクション型データを大量に扱う場合に有効です。
カラム指向型
行/列のあるテーブルスキームにデータを格納しますが、クエリを使用した際、そのクエリと関連のあるデータのカラムがまとめられます。1回の操作での関連データ検索に優れ、行指向型とも呼ばれています。データ分析などに使用されることがあります。
グラフ型
データをノード単位に分類し、ラベル、属性、関係性を与えます。つまり、「人物」という属性に「名前、年齢、性別、住所」などを設定でき、また関係性によってデータ同士のつながりをパターン化することができます。分散処理など、スケールアウトの点で他のNoSQLに劣りますが、FacebookなどのSNSで利用されています。
NoSQLからNewSQLへ
NewSQLは、ビッグデータ活用が求められると同時に開発されました。NoSQLの拡張性と同時に、ACID特性も両立させることでビッグデータの解析をより効率的に行いたいというニーズからです。
実際にNewSQLによってビッグデータなどの大量データを処理しつつ、データ全体の整合性を取ることができます。この特性によりビッグデータの分析とモデリングができるようになりつつあります。
データベースをビジネスとつなげよう!
アプリケーション開発によるビジネスシーンの変容は、データベースへのニーズを変え、ビッグデータを処理しながら、トランザクションやリアルタイムな分析を要求するようになりました。
つまりデータを使った分析とそれを基にした予測データを出力し、細かな予算の組み立てを行うことが常識となりつつあるということです。これはデータベースとビジネスの関係は切り離すことができないことを意味しています。なのでこの機会に、是非データベース製品の比較検討してみてはいかがでしょうか。