close

Um komplexe Strukturen in einer Datenbank abzubilden, sind eine Vielzahl an Verbindungen notwendig welche mit traditionellen Datenbanksystemen mithilfe von Fremdschlüsseln und Mapping Tabellen oft nur mit großem Aufwand abgebildet werden können. Durch die steigende Komplexität werden dadurch Abfragen sehr umständlich bzw. leidet meist auch die Performance darunter.

Wenn Daten sehr viele Beziehungen untereinander besitzen ist eine Graph Datenbank sehr gut geeignet. Microsoft SQL Server 2017 bietet die Möglichkeit in der gewohnten Datenbankumgebung Daten als Graph abzubilden.

Mithilfe eines Beispiels, welches Beziehungen zwischen Personen, Firmen und Produkten darstellt (siehe Abbildung Graph Beispiel) wird gezeigt wie Daten als Graph gespeichert werden können.

Graph Beispiel

 

Ein Graph besteht aus Knoten (Objekte) und Kanten (Verbindungen). Um einen Knoten anzulegen, wird eine Tabelle erstellt und mit „AS NODE“ deklariert. Daten können dann wie gehabt mittels INSERT Statement eingefügt werden.

Erstellen eines Knoten

 

Der einzige Unterschied zu einer normalen Tabelle ist die zusätzliche Spalte mit welcher ein Tabelleneintrag in der ganzen Datenbank eindeutig referenziert werden kann.

Node ID

 

Auch eine Kante wird als Tabelle definiert. Dadurch können einer Verbindung noch zusätzliche Attribute zugewiesen werden. Um einen Wert in die Kantentabelle einzufügen, müssen der Ausgangsknoten, der Zielknoten und weitere Attribute (je nach Tabellendefinition) in einem Insert Statement angegeben werden. Hierbei ist der Typ der Knoten nicht beschränkt und es können z.B. Kaufrelationen von Firma/Produkt sowie Person/Produkt definiert werden.

Erstellen einer Kante

 

Edge ID, From ID & To ID

 

Damit der SQL Server die Graph Tabellen von herkömmlichen Tabellen unterscheiden kann, werden bei Definition von Knoten und Kanten automatisch Metadaten in der System Tabelle abgespeichert.

Systemtabelle

 

Im SQL Server Management Studio werden Graph Tabellen in einem eigenen Ordner angezeigt.

SSMS Graph Ordner

 

Nachdem alle Knoten und Kanten erzeugt und mit Daten befüllt wurden, können nun Abfragen gestartet werden. Hierbei wird das MATCH Statement verwendet. Dieses wird mit Argumenten in der Form node-(edge)->node definiert. (https://docs.microsoft.com/en-us/sql/t-sql/queries/match-sql-graph?view=sql-server-2017). Als Beispiel können wir mittels der folgenden SQL Abfrage (Abbildung Zulieferer) alle zugelieferten Produkte mit den zugehörigen Firmen ausgeben.

Zulieferer

 

Im MATCH Statement können mehrere Beziehungen mittels AND angegeben werden. Im abschließenden Beispiel werden alle Produktkäufe durch Empfehlung eines Freundes abgefragt. Wir nehmen eine Produktempfehlung bei einem Produktkauf einer Person an, bei der ein Freund dasselbe Produkt innerhalb der letzten drei Monate gekauft hat.

Produktempfehlungen

 

Anwendung BI

Die Graph Struktur lässt sich auch im BI Umfeld auf das Star Schema anwenden, um eine intuitive Sicht und Abfragemöglichkeiten auf die Daten bereitzustellen. Hier können die Fakten und Dimensionen als Nodes abgebildet werden.

 

Zusammenfassung

Eine Graph Datenbank bietet für gewisse Anwendungsfälle eine sehr vielversprechende Alternative zu traditionellen Datenbanksystemen. Die Integration in die bestehende SQL Umgebung ermöglicht auch ein relativ einfaches Migrieren von einer relationalen Datenbank zur Graph Datenbank. Natürlich gibt es aufgrund der Neuheit des Features noch einige Limitierungen (https://docs.microsoft.com/en-us/sql/t-sql/queries/match-sql-graph?view=sql-server-2017) welche jedoch hauptsächlich Optimierungen betreffen.

Tags : Graph DatabaseSQL Server
Herbert Pataky

The author Herbert Pataky

Herbert Pataky schloss sein Studium im Bereich Software Engineering für Business und Finanz an der FH Hagenberg 2005 mit Auszeichnung ab. Bereits während des Studiums entwickelte Herr Pataky für mittelständische Kunden Individualsoftware zur Optimierung von Geschäftsprozessen und beschäftigte sich eingehend mit verteilten Software Architekturen. Sein berufsbegleitendes Studium Information Engineering und Management an der FH Hagenberg schloss Herr Pataky im Jahr 2008 ebenfalls mit Auszeichnung ab. Herr Pataky ist Spezialist in den Bereichen Business Analytics, Software Solutions und IT Consulting wo er seit mehr als 15 Jahren gemeinsam mit seinem Team sehr erfolgreich Mittelstands- und Großkunden aus dem Automotive-Bereich und Anlagenbau betreut. Er weist profundes Prozessverständnis in der Automobil-Industrie auf und ist Experte in den Bereichen Data Warehouse und Big Data Analytics im Microsoft Umfeld. Herbert ist Gründer & Eigentümer des Unternehmens PASO Solutions.

Leave a Response