Ga naar hoofdinhoud
Data-engineering

Wat is een graphdatabase? Een beginnersgids

Verken de intrigerende wereld van graphdatabases met onze beginnersgids. Begrijp gegevensrelaties, duik in de vergelijking tussen graph- en relationele databases, en ontdek praktische use-cases.
Kurtis Pykes 's photo
Kurtis Pykes
Bijgewerkt · 11 min lezen

Verken met AI

ChatGPTClaudePerplexity

Maak je gratis account aan

Oefen en volg je voortgang.

Ga Verder Met Google
Door verder te gaan accepteer je onze Gebruiksvoorwaarden, ons Privacybeleid en dat je gegevens worden opgeslagen in de VS.

Als je ooit een truecrimemovie hebt gekeken, ken je de kracht van lijntjes trekken tussen relaties al. Er is altijd een scène met een muur vol hoofdverdachten en allerlei krantenknipsels die hen met elkaar verbinden.

Stel je nu voor dat je die muur voorziet van een wiskundige motor die razendsnel de verschillende relaties kan bevragen. Dat is in essentie een graphdatabase.

In dit artikel behandelen we de volgende onderwerpen:

  • Wat is een graphdatabase?
  • Graphdatabases vs. relationele databases
  • De componenten van een graphdatabase
  • Use-cases voor graphdatabases

Wat is een graphdatabase?

Een graphdatabase is een gespecialiseerde, doelgerichte platformoplossing om gegevens van associatieve en contextuele aard te creëren en te manipuleren. De graaf zelf bevat knooppunten, randen en eigenschappen die samen gebruikers in staat stellen data weer te geven en op te slaan op een manier die relationele databases niet aankunnen.

Het hoofdconcept van een graphdatabasesysteem is een relatie. Relaties zijn first-class citizens — dit betekent dat alles wat je met alle andere elementen kunt doen, ook met een relatie kan. Gegevens worden in een graaf met elkaar in verband gebracht om een verzameling knooppunten en randen op te slaan, waarbij de randen de relatie tussen knooppunten vertegenwoordigen.

Relaties zorgen ervoor dat data binnen het systeem direct aan elkaar gekoppeld kan worden. Relaties bevragen in een graphdatabase gaat snel, omdat ze op een manier worden opgeslagen die niet verandert. Je kunt ze ook visualiseren, wat ze ideaal maakt om inzichten te halen uit sterk onderling verbonden data.

Een weergave van relaties in een socialenetwerkgraf-database

Een weergave van relaties in een socialenetwerkgraf-database

Graphdatabase vs. relationele database: overeenkomsten en verschillen

Je vraagt je misschien nog af hoe een graphdatabase verschilt van een relationele. Beide slaan informatie op en worden gebruikt om relaties tussen data weer te geven, maar de manier waarop ze dat doel bereiken verschilt.

We splitsen de verschillen tussen hen op in vijf categorieën:

  • Datamodel
  • Operatie
  • Schaalbaarheid
  • Prestaties
  • Gebruiksgemak
  • Toepassing

Laten we dieper ingaan op de verschillen.

Datamodel

Relationele databases gebruiken datatabellen om informatie te structureren in rijen en kolommen. Elke kolom definieert een specifiek kenmerk van de data-entiteit, terwijl de rijen een individueel gegeven record vertegenwoordigen. Omdat datatabellen een vast schema hebben, moeten gebruikers de relaties tussen verschillende tabellen definiëren met primaire en vreemde sleutels.

Daarentegen structureert een graphdatabase data met een graafstructuur waarin knooppunten, randen en eigenschappen worden gebruikt om data weer te geven. Knooppunten definiëren de objecten, randen illustreren de relaties tussen knooppunten en eigenschappen beschrijven de kenmerken van de knooppunten en randen. Meer hierover verderop.

Operaties

Relationele databases benutten de kracht van SQL om data te manipuleren. SQL stelt ontwikkelaars in staat allerlei queries uit te voeren en gaat effectief om met gestructureerde data met duidelijk gedefinieerde relaties tussen tabellen. Het blinkt met name uit in filteren, aggregeren en joinen van data over meerdere tabellen.

Graphdatabases gebruiken traversal-algoritmen om het graafdatamodel te bevragen. Traversal-algoritmen kunnen depth-first of breadth-first zijn, wat helpt om verbonden data snel te ontdekken en op te halen.

Schaalbaarheid

Hoewel het mogelijk is een relationele database horizontaal te schalen (bijv. met sharding), verhoogt dat de complexiteit van gegevensopslag aanzienlijk en kan het leiden tot extra problemen zoals consistentie. De aanbevolen manier om een relationele database te schalen is verticaal. Verticale schaalvergroting betekent dat de hardware wordt geüpgraded (bijv. CPU, opslag, geheugen, enz.) om de werkbelasting die een server aankan te vergroten.

Graphdatabases daarentegen doen het uitstekend in horizontaal schalen. Ze bereiken dit met partitionering, een techniek die opgeslagen databaseobjecten opdeelt in afzonderlijke delen op verschillende servers. Deze partities stellen veel servers in staat om graafqueries parallel te verwerken.

Prestaties

Graphdatabases gebruiken doorgaans indexvrije nabijheid. Dit betekent dat elk knooppunt zijn naburige knooppunten direct verwijst. Toegang tot relaties en gerelateerde data bestaat dus simpelweg uit geheugenpointer-lookups. Dit betekent in de praktijk dat het snel is.

Relationele databases moeten verschillende tabellen scannen om relaties tussen entiteiten te identificeren. Als je bijvoorbeeld meerdere tabellen wilt joinen, moet het databasesysteem de volledige data scannen om de relaties te vinden. Dat betekent dat de prestaties afnemen naarmate de data groeit.

Gebruiksgemak

Relaties staan centraal in graphdatabases. Dit maakt ze extreem gemakkelijk om mee te werken bij verbonden data, vooral bij het uitvoeren van multi-hop-queries – queries die paden met meerdere relaties doorlopen. In een relationele database moet dit met SQL. Een multi-hop-query in SQL schrijven voelt niet natuurlijk aan. Ze kunnen behoorlijk complex worden en al snel leiden tot omvangrijke queries die lastig te lezen en te onderhouden zijn.

Toepassing

De focus op relaties maakt graphdatabases zeer geschikt voor taken die vaak dynamische veranderingen en aanpassingen kennen. Dergelijke taken omvatten semantisch zoeken en aanbevelingssystemen. Daarentegen maakt de starheid van relationele databases ze ideaal voor gestructureerde data die goed in tabellen past. Voorbeelden zijn klantgegevens en transacties.

 

Graphdatabase

Relationele database

Datamodel / Schema

Vast

Flexibel

Operaties

Traversal-algoritmen

SQL

Schaalbaarheid

Horizontaal met partitionering

Verticaal (horizontaal kan, maar verhoogt de complexiteit).

Prestaties

Snel (ook bij grote datasets)

Langzamer naarmate de dataset groter wordt

Gebruiksgemak

Intuïtief

Onnatuurlijk (maar in veel use-cases wel veel volwassener en populairder).

Toepassing

Taken met frequente dynamische veranderingen en aanpassingen (bijv. semantisch zoeken, aanbevelingssystemen, etc.).

Taken die afhankelijk zijn van dataintegriteit (bijv. klantgegevens, transacties, etc.).

Kerncomponenten van graphdatabases

Zoals eerder vermeld, stellen graphdatabases gebruikers in staat data als een graaf weer te geven. De drie essentiële componenten om data in dit formaat te modelleren zijn knooppunten, randen en eigenschappen.

Knooppunten

Objecten of instanties worden weergegeven met een knooppunt. Conceptueel zijn knooppunten het equivalent van een rij in een relationele database en fungeren ze als een vertex binnen een graaf. Groeperen van een knooppunt gebeurt eenvoudig door een label op elk lid toe te passen.

Randen

Een andere benaming voor de randen in een graaf is relaties. Relaties bestaan altijd uit een startknooppunt, eindknooppunt, type en richting. Ze vormen de dataptronen door ouder-kindrelaties, acties, eigendom en dergelijke te beschrijven.

Eigenschappen

Heel eenvoudig: eigenschappen zijn de informatie die aan knooppunten is gekoppeld.

Voorbeelden van graphdatabases

Laten we enkele van de populairste graphdatabases bekijken die vandaag de dag beschikbaar zijn, zodat we begrijpen wat hun belangrijkste kenmerken zijn.

Enkele populaire graphdatabases

Enkele populaire graphdatabases

Neo4j

Neo4j is een van ’s werelds toonaangevende graphdatabases waarmee gebruikers diepgaand, eenvoudig en snel patronen en inzichten kunnen ontdekken over miljarden dataverbindingen. Neo4j is namelijk een zeer schaalbare NoSQL open-sourcedatabase ontwikkeld in Java. Bekijk onze cursus NoSQL-concepten om meer te leren.

Belangrijke functies zijn onder andere:

  • Property graph-datamodel
    • Maakt intuïtieve en flexibele datamodellering mogelijk, waardoor je eenvoudig door complexe gegevensrelaties navigeert.
  • Native graafverwerking en -opslag
    • Optimaliseert gegevensopslag en graaftraversals, wat zorgt voor snelle en efficiënte verwerking van grote datasets en complexe queries.
  • ACID-transacties (Atomicity, Consistency, Isolation en Durability)
    • Garanderen betrouwbare gegevensverwerking en behouden nauwkeurigheid en betrouwbaarheid van data in alle transacties.
  • Cypher graafquerytaal
    • Biedt een krachtige maar gebruiksvriendelijke manier om graafdata te bevragen, waardoor het eenvoudiger wordt om betekenisvolle inzichten uit onderling verbonden data te halen.
  • Native API met hoge prestaties
    • Zorgt voor efficiënte interactie met de database, cruciaal voor applicaties die lage latency en hoge doorvoer vereisen.
  • Cypher-client
    • Maakt naadloze uitvoering van Cypher-queries vanuit applicaties mogelijk, wat dynamische en interactieve gebruikerservaringen versterkt.
  • Taaldrivers voor meerdere programmeertalen
    • Biedt flexibiliteit in ontwikkeling met drivers voor diverse programmeertalen, waaronder C#, Go, Java, JavaScript en Python, zodat integratie in uiteenlopende technologiestacks eenvoudig is.

Amazon Neptune

Applicaties die werken met sterk verbonden data kunnen snel en eenvoudig worden ontwikkeld en uitgevoerd met Amazon Neptune, een snelle, betrouwbare en volledig beheerde graphdatabaseservice. Een doelgebouwd, high-performance graphdatabase-engine vormt de basis van Neptune. Deze engine is ontworpen om de graaf te bevragen met millisecondenlatentie, terwijl miljarden relaties worden onderhouden.

Belangrijke functies zijn onder andere:

  • Ondersteuning voor open graph-API’s
    • Bevordert compatibiliteit en flexibiliteit door verschillende open graph-API’s te ondersteunen, zoals Gremlin en openCypher voor property graphs, en SPARQL voor RDF-graafmodellen, zodat ontwikkelaars met vertrouwde querytalen met de database kunnen werken.
  • Hoge beveiliging
    • Zorgt voor gegevensbescherming en naleving van regelgeving met robuuste beveiligingsfuncties, zodat integriteit en vertrouwelijkheid van in de database opgeslagen informatie behouden blijven.
  • Volledig beheer
    • Vereenvoudigt de gebruikerservaring door databasetaken zoals hardwarevoorziening, softwarepatching, setup en configuratie te beheren, zodat ontwikkelaars zich kunnen richten op het bouwen van applicaties in plaats van databasebeheer.
  • Automatische back-ups
    • Verhoogt de duurzaamheid van data en helpt bij disaster recovery door back-upprocessen automatisch af te handelen, zodat data beschermd is tegen onbedoeld verlies en indien nodig kan worden hersteld.

Andere graphdatabases

Twee andere populaire opties zijn ArangoDB en OrientDB.

ArangoDB is een gratis, open-source, NoSQL graphdatabasesysteem. Het ondersteunt drie datamodellen (graaf, JSON-documenten en key/value), wat betekent dat het multi-model is, met één databasekern en een uniforme querytaal: ArangoDB Query Language (AQL). De tool is in hoofdzaak een querytaal en maakt het mogelijk om verschillende data-toegangs­patronen in één query te combineren.

OrientDB is een open-source NoSQL-databasemanagementsysteem geschreven in Java. Net als ArangoDB is OrientDB ook een multi-modeldatabase die graaf-, JSON-document-, key/value- en objectmodellen ondersteunt; relaties worden echter beheerd zoals in graphdatabases (d.w.z. directe verbindingen tussen records). De tool heeft een robuust beveiligingsprofilesysteem op basis van gebruikers en rollen en ondersteunt queries met Gremlin naast SQL, uitgebreid voor graaftraversal.

Onze gids over NoSQL-databases verkent meer redenen waarom ze zo nuttig zijn voor data science.

Use-cases van graphdatabases

Sociale netwerken

Sociale medianetwerken laten zich van nature weergeven met het graafdatamodel. Het gebruik van een graphdatabase vereenvoudigt het vastleggen van relaties, omdat de data niet heen en weer hoeft te worden omgezet van graaf naar tabel. Het graafdatamodel kan direct worden gebruikt om zaken als gebruikers en hun relaties weer te geven.

Aanbevelingssystemen

Relaties tussen informatiecategorieën zoals vrienden in een netwerk, klantinteresse en aankoopgeschiedenis kunnen worden opgeslagen in een graphdatabase. Productaanbevelingen kunnen vervolgens aan een gebruiker worden gedaan op basis van producten die zijn gekocht door andere gebruikers met vergelijkbare interesses of aankoopgeschiedenissen. In het scenario van vrienden in een netwerk kun je met de graphdatabase gebruikers met gemeenschappelijke vrienden vinden die nog niet verbonden zijn en hen aan elkaar aanbevelen.

Fraudedetectie

Graphdatabases kunnen worden gebruikt om relaties tussen transacties, personen en andere relevante informatie op te slaan, zodat gebruikers gemeenschappelijke patronen kunnen vinden en applicaties kunnen bouwen die frauduleuze activiteiten detecteren. Zo kun je eenvoudig relatiepatronen ontdekken die op fraude duiden, zoals meerdere personen die aan één e-mailadres zijn gekoppeld of meerdere mensen die hetzelfde IP-adres delen maar op verschillende fysieke adressen wonen.

Conclusie

In deze gids heb je geleerd dat graphdatabases gespecialiseerde, doelgerichte platforms zijn om data van associatieve en contextuele aard te creëren en te manipuleren. Je hebt ook gezien dat, ondanks de duidelijke taak van het opslaan van data en het weergeven van relaties, relationele en graphdatabases sterk verschillen in hoe ze dat doel bereiken. Relationele databases gebruiken bijvoorbeeld SQL voor hun operaties, terwijl graphdatabases traversal-algoritmen gebruiken, die ze veel sneller maken, zelfs bij grote datasets, en beter geschikt voor data met veel onderlinge verbondenheid.

Leer meer over databases met deze resources:


Kurtis Pykes 's photo
Author
Kurtis Pykes
LinkedIn
Onderwerpen
Data-engineering

Begin vandaag nog met je database-reis!

Cursus

Introductie tot relationele databases in SQL

4 uur
201.4K
Leer hoe je een van de meest efficiënte manieren om gegevens op te slaan creëert – relationele databases!
Bekijk detailsStart Cursus

Maak je gratis account aan

Oefen en volg je voortgang.

Ga Verder Met Google
Door verder te gaan accepteer je onze Gebruiksvoorwaarden, ons Privacybeleid en dat je gegevens worden opgeslagen in de VS.
Meer bekijken
Gerelateerd

blog

AI vanaf nul leren in 2026: een complete gids van de experts

Ontdek alles wat je moet weten om in 2026 AI te leren, van tips om te beginnen tot handige resources en inzichten van industrie-experts.
Adel Nehme's photo

Adel Nehme

15 min

Meer bekijken