Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
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. Du kan finde flere oplysninger under Supplerende vilkår for anvendelse af Microsoft Azure Previews.
I denne artikel sammenligner vi grafdatabaser og relationsdatabaser og fremhæver vigtige forskelle, use cases og fordele i analyser. Du kan vurdere, om du vil bruge Graph til Microsoft Fabric eller en relationsdatabase baseret på dine specifikke behov.
En grafdatabase gemmer og forespørger data som et netværk af noder (enheder) og kanter (relationer), hvilket gør den fundamentalt forskellig fra tabel- og rækkeformatet i relationsdatabaser. Grafdatabaser udmærker sig ved modellering og analyse af meget forbundne data, såsom sociale netværk, vidensgrafer, anbefalingssystemer og afsløring af svindel.
Kerne forskelle
- 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. Relationer udledes på forespørgselstidspunktet ved hjælp af JOIN-handlinger, som kan blive komplekse og langsomme for meget forbundne data.
Forespørgsler på relationer: joinforbindelser i forhold til krydsninger
Forespørgsler i relationsdatabasen: Data i forskellige tabeller er sammenkædet via fremmede nøgler. For at hente relaterede data bruger relationsdatabaser JOIN-handlinger til at kombinere rækker fra flere tabeller. Dette fungerer godt for simple relationer, men kan blive dyrt og komplekst for dybe eller variable længdeforbindelser.
Forespørgsler i grafdatabasen: Relationer gemmes som kanter, hvilket giver mulighed for direkte gennemgang fra en 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, designet til effektiv forespørgsel og manipulation af grafstrukturerede data. Den samme internationale arbejdsgruppe, der fører tilsyn med SQL, udvikler det.
Konsekvenser for ydeevne
Grafdatabaser kan overgå relationssystemer for forespørgsler, der involverer mange kanter eller ukendte dybder, især til deep-link-analyse eller rekursive forespørgsler. Relationsdatabaser udmærker sig ved sætorienterede operationer og aggregeringer på grund af årtiers optimering.
Overvejelser i forbindelse med skalering
- Relationelle databaser: Skalerer typisk lodret (større maskiner) og kan skaleres vandret via sharding og replikering. Sharding af højt forbundne skemaer er kompleks og kan medføre 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 man bruge hver
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 relationsdatabase, 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: en relationsdatabase til centrale transaktionsdata og en grafdatabase til specialiserede analyse- eller netværksanalysefunktioner.