グラフ型データベースの構成について

2016.12.22

こんにちは!YDCのれいです。

今回はNoSQLの代表的なデータベースであるグラフ型データベースの構成について紹介します。
グラフ型データベースとは、グラフ理論に基づいたデータベースです。
「グラフ」というと折れ線グラフや円グラフなどを思い浮かべる人が多いかと思いますが、本来のグラフというものはデータの構造を視覚的に表すために使用されるものです。
データの構造は従来のリレーションではなく、ネットワーク状になっており、検索などの機能を利用した場合に効力を発揮します。

これからグラフ型データベースの構成要素となる項目について説明します。

ノードとリレーション

グラフの基本要素はノードとリレーションです。
ノードはグラフにおける最小単位です。人や会社、所属、物といった調査する対象を表します。
リレーションはノードとノードの間を繋ぐ接続線です。
リレーションには起点と終点を決めて、方向性を持たせることができます。

nosql_1.jpg

図1

図1は2つのノードと1つのリレーションで構成された単純なグラフを表します。
これをリレーショナルデータベース(RDB)のように表で表すと、図2のようになります。

nosql_2.png

図2

プロパティ

ノードとリレーションで対象と関連性を表すことができます。
しかし、これだけでは表現が限られています。グラフ型データベースでは、ノードとリレーションに対して情報を付加するためにプロパティを用いることができます。
プロパティはキーと値のペアを持つことができます。
図3はノードとリレーションに対して属性を付与している図です。

nosql_3.jpg

図3

ノードの名前とノードやリレーションプロパティの組み合わせで、RDBでいうテーブルのレコードのように扱うことができます。
ただし、RDBと異なり、ノードに紐づけられているプロパティごとにキー(RDBで列に相当)と値を設定できるため、自由に情報を持つことができます。

図3のノードとノードのプロパティの組み合わせを表の形式で表すと図4になります。

nosql_4.jpg

図4

図3のノードとリレーションのプロパティの組み合わせを表の形式で表すと、図5のようになります。

nosql_5.jpg

図5

ラベルとタイプ

同じタイプのノードをまとめたい場合、ラベルを使用することで実現可能です。例えば「人」、「会社」、「商品」などは同じタイプごとにラベルとしてまとめることができます。
例えば、以下のノードがあります。

nosql_6.jpg

図6

ラベル「会社」はテーブルで表示すると、図7になります。

nosql_7.jpg

図7

なお、ラベルはノードにしか付けることができません。ラベルでノードをまとめることにより、RDBでいうテーブルのように扱うことができます。
一方、リレーションをまとめたい場合は、タイプを使用することで実現可能です。
例えば会社と従業員のリレーションをまとめる場合は、以下のようなタイプが考えられます。

  • 雇用している
  • 退職している
  • 長期休暇している

上記3つのタイプはRDBで表現する場合、3つのテーブルで定義できます。
連結ノード、リレーションの属性はテーブルのフィールドに該当します。
図8のように株式会社YDCとYDC太郎の間に雇用しているというタイプをつけることができます。

nosql_8.jpg

図8

図8は表の形式で表すと、図9のようになります。

nosql_9.jpg

図9

以上の記述より、ノード、リレーション、プロパティ、ラベル、タイプの持ち方は図10のグラフで表示できます。

nosql_10.jpg

図10

まとめ

いかがでしょうか。
グラフ型データベースの構成についてわかりましたでしょうか。

グラフ型のデータベースは人間の感覚に近いデータモデルを使います。RDBのようなテーブルとテーブルの間に配置するようなテーブルは必要なく、リレーションによってノードを結ぶことができます。
また、RDBのように正規化、主キー、外部キーなどのルールに従ってデータベースを設計する必要もなく、人間が理解しやすい形式のデータベースを設計することによって、より良いアプリケーションを開発できます。

Standby Expressに関するお問合わせ

  • TEL 042-333-6217
  • FAX 042-352-6101
  • LINE
  • Mail