- Graphdatenbank
-
Eine Graphdatenbank dient zur elektronischen Verwaltung vor allem stark vernetzter, graphähnlicher Daten in einem Computersystem. Im Gegensatz zum relationalen Datenbankmodell kennt das Graphdatenmodell neben Knoten (Tabellen) auch explizite Datenstrukturen für Kanten (Verbindungen), wodurch Abbildungsprobleme von Graphen und anderen hierarchischen Daten in einer relationalen Datenbank vermieden werden können.
Grundlage des Konzeptes von Graphdatenbanken ist der Property-Graph (Eigenschaften-Graph), eine mathematische Beschreibung eines Graphen mit Schlüssel-Wert-Beziehungen auf sowohl Knoten als auch Kanten und den gültigen Operationen auf diesen. Durch diese Spezialisierung auf Property-Graphen unterscheiden sie sich auch vom Datenmodell der RDF/Triple-Stores, welche vorwiegend im Semantic Web Anwendung finden.
Inhaltsverzeichnis
Graphdatenbank-Projekte
Im Folgenden sind einige der bekanntesten Graphdatenbank-Projekte aufgezeigt:
- AllegroGraph - eine skalierbare, high-performance Graphdatenbank aus dem Umfeld des Semantic Webs.
- DEX - eine high-performance Graphdatenbank.
- Filament - ein Graph-Persistenz-Framework.
- Horton - eine Graphdatenbank der Microsoft Research Extreme Computing Group (XCG), welche auf der Cloud-Entwicklungsumgebung Orleans aufsetzt.
- HyperGraphDB - eine Open-Source- (LGPL) Graphdatenbank, welche auch Hypergraphen unterstützt.
- InfiniteGraph - eine sehr skalierbare und verteilte und cloud-fähige, aber kommerzielle Graphdatenbank (frei für Start-Ups).
- InfoGrid - eine Open-Source (AGPLv3) Graphdatenbank speziell für Web-Anwendungen und unterschiedlichen Persistenzmedien (MySQL, PostgreSQL, Files, Hadoop).
- Neo4j - die wohl bekannteste Open-Source- (GPLv3 Community Edition, AGPLv3 Advanced und Enterprise Edition) Graphdatenbank.
- OrientDB - eine hoch-performante Open Source-Dokumenten- und Graphdatenbank.
- sones GraphDB - eine teilweise Open-Source- (AGPLv3) Graphdatenbank für .NET.
- VertexDB - ein Graphdatenbank-Framework (C++) mit automatischer Garbage Collection.
Verteiltes Graphprocessing (meist in-memory)
- Angrapa - Graph-Framework als Teil von Apache Hama.
- FlockDB - Verteilte und fehlertolerante Graphdatenbank von Twitter auf Basis von MySQL und dem Gizzard framework speziell für "Single-Hop-Relationships".
- Giraph - eine Graph Processing-Bibliothek welche auf Apache Hadoop basiert.
- GoldenOrb - Pregel-Implementierung auf Basis von Apache Hadoop.
- Phoebus - Pregel Klon in Erlang.
- Pregel - Google's interne Graphverarbeitungs-Plattform.
- Trinity - Pregel ähnliche Graphdatenbank für .NET von Microsoft Research Labs.
APIs und Anfragesprachen
- Blueprints - eine Java API für Property-Graphen, welche zusammen mit mehreren Graph-Datenbanken verwendet werden kann.
- Blueprints.NET - eine generische C# API für Property-Graphen.
- Cypher - eine Property Graph Query Language entwickelt von Neo4j.
- Gremlin - eine Open-Source Graphen-Programmiersprache, welche mit verschiedenen Graph-Datenbanken (Neo4j, OrientDB, DEX) genutzt werden kann.
- Pacer - ist eine Ruby Implementierung der Gremlin Graphen-Programmiersprache.
- Pipes - ein Datenfluss-Framework für Java auf Basis von Prozessgraphen speziell für die Anfrageverarbeitung auf Proeprty-Graphen.
- Pipes.NET - ein Datenfluss-Framework für C# zur Verarbeitung von generischen Graphen und Property-Graphen.
- PYBlueprints - eine Python API für Property-Graphen.
- Rexster - eine HTTP/REST-Schnittstelle für den Zugriff auf Graphdatenbanken via Internet, welche von mehreren Herstellern unterstützt wird.
Weblinks
- Graph-Database.org - eine Informationsseite für Hintergründe zum Thema Graphdatenbanken.
- NoSQL Frankfurt 2010 - The GraphDB Landscape and sones
- Graph Database Tutorial
- Graph Databases and the Future of Large-Scale Knowledge Management
- Graphs in the database: SQL meets social networks
- Social networks in the database: using a graph database
- Scaling Online Social Networks without Pains
- Large-scale Graph Computing at Google
- On building a stupidly fast graph database
- InfiniteGraph technical documentation
- Neo4j - an open source graph database
- DEX - a high-performance graph database
- Eric Lai. (2009, July 1). No to SQL? Anti-database movement gains steam
- Renzo Angles, Claudio Gutierrez. Survey of graph database models. ACM Computing Surveys, Feb. 2008.
- InfoGrid - an open-source application platform including a graph database
- OQGRAPH - Graph computation engine (GPLv2 licensed) for MySQL, MariaDB and Drizzle
- Rodriguez, M.A., MySQL vs. Neo4j on a Large-Scale Graph Traversal
- OrientDB - a high-performance open source document-graph database
- Optimizing Schema-Last Tuple-Store Queries in Graphd SIGMOD 2010
Wikimedia Foundation.