Freigeben ü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 Supplementale Nutzungsbedingungen für Microsoft Azure Previews.

In diesem Artikel werden Diagrammdatenbanken und relationale Datenbanken verglichen. Es hebt wichtige Unterschiede, Anwendungsfälle und Vorteile in der Analyse hervor. Verwenden Sie diese Informationen, um zu entscheiden, ob Fabric Graph oder eine relationale Datenbank für Ihre spezifischen Anforderungen verwendet werden soll.

Eine Graphdatenbank speichert und fragt Daten als Netzwerk von Knoten (Entitäten) und Kanten (Beziehungen). Dieser Ansatz unterscheidet sich grundlegend von dem Tabellen- und Zeilenformat relationaler Datenbanken. Graph-Datenbanken eignen sich gut zum Modellieren und Analysieren von hoch verbundenen Daten wie sozialen Netzwerken, Wissensdiagrammen, Empfehlungssystemen 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. Verwenden Sie JOIN-Vorgänge, um Beziehungen zur Abfragezeit abzuleiten. Für hoch verbundene Daten können diese Vorgänge komplex und langsam werden.

Abfragen von Beziehungen: Verknüpfungen im Vergleich zu Traversalen

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

Graph-Datenbankabfragen: Speichern Sie Beziehungen als Kanten, sodass Sie direkt von einem Knoten zu einem anderen wechseln können. 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. Es wurde für eine effiziente Abfrage und Manipulation von diagrammstrukturierten Daten entwickelt. Die gleiche internationale Arbeitsgruppe, die SQL überwacht, entwickelt sie.

Folgen für die Leistung

Graph-Datenbanken können relationale Systeme bei Abfragen übertreffen, die viele Kanten oder unbekannte Tiefen umfassen, insbesondere bei Analysen von tiefen Verbindungen oder rekursiven Abfragen. Relationale Datenbanken zeichnen sich aufgrund jahrzehntelanger Optimierung bei set-orientierten Arbeitsabläufen und Aggregationen aus.

Überlegungen zur Skalierung

  • Relationale Datenbanken: skalieren in der Regel vertikal (größere Computer) und können sie horizontal durch Sharding und Replikation skalieren. Das Sharding hoch verbundener Schemas ist komplex und kann zu netzwerkübergreifendem Overhead führen.
  • Graph-Datenbanken: Vertikal und horizontal skalieren. Verteilte Graphdatenbanken partitionieren Graphen auf verschiedenen Computern, um verwandte Knoten für effiziente Traversale zusammenzuhalten.

Einsatzgebiete der jeweiligen Varianten

Verwenden Sie eine Diagrammdatenbank, 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 beide Arten von Datenbanken: eine relationale Datenbank für kerntransaktionale Daten und eine Graphdatenbank für spezielle Analyse- oder Netzwerkanalysefeatures.