Teilen über


Vergleichen von Graph- und relationalen Datenbanken

Hinweis

Dieses Feature ist zurzeit als öffentliche Preview verfügbar. Diese Vorschauversion wird ohne Vereinbarung zum Servicelevel bereitgestellt und ist nicht für Produktionsworkloads vorgesehen. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar. Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.

In diesem Artikel vergleichen wir Graphdatenbanken und relationale Datenbanken, wobei wichtige Unterschiede, Anwendungsfälle und Vorteile in der Analyse hervorgehoben werden. Sie können auswerten, ob Graph für Microsoft Fabric oder eine relationale Datenbank basierend auf Ihren spezifischen Anforderungen verwendet werden soll.

Eine Graphdatenbank speichert und fragt Daten als Netzwerk von Knoten (Entitäten) und Kanten (Beziehungen), wodurch sie sich grundlegend vom Tabellen- und Zeilenformat relationaler Datenbanken unterscheidet. Graph-Datenbanken zeichnen sich durch die Modellierung und Analyse hoch vernetzter Daten aus, wie z. B. soziale Netzwerke, Wissensdiagramme, Empfehlungssysteme und Betrugserkennung.

Kernunterschiede

  • Graph-Datenbanken: Organisieren Sie Daten als Knoten und Kanten, und speichern Sie Beziehungen explizit. Das Durchlaufen von Verbindungen ist effizient und häufig unabhängig von der Gesamtgröße des Datasets.
  • Relationale Datenbanken: Organisieren von Daten in Tabellen mit Zeilen und Spalten. Beziehungen werden zur Abfragezeit mithilfe von JOIN-Vorgängen abgeleitet, die für hoch verbundene Daten komplex und langsam werden können.

Abfragen von Beziehungen: Verknüpfungen im Vergleich zu Traversalen

Relationale Datenbankabfragen: Daten in verschiedenen Tabellen werden über Fremdschlüssel verknüpft. Zum Abrufen verwandter Daten verwenden relationale Datenbanken JOIN-Vorgänge, um Zeilen aus mehreren Tabellen zu kombinieren. Dies funktioniert gut für einfache Beziehungen, kann aber für tiefe oder variable Verbindungen teuer und komplex werden.

Graph-Datenbankabfragen: Beziehungen werden als Kanten gespeichert, sodass direktes Durchlaufen von einem Knoten zu einem anderen möglich ist. Graph-Abfragen können effizient mehrere Sprünge und komplexe Muster durchqueren. Graph-Abfragesprachen wie GQL erleichtern das Ausdrücken von Traversalen und Musterabgleich.

Example:

GQL:

MATCH (p:Person)-[:friendsWith]->(friend)-[:purchased]->(o:Order)
WHERE p.name = 'Alice';
RETURN o

SQL (gleichwertig):

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';

Hinweis

GQL ist eine ISO-standardisierte Abfragesprache für Graphdatenbanken, die für eine effiziente Abfrage und Manipulation von diagrammstrukturierten Daten entwickelt wurde. Die gleiche internationale Arbeitsgruppe, die SQL überwacht, entwickelt sie.

Leistungsauswirkungen

Graph-Datenbanken können relationale Systeme für Abfragen mit vielen Kanten oder unbekannten Tiefen outperformieren, insbesondere für Deep-Link-Analysen oder rekursive Abfragen. Relationale Datenbanken zeichnen sich bei set-orientierten Vorgängen und Aggregationen aufgrund ihrer jahrzehntelangen Optimierung aus.

Überlegungen zur Skalierung

  • Relationale Datenbanken: Skalieren in der Regel vertikal (größere Rechner) und können horizontal durch Sharding und Replikation skaliert werden. Das Sharding hoch verbundener Schemas ist komplex und kann netzwerkübergreifender Aufwand verursachen.
  • Graph-Datenbanken: Vertikal und horizontal skalieren. Verteilte Graphdatenbanken partitionieren Graphen auf verschiedenen Computern, um verwandte Knoten für effiziente Traversale zusammenzuhalten.

Wann Sie welche verwenden sollten

Verwenden Sie eine Graph-Datenbank, wenn:

  • Ihre Daten sind stark verbunden und beziehungsschwer (soziale Netzwerke, Wissensdiagramme, Empfehlungen).
  • Sie müssen eine unbekannte oder variable Anzahl von Netzwerk-Hops überwinden.
  • Das Schema ist im Wandel oder halbstrukturiert.
  • Sie möchten intuitive Modellierung für Domänen, in denen Beziehungen zentral sind.

Verwenden Sie eine relationale Datenbank, wenn:

  • Ihre Daten sind meist tabellarisch oder passen zu einer gut definierten Struktur.
  • Ihre Abfragen umfassen umfangreiche Aggregationen oder Vorgänge mit großen Datenmengen.
  • Sie verfügen über vorhandene Tools oder Expertise, die mit SQL abgestimmt sind.

Hybridansätze

Viele Projekte verwenden beides: eine relationale Datenbank für Transaktionskerndaten und eine Graphdatenbank für spezialisierte Analyse- oder Netzwerkanalysefunktionen.