Graphdatenbanken Daten effizient modellieren mit Neo4j

Autor / Redakteur: Thomas Joos / Nico Litzel |

Datenbanken wie Neo4j bieten die für die Modellierungsphase im Vergleich zu relationalen Datenbanken wesentlich mehr Möglichkeiten für die Verarbeitung komplexer, unstrukturierter Daten. Vernetzte Daten lassen sich mit Produkten wie Neo4j besser in Beziehung miteinander setzen und so später effizienter weiterverarbeiten.

Anbieter zum Thema

Neo4j kann auf Linux-Servern installiert werden, aber auch auf Rechnern mit Unix, Mac OS X und Windows.
Neo4j kann auf Linux-Servern installiert werden, aber auch auf Rechnern mit Unix, Mac OS X und Windows.
(Bild: T. Joos)

Mit Whiteboards können die Beziehungen der Daten geplant und dann mit einem Datenmodell umgesetzt werden. Das Domänenmodell ist in Graphendatenbanken sehr flexibel und jederzeit änderbar. Bei der ursprünglichen Planung der Datenbank muss es also nicht bleiben. Domänenmodelle lassen sich nachträglich anpassen, das ist einer der Vorteile von NoSQL-Datenbanken wie Neo4j. Neo4J steht als Open-Source-Lösung zur Verfügung, aber auch als Enterprise-Version mit mehr Support. Die Installation kann auf Basis von Linux, Unix, Mac OS X und Windows erfolgen.

Graphdatenbanken verarbeiten viele Daten besser

Große Teile der Daten, die nicht auf einem Datenmodell basieren oder die Daten enthalten, die in kein Schema passen, lassen sich mit Graphdatenbanken besser verarbeiten als mit relationalen Datenbanken. Vor allem wenn in Tabellen ganze Zeilen oder Spalten leer sind, weil sie zum Beispiel aus Quellen kommen, deren Schema nicht fest definierbar ist, spielen Graphdatenbanken oder andere NoSQL-Datenbanken ihre Stärken aus. Teilweise strukturierte, heterogene Daten sind dadurch gut zu verarbeiten. Verbindungen zwischen Elementen lassen sich dadurch leichter erstellen, was in relationalen Datenbanken mit unstrukturierten Daten nur sehr schwer möglich ist, teilweise überhaupt nicht.

Personen, Ereignisse, Produkte und andere Daten lassen sich in Beziehung zueinander setzen, was in Big-Data-Umgebungen Informationen liefert, die über relationale Datenbanken kaum zu verarbeiten sind. Gibt es zum Beispiel sehr viele verschiedene Beziehungen, die auch ständig wechseln, ist ein großes Datenaufkommen zu erwarten. Das sind im Übrigen typische Beispiele für soziale Netzwerke, deren Daten verarbeitet werden sollen.

Beispiel dafür sind auch Benutzereingaben an verschiedenen Stellen oder Daten, die aus verschiedenen Datenquellen stammen und unterschiedlich oder überhaupt nicht strukturiert sind. In einem Datenmodell einer Graphdatenbank lassen sich jederzeit weitere Datenquellen anbinden, deren Daten nicht in das aktuelle Schema passen. Das Modell lässt sich dazu jederzeit anpassen.

Daten aus sozialen Netzwerken verarbeiten

Die Daten aus sozialen Netzwerken sind sehr flexibel und ändern sich ständig. Außerdem verarbeiten Big-Data-Systeme mittlerweile mehr als nur normale Beziehungen von Kontakten oder Produkten. Da in Netzwerken wie Facebook und Co. auch Informationen zu Orten und Aktionen von Anwendern gespeichert werden sowie ständig weitere Daten, macht es Sinn auch diese Daten in die Datenmodellierung einzubinden.

Diese Daten sind außerdem sehr flexibel und werden ständig verändert. Um hier Beziehungen ständig verarbeiten zu können, sind Graphdatenbanken ideal. Beispiele dafür sind Beziehungen zwischen Personen, welche Produkte den Personen gefallen, in welchen Unternehmen die Personen arbeiten, wo sich die Personen zu welchen Zeiten aufhalten, an welchen Veranstaltungen sie teilnehmen und Vieles mehr. Diese Art von Informationen wird immer reichhaltiger gespeichert und muss daher in einer Datenbank auch verarbeitet werden können. Dadurch lassen sich auch Empfehlungen erstellen und Anwendern anzeigen.

Impact Analysis mit Graphdatenbanken

Aber auch die Analyse von Netzwerkdaten in Rechenzentren, vor allem bei großen Unternehmen, erfordert ein flexibles Datenmodell. Solche Impact-Analysen lassen sich aber auch auf Geschäftsprozesse ausdehnen. Die Analyse der Infrastruktur von Unternehmen kann über Big-Data-Lösungen analysiert werden. So lassen sich Beziehungen in Netzwerken und Geschäftsprozessen untersuchen. Ein sinnvoller Einsatz sind zum Beispiel Was-wäre-wenn-Analysen.

So lässt sich bereits frühzeitig untersuchen, welche Auswirkungen der Ausfall von bestimmten Geräten im Netzwerk oder das Ändern und Verzögern von Geschäftsprozessen haben. Komplexe Strukturen und deren Vernetzungen lassen sich mit Graphdatenbanken optimal untersuchen. Das Ganze ist auch auf Berechtigungen in Netzwerken auszudehnen, da Graphdatenbanken besser analysieren können, ob es einen Berechtigungspfad von einem Benutzer zu einem bestimmten Objekt im Netzwerk gibt. Generell gibt es viele Anwendungsfälle.

Untersuchungen für Logistik und Routing

Wenn verschiedene Wege zwischen einzelnen Objekten zur Verfügung stehen sowie unterschiedliche Transportmöglichkeiten, sind Graphdatenbanken dazu geeignet, den besten Weg zu finden. Das gilt aber nicht nur in der normalen Logistik von Waren und Produkten, sondern auch dem Routen von Informationen oder dem Netzwerkverkehr. Hier spielen ebenfalls Informationen eine Rolle, die sich nicht in ein Schema pressen lassen, zum Beispiel Vorschriften für den Warentransport, bestimmte Zeitfenster, Termine und andere Zusammenhänge. Alles was zusammen betrachtet werden muss, um eine Route zu definieren, lässt sich in einer Graphdatenbank analysieren.

Bausteine von Graphdaten in Neo4j

Graphdaten lassen sich im Grunde recht schnell modellieren. Knoten, Beziehungen, Eigenschaften und Beschreibungen werden dazu in Beziehung zueinander setzen. Die Knoten (Nodes) definieren Objekte, die in Beziehung zueinander gesetzt werden können. Dabei handelt es sich zum Beispiel um Personen, Produkte oder Unternehmen in sozialen Netzwerken. Aber auch Eigenschaften von Produkten oder Personen lassen sich als Knoten nutzen und dadurch in Beziehung zueinander setzen.

Beziehungen (Relationships) stellen die Verbindungen zwischen den Knoten dar. Die Beziehungen zwischen Knoten sind in Graphdatenbanken enorm wichtig. Beziehungen können Eigenschaften enthalten, benötigen aber kein festes Schema. Attribute lassen sich an Knoten binden und nicht jeder Knoten muss über die gleichen Attribute verfügen.

Die Beziehungen stellen schließlich die Verbindungspunkte zwischen den Knoten dar. So lassen sich zum Beispiel Beziehungen zwischen Personen, Orten, Produkten und Ereignissen graphisch darstellen. Beziehungen sind also einer der wichtigsten Bereiche in Graphdatenbanken. Zwischen verschiedenen Knoten sind auch mehrere Beziehungen möglich. So können zwei Personen nicht nur befreundet miteinander sein, sondern es kann sich auch um Kollegen handeln.

Labels beschreiben einzelne Knoten. Dabei handelt es sich um Markierungen der Knoten. Beispiel dafür sind Personen, die als Knoten dargestellt werden. Eine Person muss nicht nur eine Person als Label haben, sondern zum Beispiel auch eine weitere Beschreibung, wie „IT-Spezialist“. So lassen sich in Unternehmen nicht nur Beziehungen von Personen miteinander untersuchen, sondern auch deren generelle Eigenschaften, Position oder Fachwissen. Das lässt sich natürlich auch auf Produkte ausdehnen. Labels können also auch als Metadaten genutzt werden.

Datenmodelle modellieren

Bei der Modellierung kann zum Beispiel das gewünschte Ergebnis als Grundlage verwendet werden. Auf Basis eines Grundmodells und der gewünschten Anwendung der Datenbank lässt sich festlegen, wie die Daten in der Graphdatenbank verarbeitet werden sollen. Da Datenmodelle in Graphdatenbanken sehr flexibel sind, lassen sich die Modelle jederzeit anpassen. Ist also ein Anwendungsfall bekannt, lässt sich auf dessen Grundlage ein Modell erstellen. Es muss also zunächst klar sein, welche Aufgabe die Datenbank haben soll.

Beispiel dafür wäre das Untersuchen von sozialen Netzwerken und welcher Personenkreis ein bestimmtes Produkt bevorzugt. Darauf aufbauend lässt sich Datenbankmodell erstellen. Ist also von vorne herein schon klar, welche Informationen eine Graphdatenbank liefern soll, lassen sich Knoten und die gewünschten Beziehungen sehr viel leichter definieren. Auch die zu untersuchenden Eigenschaften lassen sich dann leichter festlegen.

Artikelfiles und Artikellinks

Link: Neo4j im Web

(ID:44152267)