グラフ・データ・モデリング例
大規模なデータ・モデル作成の詳細。
もっと複雑なデータ・モデルを作成するために、さらにレシピの例を考えてみましょう。この例では、グラフ・データベース・データ・モデルの作成の背後にある考え方をいくつか説明します。
手順
-
言うまでもなく、頂点にはエッジが接続されている必要があります。人物とレシピ以外に、追加が可能なタイプの頂点は何でしょうか?
驚くことではありませんが、ingredient頂点ラベルを追加できます。この頂点にはいくつかのプロパティがあります。頂点プロパティになりそうなものは思い浮かびましたか?
食材の頂点になる可能性が最も高いプロパティは、食材のname(名前)です。食材の名前を特定するのに
ingredientName
を使用することができますが、スキーマを小さくしておくとDSE Graphで便利です。この例では、各頂点ラベルにname
を再使用します。 -
食材の頂点プロパティにとって重要な可能性は他にもあります。それについて考え、他の可能性をいくつか書き出してみましょう。後で追加します。それでは、person、recipe、およびingredientをつなぐエッジを検討しましょう。
異なるタイプのエッジを識別するために使用できるエッジ・ラベルは何でしょうか?前の例で、personとrecipeは、createdのエッジで結ばれていることを見てきました。
食材はレシピに含める必要があるため、includesエッジは、2つの頂点を結ぶことができます。
-
エッジには、後でクエリーの絞り込みに使用できるプロパティが添付されています。
includesには、どのようなエッジ・プロパティが適しているでしょうか?
レシピに含まれる食材のamountが重要です。小さじ1杯の塩ではなく1カップの塩を使えば、結果に大きな違いが生じてしまいます。
-
今日、人々はオンラインや料理本でレシピを公開しています。レストランでは、レシピから固定価格の食事を作ります。消費者は、作ろうとしているレシピをレビューします。その結果、データの絡み合ったグラフになります。
-
このグラフに追加できる追加の頂点とエッジは多数あります。たとえば、レシピ作成者とレビュー担当者(両方ともperson)の性別を含めることができます。食材の栄養情報は、レシピのカロリーから導き出すことができます。レシピが提供するメニューの数は、料理に役立ちます。結果として得られるWebデータは急速に増加する可能性があります。
100人の作成者、1000のレシピ、1万のレビューを追加すると、グラフの巨大さが明らかになります。ただし、後のセクションで説明するように、DSE Graphは複雑な検索とパターン・マッチングを単純で強力なソリューションに変換できます。
次のタスク
データ・モデルはグラフ作成の最初のステップです。データ・モデルを使用すると、DSE Graphによるデータの格納方法を定義するスキーマを作成できます。