Graph Database (Graphdatenbank) erklärt
Big Data ist längst Inbegriff der fortschreitenden Digitalisierung unserer Gesellschaft. Die hohe Verfügbarkeit von großen Datenmengen bringt jedoch auch so manche Herausforderung mit sich: Rasant wachsende, schnelllebige und schwach strukturierte Datenmengen erfordern nämlich auch hochleistungsfähige IT-Lösungen, damit man sie effektiv analysieren und nutzen kann.
Ein Datenbankenmodell, das mit stark vernetzten Informationen umgehen kann, ist die Graph Database bzw. Graphdatenbank. Sie liefert die Antwort auf die Probleme der klassischen, relationalen Datenbank, die bei sehr großen und komplexen Datenbeständen schnell an ihre Grenzen stößt. Damit reiht sie sich in die Riege moderner Datenbankenalternativen ein, die vom traditionellen, relationalen Ansatz losgelöst sind und unter dem Begriff NoSQL („Not only SQL“) zusammengefasst werden. Doch wie genau funktioniert eine Graphdatenbank und welche Vorteile bietet ihre Struktur?
Was ist eine Graphdatenbank (Graph Database)?
Eine Graphdatenbank (engl. graph database), wird, wie der Name bereits verrät, auf Grundlage von Graphen abgebildet. Mit diesen Graphen werden komplex miteinander vernetzte Informationen und deren Beziehungen zueinander übersichtlich dargestellt und als großer, zusammenhängender Datensatz gespeichert. Die Graphen setzen sich dabei aus Knoten, den eindeutig bezeichneten und identifizierbaren Datenentitäten bzw. Objekten, und den Kanten, auch Edges genannt, zusammen. Bei Letzteren handelt es sich um die Beziehungen dieser Objekte zueinander. Visuell werden die beiden Komponenten als Punkte und Linien dargestellt. Kanten besitzen so jeweils einen Start- und einen Endpunkt, während jeder Knoten immer eine bestimmte Anzahl an Beziehungen, ob eingehend, ausgehend oder ungerichtet, zu anderen Knoten aufweist.
Gängige Konzepte für den Aufbau solcher Graphdatenbanken sind der Labeled-Property-Graph und das Resource Description Framework (RDF): Bei erstgenanntem werden sowohl den Knoten als auch den Kanten bestimmte Eigenschaften (engl. properties) zugewiesen. Im Resource Description Framework (RDF) wird die Modellierung des Graphen hingegen mithilfe von Tripels und Quads geregelt: Tripels bestehen aus drei Elementen nach dem Schema Knoten-Kante-Knoten. Quads ergänzen Tripels um zusätzliche Kontextinformationen, was es vereinfacht, letztere in Gruppen zusammenzufassen.
Wie funktionieren Abfragen in einer Graph Database?
Bei der Anwendung einer Graphdatenbank kommen ganz verschiedene Abfragemöglichkeiten zum Einsatz. Dies liegt vor allem daran, dass es keine einheitliche Abfragesprache gibt. Anders als traditionelle Modelle setzen Graphdatenbanken zudem auf spezielle Algorithmen, damit sie ihre wesentliche Aufgabe erfüllen: komplizierte Datenabfragen zu vereinfachen und zu beschleunigen.
Zu den wichtigsten Algorithmen zählen dabei die Tiefensuche und die Breitensuche: Bei der Tiefensuche wird jeweils der nächsttiefere Knoten abgesucht, die Breitensuche bewegt sich dagegen von Ebene zu Ebene. Die Algorithmen ermöglichen es, Muster (sogenannte Graph Patterns) sowie direkte und indirekte Nachbarknoten zu finden. Weitere Algorithmen ermöglichen es, den kürzesten Pfad zwischen zwei Knoten zu berechnen und Cliquen (Teilmengen von Knoten) und Hotspots (besonders stark vernetzte Informationen) zu identifizieren. Eine der Stärken der Graph Database besteht darin, dass die Beziehungen in der Datenbank selbst abgespeichert sind und somit nicht erst bei Abfrage berechnet werden müssen. Daraus resultiert eine hohe Performance-Geschwindigkeit selbst bei komplizierten Abfragen.
Abgrenzung zu relationalen Datenbanken und anderen NoSQL-Datenbanken
Relationale Datenbanken haben sich seit ihrem Ursprung im Jahr 1970 als Standard für Datenbanken etabliert. Sie arbeiten im Gegensatz zu Graphdatenbanken auf Grundlage von Tabellen, die Relationen von Tupel genannten Datensätzen in einzelnen Zeilen verwalten. In den Spalten wiederum lassen sich Eigenschaften mit unterschiedlichen Attributwerten abbilden. Außer hinsichtlich Struktur und dem Aufbau unterscheidet sich somit auch ihre Arbeitsweise fundamental von der Abbildung per Graph. Um bei stark vernetzten Informationen die Beziehungen darstellen und speichern zu können, müssen mehrere Tabellen aufwendig miteinander verbunden und verrechnet werden. Dies kann bei großen Datenmengen oft zeit- und kostenaufwändig werden.
Während tabellenbasierte Datenbanken ausschließlich die Abfragesprache SQL („Structured Query Language“) verwenden, rücken die moderneren NoSQL-Datenbanken zunehmend von dieser Abfragesprache und dem damit verbundenen relationalen Konzept ab – ein Ansatz, dem auch die Graphdatenbanken als Mitglied der NoSQL-Familie folgen. Neben den Graphdatenbanken zählen aber noch viele weitere Modelle wie beispielsweise die Key-Value-Datenbanken, spaltenorientierte Datenbanken und dokumentenorientierte Datenbanken zu dieser Familie. Diese verarbeiten und speichern vor allem strukturiertere und weniger vernetzte Datensätze.
Wofür werden Graphdatenbanken genutzt?
Graphdatenbanken lassen sich für viele unterschiedliche Bereiche und Zwecke einsetzen. Sie erlauben es, vernetzte Informationen zu analysieren, Prozesse und Verbindungen nachzuvollziehen, zu bewerten und nutzbar zu machen.
Typisches Beispiel für den Einsatz von Graphdatenbanken ist die Analyse der Nutzerbeziehungen in sozialen Netzwerken oder des Kaufverhalten von Nutzern in Onlineshops. Auf Grundlage unterschiedlicher Daten und Beziehungen lassen sich später dann etwa gezielt Produkt- und Freundschaftsempfehlungen gegeben und individuelle Personen- und Produktnetzwerke aufbauen. Unternehmen profitieren dabei zusätzlich von der Möglichkeit, anhand der Informationen aus Suchanfrage, Klickhistorie und weiteren Komponenten umfassende Kundenprofile erstellen zu können. Im Supply-Chain-Management werden Graphdatenbanken genutzt, um alle Prozesse vom Design bis zum Vertrieb nachverfolgen zu können. Nicht zuletzt verwendet man die Datenbanken für Risikoanalysen (als Teil des Risikomanagements), Betrugserkennung und Fehlersuchen.
Die Vor- und Nachteile von Graph Databases
Die Stärke einer Datenbank lässt sich vor allem an vier Faktoren bemessen: Integrität, Performance, Effizienz und Skalierbarkeit. Die Datenabfrage soll schneller und einfacher werden – damit kann der Hauptzweck von Graphdatenbanken grob zusammengefasst werden. Dort, wo beispielsweise die relationalen Datenbanken an ihre Leistungsgrenzen stoßen, arbeitet das graphbasierte Modell besonders agil. Denn Komplexität und Menge der Daten beeinflussen den Abfrageprozess bei diesem Modell nicht negativ.
Zudem lassen sich mit dem Graph-Datenbank-Modell reale Sachverhalte auf natürliche Art speichern. Die verwendete Struktur ist dem menschlichen Denken sehr ähnlich und macht die Verknüpfungen deshalb so anschaulich. Jedoch sind auch Graphdatenbanken keine ganzheitlichen Lösungen. An ihre Grenzen kommen sie beispielsweise beim Thema Skalierbarkeit. Da sie vor allem für eine Ein-Server-Architektur ausgelegt sind, stellt ein Wachstum eine (mathematische) Herausforderung dar. Zudem existiert noch keine einheitliche Abfragesprache.
Die Vor- und Nachteile von Graphdatenbanken im Überblick:
Vorteile | Nachteile |
---|---|
Abfragegeschwindigkeit lediglich von der Anzahl konkreter Beziehungen und nicht von der Datenmenge abhängig | Schlecht skalierbar, da auf Ein-Server-Architektur ausgelegt |
Ergebnisse in Echtzeit | Keine einheitliche Abfragesprache |
Anschauliche und übersichtliche Darstellung von Beziehungen | |
Flexible und agile Strukturen |
Grundsätzlich sollten Graphdatenbanken nicht als absoluter und besserer Ersatz herkömmlicher Datenbanken angesehen werden. So bleiben relationale Strukturen weiterhin durchaus sinnvolle Standardmodelle, die eine hohe Integrität und Stabilität der Daten garantieren und eine flexible Skalierbarkeit ermöglichen. Wie so oft gilt also auch hier: Auf den Einsatzzweck kommt es an!
Überblick über die bekanntesten Graphdatenbanken
- Neo4j: Neo4j ist die beliebteste Graphdatenbank und als Open-Source-Modell konzipiert.
- Amazon Neptun: Diese Graphdatenbank ist über die Public Cloud von Amazon Web Services nutzbar und wurde 2018 als hochleistungsfähige Datenbank freigegeben.
- SAP Hana Graph: Mit SAP Hana hat der Entwickler SAP eine Plattform geschaffen, die auf einem relationalen Datenbankmanagementsystem aufbaut und durch das integrierte, graphenorientierte Modell SAP Hana Graph ergänzt wird.
- OrientDB: Diese Graph Database gilt als eines der schnellsten aktuell verfügbaren Modelle.