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 InfiniteGraph and ArangoDB.
Home |
||||
GitHub |
||||
Docs |
||||
Application areas |
CMS, social networks, GIS systems, ERP, … |
Master data management, social networks, time series, key value, traffic management |
Extension of Objectivity/DB installations |
Fraud Detection, IoT, identity management,, e-commerce, network, logistics, CMS |
Development language |
Java |
Java |
Java |
C++, JavaScript |
Licenses |
AGPL and commercially |
Apache License 2.0 |
commercially |
Apache License 2.0 |
Data model |
Multi-Model |
Multi-model: documents, graphs and Key/value pair |
||
Query langauge |
Traverser API, PQL |
|||
Transactions, concurrency |
||||
Replication, skaling |
Master-slave with master failover |
Multi-master replication, Sharding |
Objectivity/DB, no Graph partitioning |
Master-slave replication, sharding |
Remarks |
InfiniteGraph is a graph database on top of the Object database systems Objectivity/DB, whereby the objects are connected by edges. Multiple and bidirectional edges are also allowed here. Iterators correspond to the Graph traversal. |