Difference between Graph and Database

Hi you all !

In the Neo4j Desktop app, I create a new project (for instance, "my projects") and then I am given the option to add a new GRAPH. As I add one, 2 DATABASES are created, "system" and "neo4" (the default). And within the same GRAPH, I can create a third and a fourth DATABASE. So, it looks like a GRAPH is a container for 2 or more DATABASES. However, in section 5.1.1 of the Neo4j Operations Manual v.4, I read: "a database is a container for one or more graphs". I am totally confused... Could someone please help clarify this issue?


It's not surprising that this is a confusing thing, as prior to 4.0 dbms ~ database ~ graph, since you could really only have 1. Multi-database functionality is forcing us to clean up and clarify our language here. You may be using an older version of Neo4j Desktop (you may need to download a newer install), as the latest versions of Desktop now use "Add Database" instead of "Add Graph"...but unfortunately this still isn't quite accurate.

What you're adding in Desktop is more like a dbms, a Neo4j instance.

Once you start that up, it will be default have 2 databases (neo4j and system) and you can of course add more.

Currently we have 1 graph per database, so at this time database ~ graph, but we are looking into multi-graph features, allowing multiple graphs per db, so these two terms will no longer be interchangeable at some point.

So the tl;dr is:

A dbms is a container for 1 or more databases (in 4.0 you will have 2 by default, due to the system db)
A database is a container for 1 or more graphs (though multiple are not currently possible)

Work on clarifying and cleaning up our terms accordingly is ongoing.

Thank you, Andrew. It is crystal clear now!