Left Up Right Datenbanksysteme

Graphdatenbanken

Definition

Eine Graphdatenbank ist eine Art NoSQL, die die Graphenteorie nutzt um Beziehungen zu speichern, abzubilden und abzufragen. Es werden Knoten und Kanten gespeichert.
Ein Knoten besteht aus eindeutigem Bezeichner, einer Menge von eingehenden und ausgehenden Kanten, und einer Mange von Eigenschaften, die als Schüssel-Wertepaare dargestellt werden.
Eine Kante hat auch ein en eindeutige Bezeichnung, einem start und Ziel-Knoten und eine Menge von Eigenschaften. [TT über Graph Database]

siehe auch [WP], [enWP]

Mit Graphenaloalgorithmen können Graphen ausgewertet werden [WP], z.B. alle Nachbarn eines Knotens zu finden, kürzeste Wege finden, Cliquen finden, stark vernetze Regionen (Hotspots) finden.

Nutzen

Vorteile

Graphdatenbanken haben die Verbindungen gespeichert, andere Datenbanken (z.B. Relationale) berechnen diese erst teuer zur Laufzeit [Neo4j]

O(1) - real time Entscheidungen möglich [Video Intro]

Keine Schema-Migrationen [Video Intro], man kann einfach Eigenschaften bei den Daten hinzufügen

Interessante Implementierungen

Liste der Graphdatenbanken von WP, ist eine ausführliche Auflistung, besondere interessant sind:

ArangoDB
Apache Lizenz 2.0, C++, Transaktional
Neo4j [WP]
GPLv3, Java, Transaktional, Abfragespache Cypher
OrientDB [WP]
Apache Lizenz 2.0, Java, Transaktional
Dokumentenorientiert, TinkerPop-Blueprints-Standard
TITAN
Java (?), Transaktional, für Big Data geeignet
[Heise über DataStax]

Informatik- und Netzwerkverein Ravensburg e.V Rudolf Weber