NoSQLとセマンティック、データモデリングのベストプラクティスNoSQLベストプラクティス(6)

本連載では、「NoSQLデータベースの今」を正しく理解し、ビジネス躍進の実現に向けて対策するための「ベストプラクティス」を掲示していきます。今回は、データモデリングにおける従来の制約を、セマンティックでどう超えられるかを解説します。

» 2017年12月27日 05時00分 公開
[三浦デニース(Denise Miura)マークロジック株式会社]

NoSQLベストプラクティス

NoSQLとセマンティックによる「マルチモデル」が選択され始めている

 データモデリングは、どんな組織においても極めて重要です。データモデルとは、情報の格納方法、現実世界のヒト/場所/モノの記録方法、またそれら相互の関係を詳細に定義するものです。例えば 企業には顧客がいて、顧客は購入を行います。これらのエンティティ(実体)ならびに関係性をモデリングすることで、データの利用・共有のための基盤ができ、またアプリケーション開発の方向性が決まります。

 しかし残念なことに、データモデリングにおける従来のアプローチは十分ではありません。従来のデータモデリングのプロセスには、対象分野におけるエンティティと関係性を扱う概念モデルがあり、これを論理モデルに翻訳し、さらにこれを物理モデルに変換することでデータベースに実装します。このアプローチは「ERモデリング(実体関連モデリング)」と呼ばれ、1976年の登場以来、標準となっています。

 一方、迅速なデータ統合とスマートなアプリケーション開発を実現するため、これまでのアプローチに代わるものとしてNoSQLとセマンティックによる「マルチモデル」が選択され始めています。

 NoSQLとセマンティックが採用される大きな理由の1つとして、データに関する柔軟かつ便利、また分かりやすいモデル(データ統合が改善され、よりスマートなアプリケーションを短期間で構築できる)が必要とされていることがあります。

 NoSQLデータベースには、4つのタイプがあります。「ドキュメント」「グラフ」「コラム」「キー/バリュー」です。これらの中で、ドキュメントデータベースの人気は、他よりも圧倒的に高いです。

 ドキュメントデータベースの主な長所の1つは、柔軟でスキーマに依存しないデータモデルを使用していることです。これにより、データのモデリングとアプリケーションの開発においてアジャイル性と豊かな機能が提供されます。

 ドキュメントモデルでは、複数の表に含まれるデータを正規化する代わりに、全てのデータをJSONやXMLドキュメントとして保持します。JSONならびにXMLドキュメントによって、今日の組織が扱っている多様で複雑なデータを、より自然にモデリングできます。これは人間が読んで理解することができ、またデータの概念モデル/ビジネスモデル(現実世界のエンティティ)に近い形で表現できます。例えば金融取引、患者記録、手術手順などをモデリングする場合、必要な情報全てを1つのドキュメント内に含めることができます。

 ドキュメントデータベースは、優れた汎用データベースです。しかしデータモデリングに関して得意でない分野があります。本稿では、ファクトと関係性を格納するのにセマンティックが特に適している理由と、データモデリングにおけるこの機能の意味について説明します。

セマンティックでファクトと関係性を記述するメリット

 近年、グラフデータベースの人気が急激に高まっています。またトリプルストア(セマンティックデータを格納するもの。「トリプル」については後述)もグラフデータベースの一種として認識されています。データがグラフ構造を取り始め、エンティティ(ヒト、場所、モノ)自体とエンティティ間の関係が重要な場合、セマンティックを使った方がいいでしょう。セマンティックのファクトと関係性は、主語述語目的語の形で表され、「RDF(Resource Description Framework)トリプル」と呼ばれます。例えば、トリプルは「John lives in London(ジョンはロンドンに住んでいる)」のようになります。こういったトリプルはSPARQLという標準言語でクエリされます。この言語はかなりSQLに似ています。

 セマンティックには、以下のようなユニークな長所があります。

  • トリプルは一般に理解されやすく、検索や共有が容易
  • トリプルを結び付けてグラフを作成できる。これは機械で読み取ることが可能。また新しいファクトを推論できる
  • RDFトリプルならびにそのクエリ言語SPARQLは、W3Cによって標準化されている
  • トリプルストアは、数千億個のファクトや関係性の規模まで拡張できる
  • トリプルストアはオントロジーを活用して、データの整理と分類が可能(オントロジーはタクソノミーのようなものだが、より内容が豊かで便利)

 トリプルならびにトリプルストアのユニークな機能は、通常2つの方法で利用されます。いずれの場合もデータのコンテキストを提供することが目的です。1つ目のアプローチは、トリプルを使って、組織、専門分野(ドメイン)、あるいは世界全体に関するファクトや関係性を記述することです。その際、記述されるファクトや関係性の個数に制約はありません。これはその後、検索の強化に利用することもできます。

 ファクトや関係性の定義方法を標準化することは、多様なデータを管理する際に役立ちます。エンティティの定義方法は、各組織でバラバラです(同じものに別の列名が付いている、列名は同じだがそれが意味するものは違うなど)。また自然言語にも多様性があります(英語の「sub」は潜水艦のことかもしれませんし、あるいはSubwayのサンドイッチのことかもしれません)。

 リレーショナルデータベースにおける比較的抽象的で複雑な関係性の定義方法とは違って、トリプルはデータベース内のファクトや関係性を明示的に記述します。これはデータ統合において極めて便利です。というのも、結合や複雑な変換を行うより、トリプルでデータを結び付ける方が楽だからです。

例えばトリプルを使うと、エンティティ「cust123」は、「cus_id_456」と同じである、あるいは、「cus_id_456」と何らかの関係がある、ということができます。クラスやプロパティの関係といった関係性も扱えますが、これは従来の物理的なER図では扱えなかったものです。これらの機能により、セマンティックは検索を拡張する優れたデータモデルを提供します。例えば、セマンティックのタクソノミーやオントロジーを利用することで、「cardiac catheter(心臓カテーテル)」という語で検索する際に、「implantable devices(埋め込み型機器)」に関連する結果を含めるように拡張できます。

複数のデータモデルを組み合わせて利用する

 何でもできるデータモデルというものは存在しません。このため、データや作業の種類に応じて複数のモデルを使用する必要があります。複数のモデルを組み合わせて使う手法は、「ポリグロット・パーシステンス」と呼ばれます。ポリグロット・パーシステンスを実現するには、異なる種類のデータをさまざまな場所で格納するより、1カ所に格納しておく方がいいでしょう。このアプローチでは、さまざまなテクノロジーをまとめて使用する必要があります。

 マルチモデルデータベースにより、各モデルのメリットを単独のプラットフォームで実現できるだけでなく、両方のモデルを同一データベース上で利用することでしか得られないユニークなメリットを提供できます。マルチモデルのアプローチでは、各作業に適したツールを選択できます。増加する多次元データに対してリレーショナルデータベースを適用することによる面倒な制約に対処する必要はありません。

筆者紹介

三浦デニース(Denise Miura)

photo

マークロジック株式会社日本法人代表。ソフトウェア開発ならびにwebテクノロジーに関して25年以上の経験を持ち、さまざまなエンジニアリング、コンサルティング、管理職などの要職を歴任。前職はSilicon Graphics、E*TRADE Financial、Blue Martini Software(日本法人代表取締役)など。カーネギーメロン大学卒(コンピュータサイエンス専攻)


Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。