juanjo tugores - Fotolia

Graphdatenbanken festigen enge Beziehungen zwischen Datenelementen

Graphdatenbanken bilden Beziehungen zwischen verschiedenen Datenelementen in natürlicher Weise strukturell ab. Das bietet verschiedene Vorteile.

Graphdatenbanken erhalten aus mehreren Gründen zunehmend Aufmerksamkeit. Die NoSQL-Software bildet Beziehungen zwischen verschiedenen Datenelementen in einer strukturellen Art ab. Dabei entsteht ein Netz aus Daten, das unserem Denken ähnlich ist, in dem Objekte wie Personen oder Mitarbeiter in Beziehung zu anderen bekannten Objekten wie Familie oder Unternehmen gesetzt werden.

Graphdatenbanken unterscheiden sich von relationalen Datenbank-Management-Systemen (DBMS) in mehreren Eigenschaften. In einer relationalen Datenbank werden Beziehungen zwischen Entitäten – zum Beispiel zwischen Kunden und Produkten, die der Kunde erworben hat – mit Fremdschlüsseln dargestellt. Diese Fremdschlüssel verweisen auf entsprechende Daten in mehreren Tabellen. Darüber hinaus ist der Großteil der Datenattribute mit den Entitäten selbst verbunden.

Im Vergleich dazu werden in einer Graphdatenbank die Entitäten (bezeichnet als Knoten oder Knotenpunkte) über Verbindungen mit Labels, die ihre Beziehungen beschreiben, miteinander verknüpft. Als Teil eines Graphdatenmodells können sowohl den Entitäten als auch den Verbindungen (sogenannte Links oder Kanten) Eigenschaften und entsprechende Werte zugewiesen werden.

Der Wert dieser Datenbankstruktur sollte nicht unterschätzt werden. Betrachten wir zum Beispiel eine Datenbank, die verwendet wird, um zu verfolgen, wo Kunden wohnen und wann sie an irgendeinem Ort gewohnt haben. In einem Graphdatenmodell können wir Kunde und Wohnort als zwei Kernentitäten repräsentieren und ein Label "LIVED_AT" verwenden, um direkt die Beziehungen zwischen Menschen und bestimmten Wohnorten abzubilden.

Zum Beispiel können wir eine Beziehung einrichten, die eine Entität für eine Person namens Hermann Meier mit einer Entität für eine Adresse in Hauptstraße 123, München verbindet. Das Graphmodell kann dann verwendet werden, um Informationen über die Beziehungen zwischen den zugehörigen Entitäten darzustellen.

Hermann Meier könnte zum Beispiel an mehr als einem Ort gewohnt haben. Ist dies der Fall, ist es einfach, mehr Verbindungen unter Verwendung der gleichen Beziehungsvorlage hinzuzufügen. Wir können zu einer Verbindung auch Eigenschaften wie einen Zeitraum hinzufügen, um zu dokumentieren, wann eine Person an einem bestimmten Ort gewohnt hat. Die folgende Textkette würde dann den Zeitraum festlegen, in dem er unter dieser Adresse wohnhaft war: {StartDatum: 01/01/2013, Enddatum: 28/02/2015}.

Ein Graphmodell ist weniger starr als eine relationale Datenbank

Bei der Erfassung solcher Strukturen müssen relationale Datenbanken nicht außen vor bleiben. Es ist durchaus möglich, ähnliche Daten auch in einer relationalen Datenbank abzuspeichern. Dazu muss eine separate Relationship-Tabelle erstellt werden, die Fremdschlüssel verwendet. Diese Fremdschlüssel zeigen dann auf die Tabellen, die die Daten für die Kunden- und Wohnortentitäten enthalten. Die Nutzung eines Graphdatenmodells hat allerdings zwei qualitative Vorteile: erhöhte Flexibilität und bessere Nutzerfreundlichkeit.

Betrachten wir zuerst die Flexibilität: Wie bei anderen NoSQL-Technologien muss man bei Graphdatenbanken kein fixes Datenmodell erstellen. Um die gewünschten Beziehungen zu spezifizieren, können neue Verbindungen zwischen Entitäten in einer Datenbank einfach durch direkte Interaktion mit dem Graphdatenspeicher hinzugefügt werden – zum Beispiel Hermann Meier strich das Haus in der Hauptstraße 123 in München an.

Auf diese Weise lassen sich zusätzliche Eigenschaften eingeben, ohne dass eine komplette Datenbank vollständig erneuert werden muss. Bei einer relationalen Datenbank auf der anderen Seite müsste man ein rigides Datenmodell im Voraus designen. Dieses müsste so strukturiert sein, dass die gewünschten Beziehungen über Fremdschlüssel konfiguriert werden können.

Weil Verbindungen in einem Graphmodell First-Class-Objekte sind, können ihre Eigenschaften vom Standpunkt der Benutzerfreundlichkeit her leicht in Datenbankabfragen integriert werden. Im Beispiel der Kundendatenbank ist es einfach, nach allen Personen zu suchen, die in München gewohnt haben und speziell nach Menschen, die dort zum Beispiel im Jahr 2012 lebten.

Datenmodellierung ist noch ein notwendiger Schritt

Dass der Graphansatz flexibel ist, heißt allerdings nicht, dass man auf Datenmodellierung verzichten kann. Im Gegenteil: Der erste Schritt ist, die Arten von Business-Fragen zu verstehen, die normalerweise gefragt werden und wie diese beschrieben werden können, um sie an die Graphstruktur anzupassen.

Im nächsten Schritt muss man zwischen den Eigenschaften und den Attributen unterscheiden, die inhärent mit den Datenbank-Entitäten und den Beziehungen zwischen diesen Entitäten verknüpft sind. Die Graphdatenmodellierung ist ein iterativer Prozess, und jeder Versuch, ein Modell zu konstruieren und einige Abfragen auszuführen, kann zu Veränderungen führen, wie Entitäten verknüpft und Beziehungen definiert werden müssen.

Bei der Abfrage von Flugbuchungsdaten zum Beispiel könnten die Fragen, die Datenanalysten für gewöhnlich stellen, Dinge enthalten, wie die Unterscheidung zwischen Geschäfts- und Urlaubsreisen, die Optimierung der Flugzeuge in Abhängigkeit von der Flugroute und die Änderung der Ticketpreise auf Basis der Nachfrage.

Mehr zum Thema Graphdatenbank:

Graphdatenbanken: Behörden entdecken den Wert von Datenbeziehungen.

Graphdatenbank Titan in der AWS-Cloud verwenden.

Graphdatenbanken zeigen ihren Nutzen jenseits von Facebook, Twitter und Co.

Panama Papers mit Graphdatenbank und Visualisierungssoftware enthüllt

Eine Graphdatenbank könnte zum Beispiel Reisende- und Ort-Entities enthalten, und ein Link zwischen ihnen würde zeigen, wenn einzelne Reisende Flüge zu bestimmten Orten buchen. Dies kann nützliche Informationen über Urlaubsreisen im Vergleich zu Geschäftsreisen liefern – aber dies dürfte für die beiden anderen Abfrage-Themen kaum funktionieren.

Eine zweite Iteration könnte die Route als neue Entität hinzufügen, die zwei Orte als Start- und Zielpunkt miteinander verbindet. Eine Verbindung mit einem Label "BOOKED_TRIP" könnte dann eine Person mit einer bestimmten Route verknüpfen, inklusive eingebetteter Eigenschaften wie Datum, Flugnummer und Ticketkosten. Die folgenden Iterationen könnten weitere Anpassungen im Graphdatenmodell erzeugen, bis die Analysten zufrieden sind, dass ihre Abfragen beantwortet werden kann. Aber selbst dann können zusätzliche Modifikationen notwendig sein – etwa für den Fall, dass neue Business-Analytics-Anforderungen entstehen.

Graphdatenbanken bieten ein leicht verständliches, semantisches Framework zum Erfassen, Manipulieren und Analysieren von Daten, das flexibel genug ist, um die Entwicklung von Analytics-Anwendungen schnell zu verbessern. Für Anwendungen, die leicht angepasst werden können – wie Empfehlungsmaschinen, Betrugserkennungssysteme und Anwendungen für soziale Netzwerke – bietet der Graphansatz eine praktikable Alternative zur Verwendung von Mainstream-Datenbanken.

Im folgenden Video erklärt Holger Temme von Neo Technology, dem Unternehmen hinter der Open-Source-Graphdatenbank Neo4j, verschiedene Einsatzszenarien für Graphdatenbanken:

Folgen Sie SearchEnterpriseSoftware.de auch auf Twitter, Google+ und Facebook!

Artikel wurde zuletzt im März 2017 aktualisiert

Pro+

Premium-Inhalte

Weitere Pro+ Premium-Inhalte und andere Mitglieder-Angebote, finden Sie hier.

Erfahren Sie mehr über Datenbanksysteme

Diskussion starten

Schicken Sie mir eine Nachricht bei Kommentaren anderer Mitglieder.

Mit dem Absenden dieser Daten erklären Sie sich bereit, E-Mails von TechTarget und seinen Partnern zu erhalten. Wenn Ihr Wohnsitz außerhalb der Vereinigten Staaten ist, geben Sie uns hiermit Ihre Erlaubnis, Ihre persönlichen Daten zu übertragen und in den Vereinigten Staaten zu verarbeiten. Datenschutz

Bitte erstellen Sie einen Usernamen, um einen Kommentar abzugeben.

- GOOGLE-ANZEIGEN

SearchSecurity.de

SearchStorage.de

SearchNetworking.de

SearchDataCenter.de

Close