現代はビッグデータの時代。旧来のリレーショナルデータベースでは扱いにくい大量データの時代になってきました。そのため、データベース管理システムもSQLからNoSQLに主流が移りつつあります。
そのNoSQLに触れていきます。
NoSQLとは
NoSQLは、端的に言えば「SQLを使わないデータベース形式、およびそのためのデータベース管理システム」を総称する呼び名です。「クラウドデータベース」、「非リレーショナルデータベース」、「ビッグデータデータベース」などの異名もあります。
のちほど紹介していきますが、NoSQLは、どのデータ・モデルにしてもテーブル形式を用いるリレーショナルデータベースよりもシンプルです。それだけに、前の記事で示したような「関連付けによる有用なデータの抽出」などの処理はむしろ簡単にはできません。にもかかわらず存在感を強めていることには理由があります。
ビッグデータ時代におけるRDBの問題点
それは、あれほど便利だったリレーショナルデータベースですが、ビッグデータの時代になると柔軟性のない硬直したデータベースになってしまうという問題点が明らかになったことです。どれほど進化した生物でも、環境の変化についていけなければ衰退する……というのと同じです。
ビッグデータの時代には「3つのV」があると言われます。「Volume(量)」「Velocity(速度)」「Variety(多様性)」の3つの特徴のことです。昨今ではこれらに加えて、さらにもう2つのV、「Veracity(正確さ)」、「Variability(変動性)」が求められるようになっています。これら「5つのV」から、データは「大量で」「高速で」「多種多様」なので、注意深く正確にとらえる必要があり、かつデータのとらえ方も柔軟に変わっていかなければならないという、ビッグデータ時代のデータベースに求められるあり方がわかります。
リレーショナルデータベースは、この「変化」について行けないのです。
RDBはテーブル形式、つまり「表」の形でデータを整理します。強力なデータ検索・抽出機能を発揮しますが、問題もあります。ビジネスの世界では毎日毎晩、新しい商品やサービスが生み出されます。たとえばある新製品が発売されたことで、今まで便利に使えていたデータベースのテーブルに、新しいフィールドをひとつ付け加えねばならなくなったとすると、大変なことが起こります。同じカテゴリーには、もうすでに何千何万という商品がデータとして整理されています。そのすべてのレコードに対して、同じように新しいフィールドを付けてやらなければならないのです。「データの一貫性」こそがリレーショナルデータベースの命だからです。既存の商品のそのフィールドが「null」であればいいのですが、何らかの入力が必要となると、その何千何万というレコードひとつひとつについて新しいフィールドに属性を入力してやらなければならないのです。
つまり、テーブル(表)という構造を与えられたデータベースは、ほんのちょっとした変化に対応するにも膨大なコストと時間と労力がかかってしまうわけです。それは、場合によっては、金額的には億単位、時間的には年単位のロスともなりえるでしょう。
これでは「5つのV」で表されるビッグデータの時代にはとうていついて行けません。
とはいえ、RDBがもはや完全に「恐竜」になってしまったかというと、そうでもありません。急激に変化する市場にはついていけないものの、長い歴史と確立されたビジネスモデルをもつ領域であれば、現在はもちろん、今後もRDBは便利で強力なものであり続けるでしょう。
要は「使い分け」です。RDBとSQLにも、まだまだ活躍できる場があります。
NoSQL・柔軟性が高いモデル
NoSQLは、RDBのテーブル構造というデータ・モデルを捨てています。何よりも、それが硬直化の原因だからです。そういう意味では、出発点からしてまったく異なる発想で作られたデータ・モデルを採用しています。そのため、RDBが本性としてそなえている「データの一貫性」、「高セキュリティ」、「高可用性」といった特性を、それそのものとしては持っていないNoSQLデータベースもあります。変化に対応できる柔軟性を得た反面、RDBにはあった良さは失われるという、つまりは「あちらを立てればこちらが立たず、こちらを立てればあちらが立たぬ」トレードオフになっているのです。
それをわかっていながら利用する価値があるNoSQL。こちらは柔軟性と拡張性、そして高速性が命です。
では、代表的なNoSQLデータベースを見ていきましょう。
・キーバリューストア
もっともシンプルなデータ・モデルによるデータベースが、このキーバリューストア Key-Value Storeです。ここで用いられるデータ・モデルは、インデックス付きの「キー Key」と「値 Value」という、たったふたつの組み合わせです。このタイプのNoSQLデータベースに属するのは、Cassandra、DyanmoDB、Azure Table Storage(ATS)、Riak、BerkeleyDB などです。
・カラムストア Column Store
「ワイドカラムストア Wide-column Store」とも呼ばれます。「カラム」というのは、Excelでいう「列」、RDBでいう「フィールド」、つまり表でタテ方向に並んだかたまりです。カラムストアでは、データをタテ方向のカラムのかたまりに分割したデータ構造が基本となります。このタイプのNoSQLデータベースに属するのは、HBase、BigTable、HyperTableなどです。
・ドキュメントデータベース Document Database
ドキュメントデータベースでは、複雑なものも含む多様なデータを「ドキュメント」として収納し、それぞれのドキュメントに一意的なキー Key を付けます。データ・モデルとしては「キーバリューストア」に近いところがあります。このタイプのNoSQLデータベースには、MongoDB、CouchDBなどがあります。
・グラフデータベース Graph Database
NoSQLデータベースの中ではもっとも複雑に構造化されたデータ・モデルを用いています。「グラフ」というのは、棒グラフや円グラフのような図ではなく、ひとつひとつのデータである「ノードnode」、ノードとノードの関係を表す線、「エッジ edge」、そして、ノードやエッジの性質・特徴を表す「プロパティ property」からなる構造のことです。
たとえば、SNSでの友だちと友だちのつながりをイメージすればわかりやすいと思います。
このタイプのデータベースには、Neo4J、Polyglotなどがあります。
以上はNoSQLデータベースの大ざっぱな特徴になります。次の記事では、人工知能技術とデータベーステクノロジーの結びつきを見ていきます。