データ・モデリングの概念の詳細

データ・モデリングの概念の詳細。

グラフ・データ・モデルを拡張して、複雑な関係を包含することができます。サブグラフを考えれば、グラフ全体をより良く把握できます。データの新しい層を含めるようにレシピ・データ・モデルを変更できます。

材料について検討してみましょう。多くのプロパティを材料に追加できます。
カテゴリー(category)
野菜、フルーツ、パスタ、肉
栄養価
ビタミン、たんぱく質、炭水化物、脂肪の割合
カロリー
キロカロリー

材料のプロパティ値の選択は簡単なことに思われるかもしれませんが、まだ検討の余地があります。例として、categoryについて検討してみましょう。材料の説明に使用するカテゴリーの数によって、category頂点ラベルを作る方が有利な場合もあれば、categoryプロパティを作る方が有利な場合もあります。頂点をグラフ探索の出発点にすることもできますが、頂点のプロパティはそうすることができません。「どの材料が乳製品ですか?」という質問をするには、乳製品に分類されたすべての材料を検索するために、dairy頂点の出発点に、1材料につき1つの辺ホップが必要です。

ただし、乳製品である材料が多すぎると、スーパー・ノード、つまり無数の辺を持つホットスポットであるノードにより、乳製品材料を検索するクエリーの速度が低下します。プロパティのインデックス作成を使用することで、材料カテゴリーを、頂点ラベルではなく、プロパティとしてより良くモデル化できます。

栄養素は、ビタミンC、ビタミンD、カルシウム、ナトリウムのような、所定の数の項目です。nutrientの頂点ラベルを作成し、パーセンテージを使用して材料と栄養素の間の辺を重み付けすることで、もう1つの次元をグラフに追加します。

材料が1つだけである場合に生じる関係を調べてみましょう。

さらに、材料が数百個もある場合のグラフについて考えてみてください。これで数千個にもなればどうなるでしょう。栄養素の頂点ラベルを作る方が良いのか、栄養素の頂点プロパティを作る方が良いのか、検討してみてください。

材料プロパティを使用して作成したアプリケーションの可能性について考えてみましょう。冷蔵庫を覗いたらキノコと牛肉があったので、グラフ・データベースをクエリーし、ビーフ・ストロガノフのようなレシピを検索できます。冷蔵庫内の食料品がいずれタグ付けされるようになれば、庫内の品目から、今晩の夕食のメニューを冷蔵庫に教えてもらうことも考えられます。