Graafdatabanken

Databanken zijn softwarepakketten die ervoor zorgen dat je gegevens kan opslaan. De bekendste databanken zijn relationeel. Oracle, Postgresql, MySQL, MariaDB en SQL Server zijn enkele bekendere voorbeelden. De relationele databanken worden ook wel SQL-databanken genoemd omdat ze met een of andere versie van SQL kunnen beheerd worden. De gegevens worden opgeslagen in tabellen. Elke kolom van een tabel bepaalt een eigenschap en elke rij een item.

Al de andere DB’s worden vaak NoSQL-databanken genoemd, om de evidente reden dat ze niet (voornamelijk) met SQL werken. Iets minder bekend zijn waarschijnlijk key-value stores. De bekendste in zijn soort is waarschijnlijk Berkeley DB. Dat is al een oud beestje, waarvoor diverse alternatieven bestaan. Verder zijn er ook nog documentdatabases, zoals MongoDB, RavenDB en ArangoDB.

De grens tussen SQL- en NoSQL-databanken wordt soms vaag. Postgresql is bijvoorbeeld ook geschikt als documentdatabank en de makers claimen dat het als dusdanig zelfs efficiënter is dan zijn NoSQL-tegenhangers. Aan de andere kant bieden sommige NoSQL databanken ook ondersteuning voor SQL.

Als dat allemaal een belletje doet rinkelen, wel, dan gaat het hier nu over iets anders. Graafdatabanken focussen nog veel meer dan andere databanken op de verbanden die er tussen verschillende eenheden van gegevens kunnen bestaan. Relationele databanken doen dat ook, maar het combineren van tabellen is soms een dure onderneming (in termen van rekentijd). Met documentdatabanken hebben graafdatabanken gemeen dat het schema van de data niet strikt bepaald is. De gegevens in documentdatabases en graafdatabanken moeten niet in een strak keurslijf passen, zoals bij strikt relationele databanken wel het geval is. In sommige gevallen bieden graafdatabanken het beste van de twee werelden.

Misschien is het concept van graafdatabanken wat hoogdrempelig. Ik denk dat je al moet weten wat een graaf is, en al wat ervaring ermee hebben opgedaan om echt optimaal gebruik te maken van een graafdatabank. Neo4J biedt op dat vlak uitstekende documentatie, en zelfs een gratis e-book, maar de vraag is of daarmee niet alleen mensen bereikt worden die al weten dat ze een graaf moeten kunnen opslaan.

Neo4J is een voorbeeld van een graafdatabank. Het is de graafdatabank waar ik het meeste ervaring mee heb. Op mijn GitHub-account kan je bijvoorbeeld een data entry tool vinden voor Neo4J. De verzameling hulpmiddelen die voor Neo4J beschikbaar zijn, zijn wat beperkter dan die voor de meeste relationele databanken. Een programma om efficiënt gegevens in te voeren ontbrak zelfs in mijn ogen, daarom ben ik maar zelf aan eentje begonnen. De markt die Neo4J bespeelt zit misschien eerder in de Big Data branche, waar data entry neerkomt op het schrijven en uitvoeren van een programma dat gegevens in de databank importeert.

Desalniettemin kan ik iedereen met interesse in grafen of databanken warm aanbevelen een kijkje te nemen in de kwalitatieve software die al bestaat en de concepten rond graafdatabanken. De beste start is waarschijnlijk het boek Graph Databases van O’Reilly, waarin de context van graafdatabases nog veel beter en uitvoeriger uitgelegd staat dan hier.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd.