Eine Graph­da­ten­bank ist eine spezielle Art von Datenbank, die Daten in Form von Knoten und Kanten speichert. Dieses Vorgehen er­mög­licht eine ef­fi­zi­en­te Mo­del­lie­rung und Abfrage komplexer Be­zie­hun­gen. Graph­da­ten­ban­ken eignen sich daher besonders gut für An­wen­dun­gen, die stark mit­ein­an­der vernetzte In­for­ma­tio­nen abbilden.

Woraus besteht eine Graph­da­ten­bank und wofür wird sie ein­ge­setzt?

Eine Graph­da­ten­bank (engl. graph database) wird, wie der Name bereits verrät, auf Grundlage von Graphen ab­ge­bil­det. Mit diesen Graphen werden komplex mit­ein­an­der vernetzte In­for­ma­tio­nen und deren Be­zie­hun­gen zu­ein­an­der über­sicht­lich dar­ge­stellt und als großer, zu­sam­men­hän­gen­der Datensatz ge­spei­chert.

Die Graphen setzen sich dabei aus Knoten, den eindeutig be­zeich­ne­ten und iden­ti­fi­zier­ba­ren Da­ten­en­ti­tä­ten bzw. Objekten, und den Kanten, auch Edges genannt, zusammen. Bei Letzteren handelt es sich um die Be­zie­hun­gen dieser Objekte zu­ein­an­der. Visuell werden die beiden Kom­po­nen­ten als Punkte und Linien dar­ge­stellt. Kanten besitzen so jeweils einen Start- und einen Endpunkt, während jeder Knoten immer eine bestimmte Anzahl an Be­zie­hun­gen, ob eingehend, ausgehend oder un­ge­rich­tet, zu anderen Knoten aufweist.

Graph­da­ten­ban­ken werden bei­spiels­wei­se für die Analyse der Nut­zer­be­zie­hun­gen in sozialen Netz­wer­ken oder des Kauf­ver­hal­ten von Nut­ze­rin­nen und Nutzern in On­line­shops ein­ge­setzt. Durch das Ab­spei­chern von Be­zie­hun­gen können dann etwa gezielt Produkt- und Freund­schafts­emp­feh­lun­gen gegeben und in­di­vi­du­el­le Personen- und Pro­dukt­netz­wer­ke aufgebaut werden.

Hinweis

Re­la­tio­na­le Da­ten­ban­ken speichern Daten in Tabellen und nutzen SQL zur Abfrage. Im Gegensatz dazu gehören Graph­da­ten­ban­ken zur NoSQL-Familie und bieten eine fle­xi­ble­re Struktur zur ef­fi­zi­en­ten Hand­ha­bung komplexer Be­zie­hun­gen zwischen Daten.

Beispiele für Graph Databases

Es gibt un­ter­schied­li­che Konzepte, die den Aufbau solcher Graph DBs be­schrei­ben. Die wohl be­kann­tes­ten sind der Labeled-Property-Graph und das Resource De­scrip­ti­on Framework (RDF).

Labeled-Property-Graph

Beim Labeled-Property-Graph (LPG) werden jedem Knoten und jeder Kante des Graphen bestimmte Ei­gen­schaf­ten, so­ge­nann­te pro­per­ties, und Labels zu­ge­wie­sen. Diese speichern spe­zi­fi­sche In­for­ma­tio­nen über die Entitäten oder Be­zie­hun­gen. Labels dienen dabei der Ka­te­go­ri­sie­rung, sodass bei­spiels­wei­se ein Knoten als „Person“ oder „Un­ter­neh­men“ markiert werden kann, während Pro­per­ties zu­sätz­li­che Attribute wie Namen, Alter oder geo­gra­fi­sche Ko­or­di­na­ten enthalten können.

Diese Struktur er­mög­licht eine sehr flexible und leis­tungs­fä­hi­ge Da­ten­ab­fra­ge, da Be­zie­hun­gen und Ei­gen­schaf­ten direkt in der Datenbank ge­spei­chert sind und durch einfache Abfragen abgerufen werden können. LPGs eignen sich besonders gut für die Mo­del­lie­rung komplexer Netzwerke, in denen Entitäten und ihre Ver­bin­dun­gen mit­ein­an­der in un­ter­schied­li­chen Kontexten be­schrie­ben werden.

Resource De­scrip­ti­on Framework

Im Resource De­scrip­ti­on Framework (RDF) werden In­for­ma­tio­nen in Tripeln or­ga­ni­siert, die aus Subjekt, Prädikat und Objekt bestehen und damit eine einfache Struktur zur Dar­stel­lung von Be­zie­hun­gen zwischen Entitäten bieten. Jedes Tripel stellt eine Aussage dar, wobei das Subjekt die Ressource be­zeich­net, das Prädikat die Ei­gen­schaft oder Beziehung be­schreibt und das Objekt den Wert oder eine andere Ressource darstellt.

Mit RDF können Daten auf eine stan­dar­di­sier­te Weise verknüpft werden, sodass sie über ver­schie­de­ne Systeme hinweg mit­ein­an­der kom­bi­niert und abgerufen werden können. Diese Fle­xi­bi­li­tät macht RDF besonders nützlich für An­wen­dun­gen, die auf Ver­bin­dun­gen von Daten aus un­ter­schied­li­chen Quellen an­ge­wie­sen sind wie etwa bei Wis­sens­gra­phen.

Wie funk­tio­nie­ren Abfragen in einer Graph Database?

Bei der Anwendung einer Graph DB kommen ganz ver­schie­de­ne Ab­fra­ge­mög­lich­kei­ten zum Einsatz. Dies liegt vor allem daran, dass es keine ein­heit­li­che Ab­fra­ge­spra­che gibt. Anders als tra­di­tio­nel­le Modelle setzen Graph­da­ten­ban­ken zudem auf spezielle Al­go­rith­men, damit sie ihre we­sent­li­che Aufgabe erfüllen: kom­pli­zier­te Da­ten­ab­fra­gen zu ver­ein­fa­chen und zu be­schleu­ni­gen.

Zu den wich­tigs­ten Al­go­rith­men zählen dabei die Tie­fen­su­che und die Brei­ten­su­che: Bei der Tie­fen­su­che wird jeweils der nächst­tie­fe­re Knoten abgesucht, die Brei­ten­su­che bewegt sich dagegen von Ebene zu Ebene. Die Al­go­rith­men er­mög­li­chen es, Muster (so­ge­nann­te Graph Patterns) sowie direkte und indirekte Nach­bar­kno­ten zu finden. Weitere Al­go­rith­men er­mög­li­chen es, den kürzesten Pfad zwischen zwei Knoten zu berechnen und Cliquen (Teil­men­gen von Knoten) und Hotspots (besonders stark vernetzte In­for­ma­tio­nen) zu iden­ti­fi­zie­ren. Eine der Stärken der Graph Database besteht darin, dass die Be­zie­hun­gen in der Datenbank selbst ab­ge­spei­chert sind und somit nicht erst bei Abfrage berechnet werden müssen. Daraus re­sul­tiert eine hohe Per­for­mance-Ge­schwin­dig­keit selbst bei kom­pli­zier­ten Abfragen.

Die Vor- und Nachteile von Graph Databases

Die Stärke einer Datenbank lässt sich vor allem an vier Faktoren bemessen: In­te­gri­tät, Per­for­mance, Effizienz und Ska­lier­bar­keit. Die Da­ten­ab­fra­ge soll schneller und einfacher werden – damit kann der Haupt­zweck von Graph­da­ten­ban­ken grob zu­sam­men­ge­fasst werden. Dort, wo bei­spiels­wei­se die re­la­tio­na­len Da­ten­ban­ken an ihre Leis­tungs­gren­zen stoßen, arbeitet das graph­ba­sier­te Modell besonders agil. Denn Kom­ple­xi­tät und Menge der Daten be­ein­flus­sen den Ab­fra­ge­pro­zess bei diesem Modell nicht negativ.

Zudem lassen sich mit dem Graph-Datenbank-Modell reale Sach­ver­hal­te auf na­tür­li­che Art speichern. Die ver­wen­de­te Struktur ist dem mensch­li­chen Denken sehr ähnlich und macht die Ver­knüp­fun­gen deshalb so an­schau­lich. Jedoch sind auch Graph­da­ten­ban­ken keine ganz­heit­li­chen Lösungen. An ihre Grenzen kommen sie bei­spiels­wei­se beim Thema Ska­lier­bar­keit. Da sie vor allem für eine Ein-Server-Ar­chi­tek­tur ausgelegt sind, stellt ein Wachstum eine (ma­the­ma­ti­sche) Her­aus­for­de­rung dar. Zudem existiert noch keine ein­heit­li­che Ab­fra­ge­spra­che.

Die Vor- und Nachteile von Graph­da­ten­ban­ken im Überblick:

Vorteile Nachteile
Ab­fra­ge­ge­schwin­dig­keit lediglich von der Anzahl konkreter Be­zie­hun­gen und nicht von der Da­ten­men­ge abhängig Schlecht ska­lier­bar, da auf Ein-Server-Ar­chi­tek­tur ausgelegt
Er­geb­nis­se in Echtzeit
An­schau­li­che und über­sicht­li­che Dar­stel­lung von Be­zie­hun­gen
Flexible und agile Struk­tu­ren

Grund­sätz­lich sollten Graph­da­ten­ban­ken nicht als absoluter und besserer Ersatz her­kömm­li­cher Da­ten­ban­ken angesehen werden. So bleiben re­la­tio­na­le Struk­tu­ren weiterhin durchaus sinnvolle Stan­dard­mo­del­le, die eine hohe In­te­gri­tät und Sta­bi­li­tät der Daten ga­ran­tie­ren und eine flexible Ska­lier­bar­keit er­mög­li­chen. Wie so oft gilt also auch hier: Auf den Ein­satz­zweck kommt es an!

Graph­da­ten­ban­ken im Vergleich

Es gibt ver­schie­de­ne Graph­da­ten­ban­ken, die sich für un­ter­schied­li­che Ein­satz­sze­na­ri­en eignen. Im Folgenden finden Sie vier beliebte Modelle auf­ge­lis­tet:

  • Neo4j: Neo4j ist die be­lieb­tes­te Graph DB und als Open-Source-Modell kon­zi­piert.
  • Amazon Neptune: Diese Graph­da­ten­bank ist über die Public Cloud von Amazon Web Services nutzbar und wurde 2018 als hoch­leis­tungs­fä­hi­ge Datenbank frei­ge­ge­ben.
  • SAP Hana Graph: Mit SAP Hana hat der Ent­wick­ler SAP eine Plattform ge­schaf­fen, die auf einem re­la­tio­na­len Da­ten­bank­ma­nage­ment­sys­tem aufbaut und durch das in­te­grier­te, gra­phen­ori­en­tier­te Modell SAP Hana Graph ergänzt wird.
  • OrientDB: Diese Database vereint do­ku­men­ten­ori­en­tier­te und graph­ba­sier­te Ansätze und gilt als eines der schnells­ten aktuell ver­füg­ba­ren Modelle.

Im direkten Vergleich zeigt sich, dass die Da­ten­ban­ken ver­schie­de­ne Features mit­brin­gen, die je nach in­di­vi­du­el­lem An­wen­dungs­fall hilfreich sein können:

Neo4j Amazon Neptune SAP HANA Graph OrientDB
Typ Nativ Verwaltet (Cloud) Graph-Er­wei­te­rung Multi-Model
Ab­fra­ge­spra­chen Cypher SPARQL, Gremlin, Open­Cy­pher SQL-basiert SQL-ähnlich, Gremlin
Da­ten­mo­dell(e) Property Graph Property Graph, RDF Re­la­tio­nal, Graph­mo­dell Graph, Dokumente
Typische Ein­satz­sze­na­ri­en Soziale Netzwerke, Be­trugs­er­ken­nung, Emp­feh­lungs­diens­te, Netz­werk­ma­nage­ment Wis­sens­gra­phen, Iden­ti­täts- und Zu­griffs­ma­nage­ment, Cloud-native Apps Business-Analytics, IoT, Fi­nanz­ana­ly­se, SAP-An­wen­dun­gen Content-Ma­nage­ment, komplexe Da­ten­be­zie­hun­gen, verteilte Systeme
Zum Hauptmenü