Archives

  • 2020年1月1日 その85:  データベースの新たな形:グラフデータベース・・・関係を直接表現する技術
  •  
  • その85:  データベースの新たな形:グラフデータベース・・・関係を直接表現する技術

    業務系に使用するデータベースシステムとしてリレーショナル型データベースが出現して、ほぼ30年を越える期間が過ぎています。現在はそのようなシステム利用形体においてRDBMSを選択することが当たり前のように行われています。一方でRDBMSのデータ表現形態では開発者として不便(あるいは限界性)を感じる場面が出て来ている。正確にいうならば、元々制約として現れていた箇所が、これまでは何らかの方法で(言葉は良くないが)何とかゴマカシテきたものが、取り扱うデータの種類や量が非常な速さで拡大してきた環境において、扱い難い点が目立つようになってきたともいえます。また、技術や物理環境/装置の進展で、他の方法として費用的にも導入しやすくなってきたといえます。(例えばSSD装置の広がりであったり、今や1TB(テラバイト)のメモリを搭載する計算機も比較的リーズナブルな費用で手に入れることが可能になってきたことなど。)

    このような中で、グラフデータベース技術に脚光が浴びせられるようになってきています。これはデータ同士の関係性を直接構造として表現する方式です。例えば、人と人、人と物(またはコト)、イベント事象と状況などを論理的な関係性として直接構造に取込み、表現できるようにすることで、容易大量データの検索や処理を行えるようにする。計算機メモリ容量が飛躍的に拡大可能になったことで、そういう構造を取りやすくなったという背景もあります。また理論的には、グラフ理論」という数学的背景が根拠として後押しをしている形になります。そして技術的にその構造を扱う言語の発展や、利用事例の広がりも見ることが出来ます。このようなツール環境として「Neo4j」が代表的で人気を集めるようになっています。また、集積されたデータを利用する側の立場で理解しやすくするデータ表現(プレゼンテーション)手法も広まってきています。

    こういった形で取り扱えるデータ資産が増えると、これを効果的に、また継承可能な形で管理して行きたいという要求が出て来ます。それを実現する一つの手段として「データモデリング」の技術が必要です。それは、グラフデータベースでのデータ表現は(専門的な言葉になりますが)インスタンス同士の関係性の集合という形が基本になるため、欲求に任せて無制限にデータを増やしてゆくと、一体どのようなデータ種類や構成がデータベース内に表現されているかを把握しきれなくなってしまう危険性を持っているという意味です。従って、リレーショナル型データベースの設計でも使われていた「論理データモデリング」の考え方を取入れて基本的なグラフデータベース上のデータ構造を表現することが大切ということになります。その上でインスタンス同士の関係性(リンク)の表現を付加的に、また網羅的に設計情報として取り扱う設計習慣を早くから導入することが、将来の混乱度を軽減するための方法として必要だと、筆者は考えています。

    また、グラフデータベース利用の範囲を検討しておくことも必要になるでしょう。元来データ同士の関係性を直接表現してデータを増やして行くという性質上、データの全体量が拡大した場合、現状の管理方式ではデータの終着点が判別できない世界ということになります。それは、インターネット上の世界では終着点が見つからないということと同様です。これは、データ表現する値の集合を正確に知ろうとすると、何が結果(例えば合計値)として正確なものなのかを、利用者が保証できないという問題に繋がる可能性を含んでいるということです。利用者がどこかで限界を設定する(例えば、最大の探索距離を設定して、その先には進まず諦める)という形での利用になる可能性があるということです。そのような制約を考慮して利用範囲や形式を設定するという意味です。

    グラフデータベースの持つ特性を活かしながら、適切な利用形体を図って行くというのが、この新しい技術をうまく取り扱う秘訣になるものといえるでしょう。先に上げたNeo4jなどは、無料でも利用できる形で製品ダウンロードもできますし、またその利用に関する資料の提供も積極的に行われています。このコラムを参照した方で興味があれば、是非この製品の使い方を理解する上で早めに利用してみることをお勧めします。
  • 今回は、新しいデータ活用の形として着目され初めてているグラフデータベースについて触れてみました。最後に遅ればせのご挨拶ながら、関係各位には本年も宜しくお願い致します。