Delen via


Grafiek- en relationele databases vergelijken

Opmerking

Deze functie is momenteel beschikbaar als openbare preview-versie. Deze preview wordt geleverd zonder een service level agreement en wordt niet aanbevolen voor productieworkloads. Bepaalde functies worden mogelijk niet ondersteund of hebben mogelijk beperkte mogelijkheden. Zie Aanvullende gebruiksvoorwaarden voor Microsoft Azure previews voor meer informatie.

In dit artikel worden grafiekdatabases en relationele databases vergeleken. Het markeert belangrijke verschillen, use cases en voordelen in analyses. Gebruik deze informatie om te bepalen of u grafieken wilt gebruiken in Microsoft Fabric of een relationele database voor uw specifieke behoeften.

In een grafiekdatabase worden gegevens opgeslagen en opgevraagd als een netwerk van knooppunten (entiteiten) en randen (relaties). Deze benadering maakt het fundamenteel anders dan de indeling van tabellen en rijen van relationele databases. Grafiekdatabases werken goed voor het modelleren en analyseren van zeer verbonden gegevens, zoals sociale netwerken, kennisgrafieken, aanbevelingssystemen en fraudedetectie.

Belangrijkste verschillen

  • Grafiekdatabases: Organiseer gegevens als knooppunten en randen, en bewaar relaties expliciet. Doorkruising van verbindingen is efficiënt en vaak onafhankelijk van de totale grootte van de gegevensset.
  • Relationele databases: Gegevens in tabellen organiseren met rijen en kolommen. Gebruik JOIN-bewerkingen om relaties tijdens de querytijd af te leiden. Voor zeer verbonden gegevens kunnen deze bewerkingen complex en traag worden.

Query's uitvoeren op relaties: Joins versus traversals

Relationele databasequery's: Met vreemde sleutels worden gegevens in verschillende tabellen gekoppeld. Voor het ophalen van gerelateerde gegevens gebruiken relationele databases JOIN-bewerkingen om rijen uit meerdere tabellen te combineren. Deze methode werkt goed voor eenvoudige relaties, maar kan duur en complex worden voor diepe verbindingen of verbindingen met een variabele lengte.

Grafiekdatabasequery's: Sla relaties op als randen, zodat u rechtstreeks van het ene knooppunt naar het andere kunt gaan. Grafenqueries kunnen efficiënt navigeren door meerdere overspringen en complexe patronen. Met Graph querytalen zoals GQL kunt u eenvoudig traversals en patroonmatching uitdrukken in.

Voorbeeld:

GQL:

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

SQL (equivalent):

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

Opmerking

GQL is een ISO-gestandaardiseerde querytaal voor grafiekdatabases. Het is ontworpen voor efficiënte query's en manipulatie van grafiekgestructureerde gegevens. Dezelfde internationale werkgroep die toezicht houdt op SQL, ontwikkelt deze.

Gevolgen voor prestaties

Grafiekdatabases kunnen relationele systemen beter presteren voor query's die betrekking hebben op veel randen of onbekende diepten, met name voor deep-link-analyses of recursieve query's. Relationele databases excelleren bij setgeoriënteerde bewerkingen en aggregaties vanwege decennia aan optimalisatie.

Overwegingen met betrekking tot schaalvergroting

  • Relationele databases: Schaal normaal gesproken verticaal (grotere machines) en kan horizontaal worden geschaald via sharding en replicatie. Sharding van sterk verbonden schema's is complex en kan leiden tot overhead door netwerkoverschrijdende operaties.
  • Grafiekdatabases: Schaal verticaal en horizontaal. Gedistribueerde grafiekdatabases partitioneren grafieken over computers, met als doel gerelateerde knooppunten bij elkaar te houden voor efficiënte doorkruisingen.

Wanneer gebruikt u elk

Gebruik een grafiekdatabase als:

  • Uw gegevens zijn zeer verbonden en relatie-intensief (sociale netwerken, kennisgrafieken, aanbevelingen).
  • U moet een onbekend of variabel aantal hops doorlopen.
  • Het schema is in ontwikkeling of semi-gestructureerd.
  • U wilt intuïtieve modellering voor domeinen waar relaties centraal staan.

Gebruik een relationele database als:

  • Uw gegevens zijn meestal in tabelvorm of passen bij een goed gedefinieerde structuur.
  • Uw queries omvatten zware aggregaties of uitgebreide setoperaties.
  • U beschikt over bestaande hulpprogramma's of expertise die zijn afgestemd op SQL.

Hybride benaderingen

Veel projecten maken gebruik van beide typen databases: een relationele database voor transactionele kerngegevens en een grafiekdatabase voor gespecialiseerde analyse- of netwerkanalysefuncties.