Graphdatenbanken erfreuen sich wachsender Beliebtheit. Gerade im Big Data-Bereich spielen sie eine besonders wichtige Rolle, da sie Informationen, die untereinander hoch vernetzt sind, mühelos abspeichern und darstellen können.
Da es sich bei ihnen um NoSQL-Datenbanken handelt, vereinfachen sie das Darstellen und Abbilden hierarchischer sowie vernetzter Daten um ein Vielfaches.
Dabei bedienen sie sich der mathematischen Graphentheorie.
Neo4j basiert als Open-Source-Graphdatenbank auf der Programmiersprache Java und ist bei Entwicklern, Data Scientists und Unternehmen dank ihrer hochskalierbaren Eigenschaften sowie überragenden Performance äußerst beliebt.
Was ist eine Graphdatenbank?
In Graphdatenbanken wie beispielsweise Neo4j werden Daten in Form von Graphen gespeichert, verwaltet und abgefragt. Damit eignen sie sich besonders gut, um stark vernetzte oder unstrukturierte Informationen darzustellen. Mit einer einfachen Struktur von Kreisen und verbindenden Linien können Graphen eine Menge von Objekten bzw. Knoten, die Beziehungen zwischen diesen Objekten (auch als Kanten bezeichnet) sowie deren Eigenschaften (Properties) anschaulich abbilden.
Zu den Eckpfeilern einer Graphdatenbank gehören die Knoten (Nodes). Knoten beschreiben bzw. modellieren eine Entität. So kann beispielsweise ein Kunde, ein Lieferant oder ein Produkt ein Knoten sein. Dies entspricht der Tabelle in einer Datenbank.
Ein weiteres Merkmal sind Beziehungen (Kanten), die immer zwei Knoten gerichtet miteinander verbinden. Verbindungstypen sind Informationen zu den Knoten bzw. Verbindungen der Knoten, ob beispielsweise Person A mit Person B befreundet ist.
Knoten können mit optionalen Labels, die zur Klassifizierung dienen, oder mit sogenannten Properties (Eigenschaften) versehen werden. Properties enthalten Zusatzinformationen zu den Knoten, wie etwa der Name des Kunden, wann der Kunde etwas gekauft hat oder der Name des Lieferanten. Properties entsprechen den Spalten einer Datenbanktabelle.
Neo4j Usecases – in diesen Bereichen spielt die Graphdatenbank ihre Stärken aus
Neo4j kommt unter anderem bei Social-Media-Riesen wie Facebook und Twitter zum Einsatz. Dabei verwenden diese Plattformen im Hintergrund Modelle aus Graphen. Mithilfe dieser Modelle werden zum Beispiel Beziehungen zwischen Personen festgestellt und Informationen abgebildet, wer mit wem befreundet ist oder welche Interessen diese Person hat.
Im E-Commerce-Bereich kommen Graphdatenbanken zum Einsatz, um Kunden, die ähnliche Produkte gekauft haben abzubilden. Auf diese Weise lassen sich problemlos Empfehlungssysteme erstellen.
Mit Straßennetzen, die mit Graphdatenbanken abgebildet werden, können verschiedene Geo-Positionen ermittelt und ausgewertet werden. Anschließend lassen sich beispielsweise auf dieser Basis Routenoptimierungen vornehmen.
Telekommunikations- & IT-Netzwerke sowie neurale Netze sind ebenfalls ideale Kandidaten für das Abbilden in einer Graph-Datenbank. Auch im IoT-Umfeld können hierarchische Beziehungen durch Sensoren-Daten abgebildet werden. Lieferantenketten lassen sich auch problemlos abbilden; angefangen von der Beschaffung bis zum Versand an den Endkunden.
Was sind die Nachteile relationaler Datenbanken?
Herkömmliche Datenanalysetools haben insbesondere bei der Modellierung einige entscheidende Nachteile:
- Mangelnde Flexibilität: Sie besitzen ein festes, vordefiniertes Schema, das sich nur schwer ändern lässt.
- Beziehungen zwischen verschiedenen Entitäten in der Datenbank müssen aufwendig modelliert werden (Primary & Foreign Keys).
- Umständlich zu bedienen: gerade komplexe SQL-Abfragen werden schnell unübersichtlich
- Sinkende Performance: Bei vielen Joins wird die relationale Datenbank immer langsamer
Was ist ein Knowledge Graph?
Der Knowledge Graph – oder Wissensgraph – ist das Modell, welches in der Datenbank gespeichert wird. Zu dem Modell gehören zum einen die Tabelle und zum anderen die in der Tabelle enthaltenen Daten. Konkret formuliert, wäre der Knowledge Graph im Falle einer Adressdatenbank die Adressdatenbank plus die dort enthaltenen Adressdaten.
Die Vorteile von Graphdatenbanken wie Neo4j
Neo4j ist die ideale Graph-Datenbankplattform, die Daten in ihrem vernetzten Zustand in einer für Menschen leicht verständlichen Weise speichert und verwaltet. Neo4j zeichnet sich besonders durch blitzschnelle Abfragen aus und ermöglich einen tieferen Einblick in die Analyse der Daten. Das Datenmodell ist zudem mühelos modifizierbar.
- Dank des agilen Datenmodells sind Graph-Datenbanken leicht erweiterbar.
- Die Modellierung von Graph-Datenbanken ist für Menschen viel natürlicher und leichter zu verstehen.
- Einsatz einer einfachen Query-Sprache, ohne dass unnötig viele Joins geschrieben werden müssen.
- Hohe Abfragegeschwindigkeit auch bei hochvernetzten Daten.
- Beim Modellieren sehen Sie visuell, was Sie modellieren.
- Informationen, die im Graphen gespeichert werden, sind einfach für externe Algorithmen nutzbar.
- Mit Neo4j Bloom in Sekundenschnelle verschiedene Datenabfragen erstellen – ohne selber programmieren zu müssen.
- Mit der Neo4j GraphQL als Low-Code Bibliothek sparen Sie viele Wochen Entwicklungszeit, da Sie Abfragen im Graphen ausführen können, ohne die Neo4j-eigene Abfragesprache Cypher zu beherrschen.