5

関係間の関係のモデリングが必要なプロジェクトにグラフ データベースを使用することを検討しています。たとえば、A と B の同点は、C と D の同点を条件とする場合があります。

また、ノード間の関係やその他の関係をモデル化する必要もあります。触媒関係が良い例かもしれません。エージェント X は、エージェント Y と Z の間の関係を促進します。関係には、関係を説明するプロパティが含まれている必要があります。

ノードとリレーションシップを同じタイプから継承させることで、これを実現するリレーショナル データベースを作成できます。したがって、タイプごとのデータベース構造のテーブルには、BaseType テーブルの主キーと、サブタイプ テーブルとの 1 対 1 の関係 (Node および Relationship) があります。Relationship テーブルには、BaseType テーブルへの 3 つの外部キーがあります。1 つは主キーで、他の 2 つはリレーションシップのソースとターゲットを構成します。したがって、ソースとターゲットの一方または両方を関係タイプにすることができます。

ただし、これには小さなオブジェクトの多数の結合が含まれており、グラフ DB で最適に機能するデータベースの説明に適合します。

要求に応じた図 - 試みられた解決策を含む。

AB関係はCD関係に影響を与える

4つのエージェント間の触媒関係

リレーションシップ ノードを作成して問題を解決しようとしています。

触媒関係の可能な解決策

他の関係に影響を与える関係の可能な解決策

したがって、ここで提案する解決策には、さらに多くのノードを作成することが含まれます。これでうまくいくと思いますが、不必要に複雑にしているのだろうかと思います。

最後の図 - リレーショナル データベース ソリューション。これは少しきれいに見えますが、Graph db アプローチほど柔軟ではありません。そして、おそらくそれほど効率的ではありませんか? ここに画像の説明を入力

4

2 に答える 2

1

ノード/頂点を追加してこれらの接続関係を解決することにより、「エッジのあるエッジ」をモデル化するアプローチは理にかなっています。プロパティ グラフ モデルを公開するグラフ データベース ( Neo4jTitan、その他のブループリント対応グラフなど) では、ハイパーグラフのシミュレーションがその機能を実現する正しい方法です。gremlin-users メーリング リストでは、現在ブループリントのコンテキストでこのトピックについて議論している進行中の議論があります...ここで読むことができます。

于 2013-10-26T10:43:52.257 に答える