Skip to main content
Version: Next

Dgraph Glossary

note

This is a glossary of Dgraph terms

Alpha​

A Dgraph cluster consists of Zero and Alpha nodes. Alpha nodes host relationships (also known as predicates) and indexes. Dgraph scales horizontally by adding more Alphas.

Badger​

Badger is a fast, open-source key-value database written in pure Go that provides the storage layer for Dgraph. More at Badger documentation

DQL​

Dgraph Query Language is Dgraph's proprietary language to insert, update, delete and query data. It is based on GraphQL, but is more expressive. (See also: GraphQL)

Edge​

In the mental picture of a graph: bubbles connected by lines ; the bubbles are nodes, the lines are edges. In Dgraph terminology edges are relationships i.e an information about the relation between two nodes.

Facet​

A facet represents a property of a relationship.

Graph​

A graph is a simple structure that maps relations between objects. In Dgraph terminology, the objects are nodes and the connections between them are relationships.

GraphQL​

GraphQL is a declarative language for querying data used by application developers to get the data they need using GraphQL APIs. GraphQL is an open standard with a robust ecosystem. Dgraph supports the deployment of a GraphQL data model (GraphQL schema) and automatically exposes a GraphQL API endpoint accepting GraphQL queries.

gRPC​

gRPC is a high performance Remote Procedure Call (RPC) framework used by Dgraph to interface with clients. Dgraph has official gRPC clients for go, C#, Java, JavaScript and Python. Applications written in those language can perform mutations and queries inside transactions using Dgraph clients.

Lambda​

A Lambda Resolver (Lambda for short) is a GraphQL resolver supported within Dgraph. A Lambda is a user-defined JavaScript function that performs custom actions over the GraphQL types, interfaces, queries, and mutations. Dgraph Lambdas are unrelated to AWS Lambdas.

Mutation​

A mutation is a request to modify the database. Mutations include insert, update, or delete operations. A Mutation can be combined with a query to form an Upsert.

Node​

Conceptually, a node is "a thing" or an object of the business domain. For every node, Dgraph stores and maintains a universal identifier UID, a list of properties, and the relationships the node has with other nodes.

The term "node" is also used in software architecture to reference a physical computer or a virtual machine running a module of Dgraph in a cluster. See Aplha node and Zero node.

Predicate​

In RDF terminology, a predicate is the smallest piece of information about an object. A predicate can hold a literal value or can describe a relation to another entity :

  • when we store that an entity name is "Alice". The predicate is name and predicate value is the string "Alice". It becomes a node property.
  • when we store that Alice knows Bob, we may use a predicate knows with the node representing Alice. The value of this predicate would be the uid of the node representing Bob. In that case, knows is a relationship.

RATEL​

Ratel is an open source GUI tool for data visualization and cluster management that’s designed to work with Dgraph and DQL. See also: Ratel Overview.

RDF​

RDF 1.1 is a Semantic Web Standard for data interchange. It allows us to make statements about resources. The format of these statements is simple and in the form of <subject> <predicate> <object>. Dgraph supports the RDF format to create, import and export data. Note that Dgraph also supports the JSON format.

Relationship​

A relationship is a named, directed link relating one node to another. It is the Dgraph term similar to edge and predicate. In Dgraph a relationship may itself have properties representing information about the relation, such as weight, cost, timeframe, or type. In Dgraph the properties of a relationship are called facets.

Sharding​

Sharding is a database architecture pattern to achieve horizontal scale by distributing data among many servers. Dgraph shards data per relationship, so all data for one relationship form a single shard, and are stored on one (group of) servers, an approach referred to as 'predicate-based sharding'.

Triple​

Because RDF statements consist of three elements: <subject> <predicate> <object>, they are called triples. A triple represents a single atomic statement about a node. The object in an RDF triple can be a literal value or can point to another node. See DQL RDF Syntax for more details.

  • when we store that a node name is "Alice". The predicate is name and predicate value is the string "Alice". The string becomes a node property.
  • when we store that Alice knows Bob, we may use a predicate knows with the node representing Alice. The value of this predicate would be the uid of the node representing Bob. In that case, knows is a relationship.

UID​

A UID is the Universal Identifier of a node. uid is a reserved property holding the UID value for every node. UIDs can either be generated by Dgraph when creating nodes, or can be set explicitly.

Upsert​

An upsert operation combines a Query with a Mutation. Typically, a node is searched for, and then depending on if it is found or not, a new node is created with associated predicates or the exixting node relationships are updated. Upsert operations are important to implement uniqueness of predicates.

Zero​

Dgraph consists of Zero and Alpha nodes. Zero nodes control the Dgraph database cluster. It assigns Alpha nodes to groups, re-balances data between groups, handles transaction timestamp and UID assignment.