Database administration
Neo4j is a Database Management System, or DBMS, capable of managing multiple databases. The DBMS can manage a standalone server, or a group of servers in a cluster.
A database is an administrative partition of a DBMS. In practical terms, it is a physical structure of files organized within a directory or folder, that has the same name of the database. This chapter describes how to manage local and remote standard databases, composite databases, and database aliases.
Standard databases
In Neo4j 5, each standard database contains a single graph. Many administrative commands refer to a specific graph by using the database name.
A database defines a transaction domain (a collection of graphs that can be updated within the context of a single transaction) and an execution context (a runtime environment for the execution of a request). This means that a transaction cannot span across multiple databases. Similarly, a procedure is called within a database, although its logic may access data that is stored in other databases.
Standard databases per Neo4j edition
The edition of Neo4j determines the number of possible databases:
-
Installations of Community Edition can have exactly one standard database.
-
Installations of Enterprise Edition can have any number of standard databases.
Default database
A default installation of Neo4j 5 contains one standard database, named neo4j
, which is the default database for the DBMS.
A different name can be configured before starting Neo4j for the first time.
For details, see Configuration parameters.
The following image illustrates an installation of Neo4j containing the three standard databases, named marketing
, sales
, and hr
, and the system
database.
The default database is sales
:
Be aware that the automatically created initial default database may have a different topology to the default configuration values. See Default database in a cluster for more information. |
Per-user home databases
The home database is the database that you connect to by default when no database is specified. It is different from the default database, which is the database that the server uses when no home database is specified.
Per-user home databases are controlled via the Cypher administration commands.
To set a home database for a user, this user must exist as a record in Neo4j. Therefore, for deployments using auth providers other than native, you create a native user with a matching username and then set a home database for that user. For more information on creating native users and configuring a home database for a user, see Manage users.
The system
database
All installations include a built-in database named system
, which contains metadata on the DBMS and security configuration.
The system
database behaves differently than all other databases.
In particular, when connected to this database you can only perform a specific set of administrative tasks, such as managing databases, aliases, servers, and access control.
Most of the available administrative commands are restricted to users with specific administrative privileges. An example of configuring security privileges is described in Fine-grained access control.
Composite databases
A Composite database is a logical grouping of multiple graphs contained in other, standard databases. A Composite database defines an execution context and a (limited) transaction domain. For more information, see Composite databases.