Hilfreiche Informationen rund um den produktiven Einsatz von Neo4j

Produktiv mit Graphen


Und nun zum Abschluss der dritte Teil des Neo4j-Tutorials mit einigen weiterführenden Informationen. In diesem Artikel wollen wir uns mit Themen rund um die Model­lierung mit Graphen und konkrete Anwendungsfälle sowie operationalen Aspekten wie Performance, Betrieb und Clustering auseinandersetzen. Außerdem werden weitere ­Möglichkeiten vorgestellt, Neo4j von Java aus zu benutzen und zu erweitern.

Die Graphdatenbank mit ihrem flexiblen Datenmodell bietet eine Menge Möglichkeiten für die Modellierung der vielfältigsten Domänen. Wie immer in der Modellierung gibt es mehrere Wege vorzugehen.

Wir wollen einen inkrementellen Ansatz nutzen, der von meinem Kollegen Ian Robinson stammt und von ihm in Kundenprojekten genutzt wird. Bei der Graphmodellierung ist es verlockend, einfach alle Informationen, so wie sie in der realen Welt oder in einer anderen Datenbank vorliegen, 1:1 in den Graphen zu übernehmen. Es ist aber sinnvoll, das Modell an die konkreten Anwendungsfälle anzupassen und den Graph gemeinsam mit dem System weiterzuentwickeln.

Für diesen Modellierungsansatz beginnt man mit dem Anwendungsfall, den man abbilden möchte und arbeitet sich dann iterativ in sechs Schritten über Informationsextraktion, Musteridentifikation und Abfragedeklaration bis zur ersten Version des Graphmodells vor. Danach kann es in die nächste Runde gehen. Konkret sind das:

  • Anwendungsfall und Ziele der Nutzer identifizieren

  • Fragen herausfinden, die mithilfe der Domäne beantwortet werden sollen

  • Entitäten in jeder Frage bestimmen

  • Beziehungen zwischen den Entitäten erkennen

  • Entitäten und Beziehungen zu Cypher-Pfaden zusammensetzen, Pfade sind die Basis des Datenmodells

  • Fragen mithilfe der Pfade als Muster im Graphen notieren, Graphabfragen auf der Grundlage dieser Muster entwickeln

Schauen wir uns die Schritte im Einzelnen am konkreten Beispiel an.

1. Anwendungsfall und Ziele der Nutzer identifizieren

Eine typische User Story kann so aussehen: Als ein Nutzer möchte ich Empfehlungen für Filme mit Schauspielern, die ich positiv bewertet habe, erhalten, sodass ich gut unterhalten werde.

2. Fragen herausfinden, die mithilfe der Domäne beantwortet werden sollen

Aus der Story können wir die Frage(n) ableiten, die darin enthalten ist (sind), in diesem Fall ist das nur diese eine: Welche Schauspieler, die ich mag, haben in Filmen mitgespielt, die ich noch nicht gesehen habe?

Weitere Aufgaben im System wären die Anlage und Verwaltung (CRUD) der notwendigen Entitäten und Beziehungen.

3. ...

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