Graphdatenbanken in der Anwendung

Christoph Pingel Leiter Softwareentwicklung bei allsafe GmbH & Co. KG

Mit der Informationsplattform Sherlock bieten wir unseren Kunden ein mächtiges Werkzeug zur Datenmigration, Datenvirtualisierung und Datenmodellierung. Informationen aus unterschiedlichen Quellsystemen und Datenablagen werden hierzu zur weiteren Verarbeitung in Sherlock vorgehalten. Dabei kommt eine sogenannte Graphdatenbank zum Einsatz. Worin liegt der Vorteil einer solchen Datenbank und wie unterscheidet sich diese von der weitverbreiteten relationalen Variante?

Inhaltsverzeichnis:

    Graphdatenbanken vs. Relationale Datenbanken

    Graphdatenbanken machen sich die mathematische Graphentheorie zu eigen. Dabei werden stark vernetzte Informationen mit Hilfe von Graphen dargestellt. Ein Graph kann aus einer Vielzahl von Knoten und Kanten bestehen. Knoten bilden dabei Entitäten bzw. Objekte und die Kanten deren jeweilige Beziehung untereinander ab. Beispiel: Mitarbeiter (Objekt) arbeitet bei Unternehmen (Objekt). Beziehungen sind entweder symmetrisch oder gerichtet.

    In einer Graphdatenbank können sowohl Knoten als auch Kanten Informationen speichern. Dazu kommen spezielle Datenstrukturen zum Einsatz (Adjazenz- oder Indizenzmatrizen). Im Gegensatz zu relationalen Datenbanken können komplexe Beziehungen unterschiedlicher Objekte in einer Graphdatenbank ohne zusätzliche Hilfsverfahren abgelegt und verarbeitet werden. Durch Kantengewichtung ist es zudem möglich, jeder Beziehung einen spezifischen Wert zuzuweisen, um so deren Stärke oder Qualität zum Ausdruck zu bringen, zum Beispiel eine Entfernung zwischen zwei Orten.

    Die Informationsdarstellung mittels einer Graphdatenbank entspricht somit eher dem menschlichen Denken als die einer relationalen Datenbank.

    Eine Graphdatenbank bietet dabei die gleichen Möglichkeiten zur Erzeugung, Manipulation und Abfrage von Daten wie sein relationales Pendant. Beispielsweise werden zur Informationsvernetzung über Graphen spezielle Graphalgorithmen eingesetzt, während zum Beispiel Beziehungen zwischen Objekten in einer relationalen Datenbank über Hilfstabellen abgebildet werden müssen. Dabei kann es nicht nur schnell unübersichtlich werden, sondern bei komplexen Suchanfragen zu erheblichen Einbußen in der Datenbankperformance kommen.

    Oben genannte Graphalgorithmen ermöglichen solche Abfragen in kurzer Zeit. Sie durchsuchen den Graphen zum Beispiel nach benachbarten Knoten oder bestimmen deren kürzeste Verbindung zueinander. Auch stark vernetzte Segmente des Graphen können ermittelt werden. Die Nutzung der Graphentheorie macht solch komplexe Suchen erst möglich.

    Fazit

    Mit einer Graphdatenbank können im Gegensatz zu einer relationalen Datenbank stark vernetzte Informationen ohne komplexe Datenbankkonstrukte gespeichert werden. Sie verwenden dazu keine starren Tabellenstrukturen. Die Verwendung von Graphalgorithmen ermöglicht es, komplexe Datenbankabfragen zu vereinfachen und mit hoher Geschwindigkeit durchzuführen. Sherlock nutzt seine Graphdatenbank, um hoch komplexe Informationsbeziehungen von Daten unterschiedlicher Systeme abzubilden und dem abfragenden System quellsystemübergreifende Suchergebnisse schnell und effizient zur Verfügung zu stellen.