グラフ データベースは、ノード (エンティティ) とエッジ (リレーションシップ) のネットワークとしてデータを格納およびクエリします。 この方法は、リレーショナル データベースのテーブルと行の形式とは異なります。 グラフ データベースは、ソーシャル ネットワーク、ナレッジ グラフ、レコメンデーション システム、不正検出など、高度に接続されたデータのモデリングと分析に優れています。
この記事では、グラフ データベースとリレーショナル データベースを比較します。 分析における主な違い、ユース ケース、利点が強調されています。 この情報を使用して、 Microsoft Fabric でグラフ を使用するか、特定のニーズに対してリレーショナル データベースを使用するかを決定します。
グラフ データベースとリレーショナル データベースの主な違い
- グラフ データベース: データをノードとエッジとして整理し、リレーションシップを明示的に格納します。 接続の走査は効率的であり、多くの場合、データセットの合計サイズに依存しません。
- リレーショナル データベース: 行と列を使用してテーブル内のデータを整理します。 クエリ時にリレーションシップを推論するには、JOIN 操作を使用します。 高度に接続されたデータの場合、これらの操作は複雑で低速になる可能性があります。
リレーションシップのクエリ: 結合とトラバーサル処理
リレーショナル データベース クエリ: 外部キーは、異なるテーブル内のデータをリンクします。 関連データを取得するために、リレーショナル データベースは JOIN 操作を使用して複数のテーブルの行を結合します。 単純なリレーションシップの場合、JOIN は正常に動作します。 しかし、ディープ接続または可変長接続では、コストが高く複雑になる可能性があります。
Graph データベース クエリ: リレーションシップをエッジとして格納し、ノード間を直接走査できるようにします。 グラフ クエリでは、複数のホップと複雑なパターンを効率的に移動できます。 Graph クエリ言語 (GQL) などのグラフ クエリ言語を使用すると、トラバーサルやパターン マッチングを簡単に表現できます。
Example:
GQL:
MATCH (p:Person)-[:friendsWith]->(friend)-[:purchased]->(o:Order)
WHERE p.name = 'Alice';
RETURN o
SQL (同等):
SELECT o.*
FROM Person AS p
JOIN Friends_With AS fw ON p.id = fw.person_id
JOIN Person AS friend ON fw.friend_id = friend.id
JOIN Purchased AS pur ON friend.id = pur.person_id
JOIN "Order" AS o ON pur.order_id = o.id
WHERE p.name = 'Alice';
注
GQL は、グラフ データベース用の ISO 標準化クエリ言語です。 これは、グラフ構造化データの効率的なクエリと操作のために設計されています。 SQL を監督する同じ国際的な作業グループが、それを開発しています。
グラフ データベースとリレーショナル データベースのパフォーマンスへの影響
グラフ データベースは、特にディープ リンク分析や再帰クエリの場合、多くのエッジまたは不明な深さを伴うクエリのリレーショナル データベースよりも優れたパフォーマンスを発揮できます。 リレーショナル データベースは、数十年にわたる最適化により、セット指向の操作と集計に優れています。 Microsoft Fabric のグラフでは、クエリ エンジンは、OneLake に格納されている大規模なグラフ間のトラバーサルとパターン マッチング用に最適化されています。
グラフ データベースとリレーショナル データベースのスケーリングに関する考慮事項
- リレーショナル データベース: 通常、垂直方向 (より大きなマシン) にスケーリングし、シャーディングとレプリケーションを通じて水平方向にスケーリングできます。 高度に接続されたスキーマのシャーディングは複雑であり、ネットワーク間のオーバーヘッドが発生する可能性があります。
- グラフ データベース: 垂直方向と水平方向にスケーリングします。 分散グラフ データベースはマシン間でグラフをパーティション分割し、効率的なトラバーサルのために関連ノードを一緒に保持することを目的とします。
グラフ データベースまたはリレーショナル データベースを使用する場合
次の場合は、グラフ データベースを使用します。
- データは接続性が高く、リレーションシップが多い (ソーシャル ネットワーク、ナレッジ グラフ、推奨事項)。
- 不明または可変のホップ数を経由する必要があります。
- スキーマが進化しているか、半構造化されています。
- リレーションシップが中心となるドメインの直感的なモデリングが必要です。
リレーショナル データベースは、次の場合に使用します。
- データは主に表形式であるか、明確に定義された構造に適合します。
- クエリには、大量の集計または大規模なセット操作が含まれます。
- SQL に合わせた既存のツールまたは専門知識があります。
グラフ データベースとリレーショナル データベースを使用したハイブリッド アプローチ
多くのプロジェクトでは、コア トランザクション データ用のリレーショナル データベースと、特殊な分析またはネットワーク分析機能用のグラフ データベースという両方の種類のデータベースが使用されています。 Microsoft Fabric では、グラフを同じワークスペース内の他のデータ ストアと組み合わせて、個別のシステム間でデータを移動することなく、リレーショナル機能とグラフ機能の両方を提供できます。