Neo4j
# Neo4j

Neo4j ist eine in Java implementierte Open-Source-Graphdatenbank. Die Entwickler beschreiben Neo4j als eine eingebettete, Disk-basierte, transaktionale Datenbank-Engine, die Daten anstatt in Tabellen in Graphen strukturiert speichert. Neo4j Version 1.0 wurde im Februar 2010 freigegeben. Die Community-Edition der Datenbank ist unter der GNU General Public License (GPL) v3 lizenziert. Zusatzmodule wie Online-Backup und Hochverfügbarkeit sind unter der GNU Affero General Public License (AGPL) v3 lizenziert. Die Datenbank sowie die Zusatzmodule sind in einem dualen Lizenzmodell auch unter einer kommerziellen Lizenz erhältlich. Neo4j ist die populärste Graphdatenbank und steht auf Platz 22 der populärsten Datenbanken.

Neo4j wurde von Neo Technology entwickelt, einem Start-up-Unternehmen mit Sitz in Malmö/Schweden und San Francisco Bay/USA. Mitglieder des Vorstandes von Neo Technology sind Rod Johnson (Erfinder des Spring Frameworks), Chris Barchak (Partner bei Conor Venture Partners), Magnus Christerson (stellvertretender Vorsitzender der Intentional Software Corp.), Nikolaj Nyholm (Partner bei Sunstone Capital), Guarav Tuli (Direktor bei Fidelity Growth Partner) und Johan Svensson (Technischer Direktor der Neo Technology).

## Datenstruktur

In Neo4j wird alles entweder als Kante, als Knoten oder als Attribut gespeichert. Jeder Knoten hat eine beliebige Anzahl von Attributen. Knoten und Kanten können eine Beschriftung (Label) tragen. Beschriftungen können verwendet werden, um die Treffermenge bei Suchen einzuschränken. Mit der Einführung von Schemata wurde auch das Indexing in der Abfragesprache Cypher eingeführt. Bisher war Indexing nur getrennt von Cypher verfügbar.

## Beispiel

Die Daten der Offshore-Leaks werden vom Center for Public Integrity öffentlich zum Download bereitgestellt. Zur leichteren Auswertung existiert ein Komplettpaket für die Datenanalyse inklusive Neo4j-Datenbank, Browser und einem Leitfaden mit Beispielen. Die Auswertung dieser Daten wird auch an anderen Stellen als Beispiel für ein Graph-Datenmodell und dessen Abfrage mit Cypher in Neo4j genutzt.

