Merk
Tilgang til denne siden krever autorisasjon. Du kan prøve å logge på eller endre kataloger.
Tilgang til denne siden krever autorisasjon. Du kan prøve å endre kataloger.
Note
Denne funksjonen er for øyeblikket i offentlig forhåndsversjon. Denne forhåndsvisningen leveres uten en tjenesteavtale, og anbefales ikke for produksjonsarbeidsbelastninger. Enkelte funksjoner støttes kanskje ikke eller kan ha begrensede funksjoner. Hvis du vil ha mer informasjon, kan du se Supplerende vilkår for bruk for Microsoft Azure Previews.
I denne artikkelen sammenligner vi grafdatabaser og relasjonsdatabaser, og fremhever viktige forskjeller, brukstilfeller og fordeler i analyse. Du kan vurdere om du vil bruke Graph for Microsoft Fabric eller en relasjonsdatabase basert på dine spesifikke behov.
En grafdatabase lagrer og spør etter data som et nettverk av noder (enheter) og kanter (relasjoner), noe som gjør den fundamentalt forskjellig fra tabell-og-rad-formatet til relasjonsdatabaser. Grafdatabaser utmerker seg ved å modellere og analysere svært tilkoblede data, for eksempel sosiale nettverk, kunnskapsgrafer, anbefalingssystemer og svindeldeteksjon.
Kjerne forskjeller
- Graf databaser: Organiser data som noder og kanter, og lagre relasjoner eksplisitt. Kryssing av tilkoblinger er effektivt og ofte uavhengig av den totale datasettstørrelsen.
- Relasjonelle databaser: Organiser data i tabeller med rader og kolonner. Relasjoner utledes på spørringstidspunktet ved hjelp av JOIN-operasjoner, som kan bli komplekse og trege for svært tilkoblede data.
Spørring av relasjoner: sammenføyninger kontra traverseringer
Spørringer i relasjonsdatabasen: Data i ulike tabeller kobles sammen med sekundærnøkler. For å hente relaterte data bruker relasjonsdatabaser JOIN-operasjoner til å kombinere rader fra flere tabeller. Dette fungerer bra for enkle relasjoner, men kan bli dyrt og komplekst for dype eller variable lengdeforbindelser.
Spørringer i grafdatabasen: Relasjoner lagres som kanter, noe som tillater direkte traversering fra en node til en annen. Grafspørringer kan effektivt navigere i flere hopp og komplekse mønstre. Grafspørringsspråk som GQL gjør det enkelt å uttrykke traverser og mønstermatching.
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';
Note
GQL er et ISO-standardisert spørringsspråk for grafdatabaser, designet for effektiv spørring og manipulering av grafstrukturerte data. Den samme internasjonale arbeidsgruppen som fører tilsyn med SQL utvikler den.
Implikasjoner for ytelse
Grafdatabaser kan utkonkurrere relasjonssystemer for spørringer som involverer mange kanter eller ukjente dybder, spesielt for dypkoblingsanalyse eller rekursive spørringer. Relasjonsdatabaser utmerker seg ved settorienterte operasjoner og aggregasjoner på grunn av flere tiår med optimalisering.
Viktige punkter om skalering
- Relasjonelle databaser: Skaler vanligvis vertikalt (større maskiner) og kan skaleres horisontalt via fragmentering og replikering. Fragmentering av høyt tilkoblede skjemaer er komplekst og kan medføre overhead på tvers av nettverk.
- Graf databaser: Skaler vertikalt og horisontalt. Distribuerte grafdatabaser partisjonerer grafer på tvers av maskiner, med sikte på å holde relaterte noder sammen for effektive gjennomganger.
Når du skal bruke hver
Bruk en grafdatabase hvis:
- Dataene dine er svært sammenkoblede og relasjonstunge (sosiale nettverk, kunnskapsgrafer, anbefalinger).
- Du må krysse et ukjent eller variabelt antall hopp.
- Skjemaet er under utvikling eller halvstrukturert.
- Du vil ha intuitiv modellering for domener der relasjoner er sentrale.
Bruk en relasjonsdatabase hvis:
- Dataene dine er for det meste tabellformet eller passer til en veldefinert struktur.
- Spørringene dine involverer tunge aggregasjoner eller store settoperasjoner.
- Du har eksisterende verktøy eller ekspertise på linje med SQL.
Hybride tilnærminger
Mange prosjekter bruker begge: en relasjonsdatabase for kjernetransaksjonsdata, og en grafdatabase for spesialiserte analyse- eller nettverksanalysefunksjoner.