© saicle/Shutterstock.com
Die Graphdatenbank Neo4j mit der Abfragesprache Gremlin in PHP einsetzen

Die Graphdatenbank Neo4j mit der Abfragesprache Gremlin in PHP einsetzen


Hat die MySQL-Tabelle ausgedient? Facebook, LinkedIn, XING, Wikipedia und Twitter – alle haben ihn: den Graphen. In diesem Artikel besprechen wir, wie man mithilfe von PHP und einem Kobold im Graphen von Knoten zu Knoten springt und neue Freunde findet. Die Möglichkeit dazu bieten uns unter anderem die native Graphdatenbank Neo4j, das Framework Neo4jPHP und die Abfragesprache Gremlin.

Seit Jahren sind der PHP-Elefant und der MySQL-Delphin starke Partner. Der Delphin übernimmt in zahlreichen PHP-Projekten die gesamte Datenhaltung. Doch gerade in Webprojekten ergeben sich durch die vielen Innovationen im Webbereich immer neue Herausforderungen. So auch auf der Datenbankseite, die mit dem klassischen, relationalen Modell (wie auch MySQL) in einigen Bereichen an ihre Grenzen stößt. Alles ist verbunden und verknüpft. Wenn wir denken, verknüpfen wir Wissen assoziativ – kein Gedanke ohne Verknüpfung. Kein soziales Netzwerk ohne Verknüpfung. Kein Internet ohne Verknüpfung. Jede Website ist mit anderen Websites über Links verbunden. Es ist daher naheliegend, verknüpfte Informationen in jener ursprünglichen Form zu speichern, in der sie auch erstellt und verarbeitet werden – als so genannte Graphen oder Netzwerke.

Wer braucht Graphen?

Neben dem sehr naheliegenden Einsatzgebiet der sozialen Netze, wie Facebook & Co., werden Graphdatenbanken auch in anderen Szenarien eingesetzt. Das DBpedia-Projekt stellt zum Beispiel aus Wikipedia extrahierte Informationen in einem maschinenlesbaren Wissensnetz mit über 18 Milliarden Kanten zur Verfügung [8]. Das semantische Web, die neue Linked-Open-Data- und Open-Government-Data-Bewegung, die auf den Begründer des Internets, Tim Berners-Lee, zurückgeht, setzen bereits seit Jahren auf Graphdaten [9]. BBC nutzt eine Graphstruktur, um alle internen Informationen von Radio, Fernsehen und Internet zu verknüpfen und daraus Webseiten zu generieren. Aber auch zahlreiche andere Firmen, wie Adobe, Cisco oder Deutsche Telekom setzen Graphdatenbanken – unter anderem auch Neo4j – ein. Überall, wo Daten mit sehr vielen Verknüpfungen vorhanden sind, ist eine Graphdatenbank bestens zur Speicherung und Verwaltung der Daten geeignet.

Wir Programmierer sind es gewöhnt, alle Informationen in flache Tabellen zu pressen und mit teilweise hochkomplexen Joins zu verknüpfen. Gerade bei sehr stark verknüpften Daten werden die so entstehenden SQL-Anweisungen jedoch nicht nur eine Herausforderung für unseren Kopf, sondern auch für das darunterliegende, rel...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang