Graph database systems

Graph databases specialise in networked information and the simplest and most efficient possible Graph traversal.

Graph model

A graph consists of a number of nodes and edges. Graphs are used to represent a variety of problems through nodes, edges and their relationships, for example in navigation systems in which the paths are stored in the form of graphs.

Graph traversal

Graph traversal is mostly used to find nodes. There are different algorithms for such search queries in a graph, which can be roughly divided into

  • Breadth-first search, BFS and depth-first search, DFS

    The breadth-first search begins with all neighboring nodes of the start node. In the next step, the neighbors of the neighbors are then searched. The path length increases with each iteration.

    The depth-first search follows a path until a node with no outgoing edges is found. The path is then traced back to a node that has further outgoing edges. The search will then continue there.

  • Algorithmic traversal

    Examples of algorithmic traversal are

    • Hamiltonian path (traveling salesman)

    • Eulerian path

    • Dijkstra’s algorithm

  • Randomised traversal

    The graph is not run through according to a certain scheme, but the next node is selected at random. This allows a search result to be presented much faster, especially with large graphs, but this is not always the best.

Database systems

Typical graph databases are Neo4j, OrientDB and ArangoDB.

Home

Neo4j

OrientDB

ArangoDB

GitHub

neo4j/neo4j

orientechnologies/orientdb

arangodb/arangodb

Docs

neo4j.com/docs/

orientdb.dev/docs/

arangodb.com/documentation/

Application areas

CMS, social networks, GIS systems, ERP, …

Master data management, social networks, time series, key value, traffic management

Fraud Detection, IoT, identity management,, e-commerce, network, logistics, CMS

Development language

Java

Java

C++, JavaScript

Licenses

AGPL and commercially

Apache License 2.0

Apache License 2.0

Data model

Property graph model

Multi-Model

Multi-model: documents, graphs and Key/value pair

Query langauge

REST, Cypher, Gremlin

Extended SQL, Gremlin

ArangoDB Query Language (AQL)`_

Transactions, concurrency

ACID

ACID, MVCC – Multiversion Concurrency Control

Replication, skaling

Master-slave with master failover

Multi-master replication, Sharding

Master-slave replication, sharding

Remarks