あらゆるITシステムの要(かなめ)といえるのが「データベース」です。エンジニアのみならず、企業システムに携わるビジネスパーソンにとって、その基礎知識の習得は不可欠です。新刊『データベースをなぜつくるのか』(矢沢久雄著)から、データベースの役割と必要な知識を抜粋・再編集して紹介します。第3回は「クラウドデータベース」などについて。

 インターネット上のサービスとして提供されているコンピュータの機能を利用することを「クラウドコンピューティング」または単に「クラウド」と呼びます。「クラウドデータベース」は、インターネットサービスとして提供されているデータベースおよびそれを利用することを意味します。

 データベースは従来、自社内のサーバーやDBMSに設置されていることがほとんどでした。これを「オンプレミスデータベース」と呼びます。プレミス(premises)とは、「建物」という意味です。近年では、オンプレミスデータベースだけでなく、インターネット上のサーバーやDBMSを使うクラウドデータベースもよく利用されています(図12.1)。

画像のクリックで拡大表示

 クラウドは、料金を払えば誰でも利用できる「パブリッククラウド」と、特定の企業や個人だけが利用できる「プライベートクラウド」に分類できます。代表的なパブリッククラウドのプロバイダ(サービスを提供する事業者)には、「Amazon Web Services(略称:AWS)」「Microsoft Azure(略称:Azure)」「Google Cloud Platform(略称:GCP)」があります。

クラウドデータベースの形式

 クラウドデータベースには、仮想マシンのデータベースを利用する形式と、データベースのサービスを利用する形式があります。また、それぞれに、関係データベースを使うものと、他のデータベースを使うものがあります。

 仮想マシンのデータベースを利用する形式では、ユーザーがデータベースを管理します。細かな設定や操作ができますが、それらを行う分だけコスト(負担)が多くなります。

 データベースのサービスを利用する形式では、クラウドのプロバイダがデータベースを管理します。細かな設定や操作はできませんが、それらを行わない分だけコストが少なくなります。この形式のクラウドデータベースを「DBaaS(Database as a Service、デービーアース)」と呼びます。

 関係データベースではないデータベースを使うことを「NoSQL(Not Only SQL、ノー・エスキューエル)」と呼びます。現在でも、データベースの主流は関係データベースなのですが、それだけではなく、さまざまな種類のデータベースが使われる場面もあるので、それらをNoSQLと総称するのです。

 NoSQLは、データの格納形式の違いによって「キーバリュー型」「ワイドカラムストア型」「ドキュメント型」「グラフ型」の4種類に分類されます。これらは、どれも表形式の関係データベースとは異なるものです。それぞれの形式に、いくつかの製品があります(図12.2)。

画像のクリックで拡大表示

NoSQLの種類

 キーバリュー型は、キーとバリューのペアでデータを格納します。キーは、データを識別するものです。バリューは、キーに対応した値です。関係データベースでは、データの項目が固定的ですが、キーバリュー型のバリューは、複数の項目を持つことができ、データごとに項目の内容や数が異なっていても問題ありません(図12.3)。

画像のクリックで拡大表示

 ワイドカラムストア型は、キーバリュー型のバリューの部分を1つ以上のカラム(列)にしたものです。列を使うという点では、関係データベースに似ていますが、それぞれのデータに同じ列がなくてもよく、列を後から追加することもできます。

 ドキュメント型は、キーバリュー型のバリューの部分をドキュメントにしたものです。キーとドキュメントは、「JSON(JavaScript Object Notation、ジェイソン)」や「XML(Extensible Markup Language、エックスエムエル)」の形式で記述します(後で実際にNoSQLを体験するときにはJSONを使います)。関係データベースより、データの自由度が高く、複雑な構造のデータや膨大なデータも格納できるという特徴があります。

 JSONは、JavaScriptというプログラミング言語でオブジェクトを記述するときのデータ形式です。JavaScriptに限らず、さまざまな場面で使われる共通的なデータ記述形式となっています。

 XMLは、タグで囲むことで、データに意味付けをしたり階層構造を示したりします。JSONと同様に、さまざまな場面で使われる共通的なデータ記述形式です。

 グラフ型は、グラフ形式でデータを格納します。このグラフとは、棒グラフや折れ線グラフなどのグラフではなく、いくつかのノード(頂点)をエッジ(枝)でつないだものを意味します。ノードがデータの実体であり、エッジがデータとデータの関連を示します。関係データベースより、検索のスピードが速いという特徴があります。

関係データベースとNoSQLの比較

 関係データベースと比べたNoSQLの主な長所をまとめると、次のようになります。

  • データの形式が自由である
  • 膨大なデータを取り扱える
  • 検索のスピードが速い

 逆に主な短所をまとめると、次のようになります。

  • データの更新や削除を頻繁に行うと、データの整合性が保証されない場合がある
  • 複雑な条件を指定した検索ができない

 したがって、膨大なデータを取り扱い、スピードが重視されるAI(人工知能)やIoT(モノのインターネット)の分野では、NoSQLが適しているといえます。一方、膨大なデータを取り扱わず、データの整合性が重視される会計や在庫管理などの業務システムの分野では、関係データベースが適しているといえます。

(写真:Tierney/stock.adobe.com)
(写真:Tierney/stock.adobe.com)
画像のクリックで拡大表示
本書のテーマは、コンピュータ・システムで重要な役割を果たしている「データベース」。その基礎知識をイチから説明したうえで、データベースの設計で使われるE-R図と、データベースの実装で使われるSQLを詳しく説明します。Pythonを使って、データベースを利用するプログラムの作り方も示します。これらを知れば、データベースの仕組みが具体的にわかるだけでなく、その作り方も具体的にわかります。

矢沢久雄(著)、日経BP、2750円(税込み)