1
0
Fork 0
arangodb/Documentation/Books/Users/General-Graphs
Michael Hackstein 9b62c7367b Deprecated _directedRelation and _undirectedRelation in general-graphs. Created _relation in general-graphs creating a _directedRelation. Handling undirected relations is now given to the user / api-implementor as arangodb itself does not offer any direction constrains which caused some confusion 2014-09-10 15:50:22 +02:00
..
FluentAQLInterface.mdpp Started improving the layout of FluentAQL Documentation in general graph module 2014-06-20 14:57:04 +02:00
Functions.mdpp processed lucas feedback regarding aql docu 2014-06-24 13:13:01 +02:00
Management.mdpp Deprecated _directedRelation and _undirectedRelation in general-graphs. Created _relation in general-graphs creating a _directedRelation. Handling undirected relations is now given to the user / api-implementor as arangodb itself does not offer any direction constrains which caused some confusion 2014-09-10 15:50:22 +02:00
README.mdpp Added glossary to the documentation. Also linked the glossary keywords to the documentation 2014-08-05 15:49:21 +02:00

README.mdpp

!CHAPTER Graphs

This chapter describes the general-graph module.
It allows you to define a graph that is spread across several edge and document collections.
This allows you to structure your models in line with your domain and group them logically in collections giving you the power to query them in the same graph queries.
There is no need to include the referenced collections within the query, this module will handle it for you.

!SECTION First Steps with Graphs

A Graph consists of *vertices* and *edges*. Edges are stored as documents in *edge
collections*. In general a vertex is stored in a document collection.
The type of edges that are allowed within a graph is defined by *edge definitions*:
An edge definition is a combination of a [edge collection](../Glossary/README.html#edge_collection), and the vertex collections that the edges within this collection can connect.
A graph can have an arbitrary number of edge definitions and arbitrary many additional vertex collections.

!SUBSECTION Warning

The underlying collections of the graph are still accessible using the standard methods for collections.
However the graph module adds an additional layer on top of these collections giving you the following guarantees:

* All modifications are executed transactional
* If you delete a vertex all edges will be deleted, you will never have loose ends
* If you insert an edge it is checked if the edge matches the definition, your edge collections will only contain valid edges

These guarantees are lost if you access the collections in any other way than the graph module or AQL, so if you delete documents from your vertex collections directly, the edges will be untouched.

!SUBSUBSECTION Three Steps to create a graph

@startDocuBlock JSF_general_graph_how_to_create