© marivlada/Shutterstock.com, © S&S Media
Teil 1: Anwendungsentwicklung auf Basis von Neo4j im Spring-Ökosystem

Farin, Rod und die Rainbirds …


Dieser Text ist der erste Teil einer Reihe von Tutorien, die sich mit Graphdatenbanken im Allgemeinen und Neo4j im Speziellen beschäftigen. In den fast zwanzig Jahren meines professionellen Berufslebens habe ich in der Regel mit relationalen Datenbanken gearbeitet. Seit letztem Jahr bin ich als Engineer für Neo4j im Spring-Data-Team tätig. Spring-Wissen hatte ich nach der Veröffentlichung des Spring-Boot-Buchs [1], was jedoch die Datenbank angeht, war ein Umdenken notwendig. Dieses Tutorial beschreibt meinen Weg durch die Welt der Graphen.

Graphen- und relationale Datenbanken haben eines gemeinsam: Sie existieren nicht im luftleeren Raum. In der Regel gibt es Anwendungen oder ganze Anwendungssysteme, heutzutage oftmals Microservices, die mit ihnen sprechen wollen. In vielen dieser Anwendungen werden Mappingsysteme eingesetzt, beispielsweise Neo4j-OGM (unser Graph-zu-Objekt-Mapper) oder JPA (ein objektrelationaler Mapper). Diese Abstraktionen machen es sehr leicht, Datenbankstrukturen in die Anwendung abzubilden. Leider wird oftmals das Anwendungsmodell eins zu eins in die Datenbank oder das Datenmodell eins zu eins in die Anwendung abgebildet. Ich halte es für falsch, dass das Schema einer Datenbank primär aus einer Anwendung oder, konkreter gesagt, aus einem Anwendungsfall getrieben entwickelt wird. Das gilt für Graphdatenbanken genauso wie für relationale Datenbanken. Im dritten Teil dieser Serie werde ich hinsichtlich des Anwendungsdesigns genauer darauf eingehen.

Relationale Datenbanken oder Datenbanken mit Beziehungen?

In den siebziger Jahren des vergangenen Jahrhunderts erfand Edgar F. Codd das relationale Modell beziehungsweise die relationale Algebra. Eine Relation ist nicht das, was die Allgemeinheit unter einer Beziehung versteht. Eine Relation im Sinne von Codds Algebra besteht aus Attributen und Tupeln, den Werten der Attribute. Damit ist eine Tabelle an sich eine Relation: Die Spaltenköpfe entsprechen den Attributen, die Werte in den einzelnen Zeilen ...

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