Del via


Sammenlign graf- og relationsdatabaser

Notat

Denne funktion er i øjeblikket tilgængelig som offentlig prøveversion. Denne prøveversion leveres uden en serviceniveauaftale og anbefales ikke til produktionsarbejdsbelastninger. Visse funktioner understøttes muligvis ikke eller kan have begrænsede funktioner. For mere information, se Supplerende Brugsvilkår for Microsoft Azure Forhåndsvisninger.

Denne artikel sammenligner grafdatabaser og relationelle databaser. Den fremhæver nøgleforskelle, anvendelsestilfælde og fordele inden for analyse. Brug disse oplysninger til at beslutte, om du vil bruge Fabric Graph eller en relationel database til dine specifikke behov.

En grafdatabase gemmer og forespørger data som et netværk af noder (enheder) og kanter (relationer). Denne tilgang gør den fundamentalt anderledes end tabeller-og-række-formatet i relationelle databaser. Grafdatabaser fungerer godt til modellering og analyse af højt forbundne data, såsom sociale netværk, vidensgrafer, anbefalingssystemer og svindeldetektion.

Kerneforskelle

  • Graf databaser: Organiser data som noder og kanter, og gem relationer eksplicit. Gennemgang af forbindelser er effektiv og ofte uafhængig af den samlede datasætstørrelse.
  • Relationelle databaser: Organiser data i tabeller med rækker og kolonner. Brug JOIN-operationer til at udlede relationer ved forespørgselstidspunkt. For højt forbundne data kan disse operationer blive komplekse og langsomme.

Forespørgsler på relationer: joinforbindelser i forhold til krydsninger

Relationelle databaseforespørgsler: Fremmednøgler forbinder data i forskellige tabeller. For at hente relaterede data bruger relationsdatabaser JOIN-handlinger til at kombinere rækker fra flere tabeller. Denne metode fungerer godt til simple relationer, men kan blive dyr og kompleks for dybe eller variable længdeforbindelser.

Forespørgsler i grafdatabasen: Gem relationer som kanter, så du kan bevæge dig direkte fra én node til en anden. Grafforespørgsler kan effektivt navigere i flere hop og komplekse mønstre. Grafforespørgselssprog som GQL gør det nemt at udtrykke traversaler og mønstermatchning.

Eksempel:

GQL:

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

SQL (tilsvarende):

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

Notat

GQL er et ISO-standardiseret forespørgselssprog til grafdatabaser. Det er designet til effektiv forespørgsler og manipulation af grafstrukturerede data. Den samme internationale arbejdsgruppe, der fører tilsyn med SQL, udvikler det.

Konsekvenser for ydeevnen

Grafdatabaser kan overgå relationelle systemer for forespørgsler, der involverer mange kanter eller ukendte dybder, især til deep-link analyse eller rekursive forespørgsler. Relationelle databaser udmærker sig i mængdeorienterede operationer og aggregationer på grund af årtiers optimering.

Skaleringsovervejelser

  • Relationelle databaser: Skalerer typisk vertikalt (større maskiner) og kan skaleres horisontalt gennem sharding og replikation. Sharding af højt forbundne skemaer er komplekst og kan forårsage overhead på tværs af netværk.
  • Graf databaser: Skaler lodret og vandret. Distribuerede grafdatabaser partitionerer grafer på tværs af maskiner med det formål at holde relaterede noder sammen for effektive gennemgange.

Hvornår skal hver enkelt bruges?

Brug en grafdatabase, hvis:

  • Dine data er meget forbundne og relationstunge (sociale netværk, vidensgrafer, anbefalinger).
  • Du skal krydse et ukendt eller variabelt antal hop.
  • Skemaet er under udvikling eller semistruktureret.
  • Du vil have intuitiv modellering for domæner, hvor relationer er centrale.

Brug en relationel database, hvis:

  • Dine data er for det meste tabelformet eller passer til en veldefineret struktur.
  • Dine forespørgsler involverer tunge sammenlægninger eller handlinger med store sæt.
  • Du har eksisterende værktøjer eller ekspertise, der er tilpasset SQL.

Hybride tilgange

Mange projekter bruger begge typer databaser: en relationel database til kernetransaktionsdata og en grafdatabase til specialiserede analyse- eller netværksanalysefunktioner.