Graph database

In computing, a graph database is a database that uses graph structures for semantic queries with nodes, edges and properties to represent and store data.

Most graph databases are NoSQL in nature and store their data in a key-value store or document-oriented database. In general terms, they can be considered to be key-value databases with the additional relationship concept added. Relationships allow the values in the store to be related to each other in a free form way, as opposed to traditional relational databases where the relationships are defined within the data itself. These relationships allow complex hierarchies to be quickly traversed, addressing one of the more common performance problems found in traditional key-value stores. Most graph databases also add the concept of tags or properties, which are essentially relationships lacking a pointer to another document.

Graph databases employ nodes, properties, and edges.

Structure

Graph databases are based on graph theory. Graph databases employ nodes, properties, and edges.

Properties

Compared with relational databases, graph databases are often faster for associative data sets and map more directly to the structure of object-oriented applications. They can scale more naturally to large data sets as they do not typically require expensive join operations. As they depend less on a rigid schema, they are more suitable to manage ad hoc and changing data with evolving schemas. Conversely, relational databases are typically faster at performing the same operation on large numbers of data elements.

Graph databases are a powerful tool for graph-like queries, for example computing the shortest path between two nodes in the graph. Other graph-like queries can be performed over a graph database in a natural way (for example graph's diameter computations or community detection).

List of graph databases

The following is a list of graph databases:

Name Version License Language Description
AllegroGraph 5.1 (May 2015) Proprietary. Clients: Eclipse Public License v1. C#, C, Common Lisp, Java, Python An RDF and graph database.
ArangoDB 2.8.6 (March 2016) Apache 2 C, C++ & JavaScript A distributed multi-model document store and graph database. Highly scalable supporting ACID and full transaction support. Including a built-in graph explorer.
Blazegraph 1.5.3 (September 2015) GPLv2, evaluation license, or commercial license. Java A RDF/graph database capable of clustered deployment. Blazegraph supports high availability (HA) mode, embedded mode, single server mode. As of version 1.3.1, it supports the Blueprints API and Reification Done Right (RDR). Prior to version 1.5.0; formerly named Bigdata.
Bitsy 1.5.0 AGPL, Enterprise license (unlimited use, annual/perpetual) Java A small, embeddable, durable in-memory graph database
BrightstarDB 1.10.1 (May 2015) MIT License [1] C# An embeddable NoSQL database for the .NET Framework with code-first data model generation.
Cayley 0.4.1 (April 2015) Apache 2 Go An open-source graph inspired by the graph database behind Freebase and Google's Knowledge Graph.
DEX/Sparksee[2] 5.2.0 (2015) Evaluation, research or development use is free; commercial use is not free C++ A high-performance and scalable graph database management system from Sparsity Technologies. Its main characteristics is its query performance for the retrieval & exploration of large networks. Sparksee offers bindings for Java, C++, C#, Python and Objective-C. Sparksee 5 mobile is the first graph database for mobile devices.
Filament BSD Java A graph persistence framework and associated toolkits based on a navigational query style.
GraphBase 1.0.03a Proprietary Java A customizable, distributed, small-footprint graph store with a rich tool set from FactNexus.
graphd Proprietary The proprietary back-end of Freebase.
Graph Engine 1.0 Office Store Standard Application License (Free) C++, C# A distributed, in-memory, large graph processing engine.
Grapholytic 0.1 Proprietary A distributed GraphDB from MIOsoft.
Gun Zlib,Apache2,MIT Javascript A realtime, decentralized, offline-first, graph database engine.
Horton Proprietary C# A graph database from Microsoft Research Extreme Computing Group (XCG) based on the cloud programming infrastructure Orleans.
HyperGraphDB 1.2 (2012) LGPL Java A graph database supporting generalized hypergraphs where edges can point to other edges.
IBM System G Native Store v1.0 (July 2014) Proprietary C, C++, Java A high performance graph store using natively implemented graph data structures and primitives for achieving superior efficiency. IBM System G Native Store can handle various simple graphs, property graphs, and RDF graphs, in terms of storage, analytics, and visualization. Native Store is accessible from most programming languages by providing APIs in C++, Java (Tinkerpop/Blueprints), and Python. Its gShell graph command collection and the Native Store REST APIs provide language-free interfaces.
InfiniteGraph 3.0 (January 2013) Proprietary Java A distributed and cloud-enabled commercial product with flexible licensing.
InfoGrid 2.9.5 (2011) AGPLv3, free for small entities[3] Java A graph database with web front end and configurable storage engines (MySQL, PostgreSQL, Files, Hadoop).
jCoreDB Graph An extensible database engine with a graph database subproject.
k-infinity 4.0 (2015) Proprietary, free tryout version and demo scenarios A semantic graph database which is characterised by its graphical user interface and requires no knowledge of any query language. API is open and based on REST and JSON. Thus it can be easily embedded in existing architectures.
MarkLogic 8.0.4 (2015) Proprietary, free developer version Java, JavaScript, XQuery Multi-model NoSQL database that stores documents (JSON and XML) and semantic graph data (RDF triples). MarkLogic also has a built-in search engine and a full-list of enterprise features such as ACID transactions, high availability and disaster recovery, certified security, and scalability and elasticity.
Neo4j 2.3.3 (March 2016) GPLv3 Community Edition. Commercial & AGPLv3 options for enterprise and advanced editions Java A highly scalable open source graph database that supports ACID, has high-availability clustering for enterprise deployments, and comes with a web-based administration tool that includes full transaction support and visual node-link graph explorer. Neo4j is accessible from most programming languages using its built-in REST web API interface. Neo4j is the most popular graph database in use as of March 2016.[4]
OpenCog AGPL C++, Scheme, Python Includes a satisfiability modulo theories solver and a unified rule engine for performing both crisp (boolean) logic and probabilistic reasoning. Backed onto Postgres.
Ontotext GraphDB 6.6 GraphDB Free is free.
GraphDB Standard and GraphDB Enterprise are commercially licensed.
Java A graph database engine, based fully on Semantic Web standards from W3C: RDF, RDFS, OWL, SPARQL. GraphDB Free is a database engine for small projects. GraphDB Standard is robust standalone database engine. GraphDB Enterprise is a clustered version which offers horizontal scalability and failover support and other enterprise features.
Orly (March 2014) Apache 2 C++ A highly scalable open source graph database; accessible from most programming languages via its built-in REST web API interface.
OpenLink Virtuoso 7.1 (March 2014) GPLv2 for Open Source Edition. Proprietary for Enterprise Edition. C, C++ A hybrid database server handling RDF and other graph data, RDB/SQL data, XML data, filesystem documents/objects, and free text. May be deployed as a local embedded instance (as used in the NEPOMUK Semantic Desktop), a single-instance network server, or a shared-nothing elastic-cluster multiple-instance networked server.[5]
Oracle Spatial and Graph 11.2 (2012) Proprietary Java, PL/SQL 1) RDF Semantic Graph: comprehensive W3C RDF graph management in Oracle Database with native reasoning and triple-level label security. 2) Network Data Model property graph: for physical/logical networks with persistent storage and a Java API for in-memory graph analytics.
Oracle NoSQL Database 2.0.39 (2013) Proprietary Java RDF Graph for Oracle NoSQL Database is a feature of Enterprise Edition providing W3C RDF graph capabilities in NoSQL Database.
OrientDB 2.1.9 (January 2016) Community Edition is Apache 2, Enterprise Edition is commercial Java OrientDB is an open source 2nd Generation Distributed Graph Database with the flexibility of Documents in one product (i.e., it is both a graph database and a document nosql database at the same time.) It has an open source commercial friendly (Apache 2) license. It is a highly scalable graph database with full ACID support. It has a multi-master replication and sharding. Supports schema-less, schema-full and schema-mixed modes. Has a strong security profiling system based on user and roles. Supports a query language that is so similar to SQL which is friendly to those coming from a SQL and relational database background decreasing the learning curve needed. It has HTTP REST + JSON API.
OQGRAPH GPLv2 A graph computing engine for MySQL, MariaDB and Drizzle.
Profium Sense 6.0 Proprietary Java Profium Sense is a contextual content management platform with a built-in triple store. Profium's own reasoning engine supports OWL 2 RL and RDFS and is optimized to manage continuous information streams that require continuous inferencing on-the-fly. Profium architecture is based on an in-memory database with ACID transaction support and supports distributed high-availability deployment.
R2DF R2DF framework for ranked path queries over weighted RDF graphs.
ROIS Freeware Modula-2 A programmable knowledge server that supports inheritance and transitivity. Used in OpenGALEN as a terminology server.
Semblent Lionsgate v1.0.3 (December 2014) Proprietary JavaScript A scalable, generic distributed database framework coupled with graph search able to efficiently maintain synchronisation persistently between server side and client side databases via a self-building API.
SPARQLCity v1.0.95 (October 2014) GPLv3 C, C++ & JavaScript SPARQLCity produces SPARQLVerse: A standards and Hadoop based analytic graph engine for performing rich business analytics on structured and semi-structured data.
Sqrrl Enterprise v1.5.1 (August 2014) Proprietary Java Distributed, real-time graph database featuring cell-level security and mass-scalability.
Stardog v3.1.5 (July 2015) Proprietary Java Fast, scalable, pure Java semantic graph database.
Teradata Aster v6 (2013) Proprietary Java, SQL, Python, C++, R A high performance, multi-purpose, highly scalable and extensible MPP database incorporating patented engines supporting native SQL, MapReduce and Graph data storage and manipulation. An extensive set of analytical function libraries and data visualization capabilities are also provided.
Titan 1.0 (September 2015) Apache 2 Java A distributed, real-time, scalable transactional graph database developed by Aurelius.
TripleBit C, C++ A centralized RDF store.
VelocityGraph Open source with proprietary back-end C# High performance, scalable & flexible graph database build with VelocityDB object database.
VertexDB Revised BSD C A graph database server that supports automatic garbage collection.
VivaceGraph 3.0 (December 2014) MIT License Common Lisp Pure Common Lisp graph database.
Weaver 0.1 (December 2014) BSD licenses C, Python A fast, scalable, ACID transactional graph database with replication and migration.
WhiteDB 0.7.0 (October 2013) GPLv3 and a free commercial licence C A graph/N-tuples shared memory database library.
OhmDB 1.0.0 (August 2014) Apache 2 Java RDBMS + NoSQL Database for Java.

Features

The table below compares the features of the above graph databases.

Name Graph Model API Query Methods Visualizer Consistency Backend Scalability
AllegroGraph RDF Java, Java:Sesame, JavaJena, Python, Ruby, Perl, C#, Clojure, Lisp, Scala, REST SPARQL 1.1, Prolog, JIG, JavaScript Gruff - View Graphs, Visual Query Builder for SPARQL and Prolog ACID Native Graph Storage1 Trillion RDF triples
ArangoDB Property graph JavaScript, Blueprints, REST Graph Traversals via JavaScript, Gremlin Built-in graph explorer MVCC/ACID native C/C++ Replication and sharding
Blazegraph RDF Java, Sesame, Blueprints, Gremlin, SPARQL, REST SPARQL, Gremlin Blazegraph Workbench UI MVCC/ACID Native Java Embedded, Client/Server, High Availability (HA)
Bitsy Property graph Blueprints Gremlin, Pixy ACID with optimistic concurrency control Human-readable JSON-encoded text files with checksums and markers for recovery
DEX/Sparksee[2] Labeled and directed attributed multigraph Java, C++, .NET, Python Native Java, C#, Python and C++ APIs, Blueprints, Gremlin Exporting functionality to visualization formats Consistency, durability and partial isolation and atomicity Native graph. light and independent data structures with a small memory footprint for storage Master-slave replication
Filament
GraphBase Enterprise(1) GraphBase Agility(2) (1) mixed, (2) Framework-managed Simple Graph Java Bounds Language, embedded Java GraphPad, BoundsPad, Navigator ACID, graph-based transactions proprietary native (1) shared nothing distributed, (2) simple replication, 100+ billion arcs per server
Graph Engine Property graph C#, REST LINQ, TQL, LIKQ Atomicity Native graph store and processing engine Graphs with billions of nodes, Microsoft Azure Platform
Horton Attributed multigraph Horton Query Language (Regular Language Expression + SQL) C#, .Net Framework, asynchronous communication protocols
HyperGraphDB Object-oriented multi-relational labeled hypergraph Custom,Java MVCC/STM
IBM System G Native Store Property graph, RDF* C++, Java, Python Native Store gShell, Gremlin, SPARQL Built-in Visualizer ACID Native Graph Storage Both scale-up (using multithreading) and scale-out (using IBM PAMI)
InfiniteGraph Labeled and directed multi-property graph Java, Blueprints (read only) Java (with parallel, distributed queries), Gremlin (read only) Graph browser for developers. Plugins to allow use of external libraries ACID; and a parallel, loosely synchronized batch loader Objectivity/DB on standard filesystems Distributed & sharded. Objectivity/DB was first DBMS to store a petabyte of objects
InfoGrid Dynamically typed, object-oriented graph, multigraphs, semantic models
MarkLogic RDF triple store JavaScript and XQuery Semantics APIs, support for Sesame and Jena APIs SPARQL 1.1, JavaScript, XQuery MarkLogic Query Console, and support for visualization tools (e.g., Keylines) and integrates with other more robust tools (Smartlogic, Cambridge Semantics, PoolParty) ACID Native graph and document storage Hundreds of billions of triples and documents using a distributed architecture
Neo4j Property graph Java, Python, JPython, Ruby, JRuby, JavaScript (Node.js), PHP, .NET, Django, Clojure, Spring, Scala, or REST (any language) Cypher (native/preferred), Native Java APIs (special cases), Traverser API, REST, Blueprints, Gremlin Data browser included. Supports a variety of 3rd party tools: Gephi, Linkurio.us, Cytoscape, Tom Sawyer, Keylines, etc. ACID Native graph storage with native graph processing engine Horizontal read scaling via master-slave clustering with cache sharding
Ontotext GraphDB RDF TriplestoreJava: Sesame, Jena REST APIs: SPARQL 1.1 Protocol (end-point), SPARQL 1.1 Graph Store HTTP Protocol, Linked Data Platform, SPARQL results in JSON, JSON-LD and all RDF syntaxes SPARQL 1.1 (full support), Geo-spatial extension of SPARQL, FTS extensions: Lucene, SOLR, Elasticsearch queries, through GraphDB Connectors GraphDB Workbench: Explore, SPARQL queries, repository management, cluster management, RelFinder.) Persistent, synchronous, asynchronous Native graph storage Master-slave replication, high-availability clustering
OpenLink Virtuoso RDF graph: Triple & Quad (named graphs); expandable column store SPARQL, XMLA, ODBC, JDBC, ADO.NET, OLE DB, Jena, Sesame, Virtuoso PL/SQL, Java, Python, Perl, PHP, HTTP, etc. SPARQL 1.1; SPARQL web service endpoint; SQL; others Pivot Viewer (Silverlight or HTML5); OpenLink Data Explorer; SPARQL-compliant tools; Apache Jena-based tools; XML & JSON-based tools; SQL based tools ACID Internal column-store or row-store (depending on licensure), hybrid RDF/SQL/RDB engine Infinite via Commercial Edition's Cluster Module elastic cluster functionality; simple master-slave clustering of single-server instances also an option.
Oracle Spatial and Graph RDF graph: Triple & Quad (named graphs); Network Data Model property graph Java; Apache Jena; PL/SQL SPARQL 1.1; SPARQL web service end point; SQL SPARQL-compliant tools; Apache Jena-based tools; XML & JSON-based tools; SQL based tools ACID Efficient, compressed, partitioned graph storage; Native persisted in-database inferencing; SPARQL 1.1 & SQL integration; triple-level label security; semantic indexing of documents Parallel load, query, inference; query controls; scales from PC to Oracle Exadata; supports Oracle Real Application Clusters and Oracle Database 8 exabytes
Oracle NoSQL Database RDF graph: Triple default graph, Triple & Quad named graphs Java (Apache Jena) SPARQL 1.1; SPARQL web service end point SPARQL-compliant tools; Apache Jena-based tools; XML & JSON-based tools ACID; configurable consistency & durability policies Key/value store; W3C SPARQL 1.1 & update; in-memory RDFS/OWL inferencing Parallel load-query; Query controls for: parallel execution, timeout, query optimization hints
OrientDB Property graph Java, Python, JPython, Ruby, JRuby, JavaScript (Node.js), PHP, .NET, Clojure, Spring, Scala, or REST (any language) Own SQL-like Query Language, REST, Blueprints, Gremlin, SparQL (via Blueprints) Console and Studio Web tool supporting also graph editor ACID, MVCC Custom on disc or in memory Horizontal read and write scaling via multi-master replication + sharding
OQGRAPH Property graph SQL ACID MySQL, MariaDB
Semblent-Lionsgate Property graph Python, JavaScript (Node.js), Django, Scala, or REST Dave (native/preferred), Native Json APIs, REST Data Browser included, integrates with 3rd party tools. Fully Consistent and ACID Native graph storage with native graph processing engine, Apache Cassandra, Apache HBase Distributed server and client side, billions of nodes
Sqrrl Enterprise Property graph Thrift, Blueprint Own SQL-like query language and Java API Integrates with 3rd party tools Fully Consistent and ACID (transactions limited to a single graph node) Apache Accumulo Distributed cluster with tens of trillions of edges
Stardog RDF Java, Sesame, Jena, SNARL, HTTP/REST, Python, Ruby, Node.js, C#, Clojure, Spring SPARQL 1.1 Stardog Web, Pelorus ACID Native Graph Storage 50 billion RDF triples on $10,000 server
Titan Property graph Java, Blueprints, REST, RexPro binary protocol, Python, Clojure (any language) Gremlin, SPARQL Integrates with 3rd party tools ACID or Eventually Consistent Apache Cassandra, Apache HBase, MapR M7 Tables, Berkeley DB, Persistit, Hazelcast Distributed cluster (120 billion+ edges) or single server
TripleBit Labeled direct graph C, C++ SPARQL ACID or Eventually Consistent] Native graph store and processing engine billion triples
VertexDB AJAX API JSON
Weaver Property graph C, Python Node programs ACID HyperDex Automatic replication and migration

Distributed processing

Shared-memory graph processing

GPGPU graph processing

APIs and graph query-programming languages

See also

References

External links

This article is issued from Wikipedia - version of the Saturday, April 30, 2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.