Graph Database
ArcadeDB is a native graph database; and in this section we explain what this means and how this relates to applications.
Graph Components
Essentially a graph is tuple, or pair of sets, of vertices (aka nodes) and edges (aka arcs), whereas the set of vertices contains an (indexed) set of objects, and the set of edges contains (at least) pairs specifying a respective edge’s endpoints.
A particular type of graph is the directed graph, which is characterized by oriented edges, meaning each edge’s pair is ordered. A simple example of a directed graph is given by:
with:
-
Vertices: V = {v_1, v_2}
-
Edges: E = {e_(1,2)}
Graph Database Types
There are two prevalent data models for graph databases (both usually directed):
-
Triple store (RDF graph): data is represented as subject–predicate–object triples; all facts are uniform triples and semantics are standardized (RDF, RDFS/OWL, SPARQL).
-
Property Graph: vertices and edges carry labels (types) and arbitrary key/value properties directly attached to them.
ArcadeDB is a property graph database: vertices and edges have labels and can store arbitrary key/value properties, supporting compact storage, fast traversals, and flexible schema evolution within its multi-model, document‑oriented engine.
Practically, a vertex or edge consists of an identifier (RID), a label (type), and properties (document), plus ordered endpoint references. The latter are here vertex properties of incoming and outgoing edges, instead of edge properties of ordered vertex pairs, for technical reasons.
Why (Property) Graph Databases?
-
The modeled domain is already a network.
-
Fast traversal of relations instead of costly joins in relational databases.
-
Naturally annotated edges instead of inconvenient reification in RDF graphs.
See Also
-
Recommendation Engine — Use case combining graph traversals with collaborative filtering
-
Fraud Detection — Use case leveraging graph patterns to detect fraudulent activity
-
Gremlin API — Tinkerpop Gremlin query language for graph traversals
-
Cypher — OpenCypher query language for pattern matching on graphs