Mit zunehmender Reife der NoSQL-Landschaft haben sich vier Kategorien von Datenbanken herausgeschält. Drei davon (Key-Value-, spaltenorientierte und dokumentenorientierte Datenbanken) eignen sich zur Verarbeitung einfacher, strukturierter Datenelemente[1]. Sie speichern und indizieren Datensätze, die keine oder lose Beziehungen zueinander aufweisen, und kommen ohne die von relationalen Datenbanken bekannten JOIN-Operationen aus. Dafür sind sie horizontal leicht skalierbar und können große Datenmengen schnell lesen und schreiben. Das vierte Mitglied der NoSQL-Familie, die Graphdatenbank, bewältigt auch die anspruchsvolle Aufgabe, stark vernetzte bzw. verknüpfte Daten effizient abzufragen. Graphdatenbanken eignen sich daher perfekt für die wirklichkeitsgetreue Modellierung und hochperformante Abfrage komplexer Echtweltdomains. Im Folgenden wird am Beispiel der verbreiteten Graphdatenbank Neo4j aufgezeigt, wie sich vernetzte Daten mithilfe von Graphen mit wenig Aufwand und hohem Gewinn speichern und abfragen lassen.
Was ist Neo4j?
Neo4j ist eine quelloffene ACID-transaktionale Graphdatenbank der Enterprise-Klasse. Seit ihrer Einführung 2003 ist sie zum Weltmarktführer im Bereich Graphdatenbanken avanciert – mit einer vitalen Community, aktiver Entwicklungsarbeit und zahlreichen Produktionsinstallationen. Graphdatenbanken ähneln relationalen Datenbanken oberflächlich. Sie bilden aber die Beziehungen zwischen Elementen viel effektiver ab. Damit können die bekannten Probleme beim Abfragen verknüpfter Daten umgangen werden. Im NoSQL-Bereich haben Graphdatenbanken mit diesem Datenmodell ebenso ein Alleinstellungsmerkmal.