共用方式為


比較圖形和關聯式資料庫

備註

這項功能目前處於公開預覽狀態。 此預覽版是在沒有服務等級協定的情況下提供,不建議用於生產工作負載。 可能不支援特定功能,或可能已經限制功能。 如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款

在本文中,我們比較了圖形資料庫和關聯式資料庫,重點介紹了分析的主要差異、用例和優勢。 您可以根據您的特定需求評估是否要使用 Graph for Microsoft Fabric 或關聯式資料庫。

圖形資料庫將資料儲存和查詢為節點(實體)和邊緣(關係)的網絡,使其與關聯式資料庫的表和行格式有著根本的不同。 圖形資料庫擅長對高度連接的數據進行建模和分析,例如社交網路、知識圖譜、推薦系統和詐欺偵測。

核心差異

  • 圖形資料庫: 將資料組織為節點和邊緣,明確儲存關係。 遍歷連接非常有效率,並且通常與資料集的總大小無關。
  • 關聯式資料庫: 在具有行和列的表格中組織資料。 關聯性是在查詢時使用 JOIN 作業推斷出來的,對於高度連線的資料來說,這可能會變得複雜且緩慢。

查詢關係:聯結與遍歷

關聯式資料庫查詢: 不同表中的資料透過外鍵連結。 為了檢索相關數據,關聯式資料庫使用 JOIN 操作來組合多個表中的行。 這對於簡單的關係很有效,但對於深度或可變長度的連接可能會變得昂貴且複雜。

圖形資料庫查詢: 關係儲存為邊,允許從一個節點直接遍歷到另一個節點。 圖形查詢可以有效地導航多個躍點和複雜的模式。 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 的同一國際工作小組正在開發它。

效能影響

對於涉及許多邊緣或未知深度的查詢,圖形資料庫的性能可以優於關聯式系統,特別是對於深度連結分析或遞迴查詢。 由於數十年的最佳化,關聯式資料庫擅長以集合為導向的操作和聚合。

擴展性考量

  • 關聯式資料庫: 通常會垂直調整 (較大的機器),並可透過分區和複寫進行水平調整。 分片高連結的模式很複雜,而且可能會產生跨網路的額外負擔。
  • 圖形資料庫: 垂直和水平縮放。 分散式圖資料庫跨機器對圖進行分區,旨在將相關節點保持在一起以實現高效遍歷。

何時分別使用

在下列情況下使用圖形資料庫:

  • 您的數據高度連接且關係密集(社交網絡、知識圖譜、推薦)。
  • 您需要遍歷未知或可變的網路節點數。
  • 模式正在演進或處於半結構化狀態。
  • 您需要對以關係為核心的網域進行直覺式建模。

在下列情況下使用關聯式資料庫:

  • 您的資料大多是表格或符合明確定義的結構。
  • 您的查詢涉及大量彙總或大型集合作業。
  • 您擁有與 SQL 一致的現有工具或專業知識。

混合方法

許多專案同時使用:用於核心交易資料的關聯式資料庫,以及用於專用分析或網路分析功能的圖形資料庫。