Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
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. Voor meer informatie, zie Aanvullende Gebruiksvoorwaarden voor Microsoft Azure Previews.
In dit artikel vergelijken we grafiekdatabases en relationele databases, waarbij belangrijke verschillen, use cases en voordelen in analyses worden gemarkeerd. U kunt evalueren of u Graph wilt gebruiken voor Microsoft Fabric of een relationele database op basis van uw specifieke behoeften.
In een grafiekdatabase worden gegevens opgeslagen en opgevraagd als een netwerk van knooppunten (entiteiten) en randen (relaties), waardoor deze fundamenteel verschillen van de indeling tabellen en rijen van relationele databases. Grafendatabases blinken uit in het modelleren en analyseren van sterk 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. Relaties worden afgeleid tijdens het uitvoeren van query's met behulp van JOIN-bewerkingen, die complex en traag kunnen worden voor zeer verbonden gegevens.
Query's uitvoeren op relaties: Joins versus traversals
Relationele databasequeries: Gegevens in verschillende tabellen worden gekoppeld via vreemde sleutels. Voor het ophalen van gerelateerde gegevens gebruiken relationele databases JOIN-bewerkingen om rijen uit meerdere tabellen te combineren. Dit werkt goed voor eenvoudige relaties, maar kan duur en complex worden voor diepe of variabele verbindingen.
Grafiekdatabasequery's: Relaties worden opgeslagen als randen, waardoor directe doorkruising van het ene knooppunt naar het andere mogelijk is. Grafenqueries kunnen efficiënt navigeren door meerdere overspringen en complexe patronen. Met Graph querytalen zoals GQL kunt u eenvoudig traversals en patroonmatching uitdrukken in.
Example:
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, 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 met 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 van optimalisatie.
Overwegingen voor schalen
- Relationele databases: Schaal normaal gesproken verticaal (grotere machines) en kan horizontaal worden geschaald via sharding en replicatie. Sharding van hoog verbonden schema's is complex en kan leiden tot overhead tussen netwerken.
- 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 gebruiken beide: een relationele database voor transactionele kerngegevens en een grafiekdatabase voor gespecialiseerde analyse- of netwerkanalysefuncties.