数据库管理

Neo4j 是一个数据库管理系统,或称 DBMS,能够管理多个数据库。DBMS 可以管理独立服务器或集群中的服务器组。

数据库是 DBMS 的一个管理分区。实际上,它是在目录或文件夹中组织的文件的物理结构,其名称与数据库相同。本章介绍如何管理本地和远程标准数据库、复合数据库和数据库别名。

标准数据库

在 Neo4j 5 中,每个标准数据库包含一个图形。许多管理命令通过使用数据库名称来引用特定图形。

数据库定义了一个事务域(可以在单个事务的上下文中更新的图形集合)和一个执行上下文(请求执行的运行时环境)。这意味着事务不能跨越多个数据库。类似地,过程在数据库中调用,尽管其逻辑可能会访问存储在其他数据库中的数据。

每个 Neo4j 版本的标准数据库

Neo4j 的版本决定了可能的数据库数量

  • 社区版的安装只能有**一个**标准数据库。

  • 企业版的安装可以有任意数量的标准数据库。

默认数据库

Neo4j 5 的默认安装包含一个名为 neo4j 的标准数据库,它是 DBMS 的默认数据库。在首次启动 Neo4j 之前,可以配置不同的名称。有关详细信息,请参阅 配置参数

下图展示了一个 Neo4j 安装示例,其中包含三个标准数据库,分别命名为marketingsaleshr,以及system数据库。默认数据库为sales

manage dbs default
图 1. 多数据库 Neo4j 安装,带默认数据库。

请注意,自动创建的初始默认数据库的拓扑结构可能与默认配置值不同。有关更多信息,请参阅集群中的默认数据库

每个用户的 home 数据库

home 数据库是在未指定数据库时默认连接的数据库。它与默认数据库不同,默认数据库是在未指定 home 数据库时服务器使用的数据库。

每个用户的 home 数据库通过 Cypher 管理命令进行控制。

要为用户设置 home 数据库,此用户必须作为记录存在于 Neo4j 中。因此,对于使用身份验证提供程序(而非原生提供程序)的部署,您需要创建一个具有匹配用户名原生的用户,然后为该用户设置 home 数据库。有关创建原生用户和为用户配置 home 数据库的更多信息,请参阅管理用户

system 数据库

所有安装都包含一个名为system的内置数据库,其中包含有关 DBMS 和安全配置的元数据。

system数据库的行为与所有其他数据库不同。特别是,当连接到此数据库时,您只能执行一组特定的管理任务,例如管理数据库、别名、服务器和访问控制。

大多数可用的管理命令仅限于具有特定管理权限的用户。有关配置安全权限的示例,请参阅细粒度访问控制

manage dbs community
图 2. 默认 Neo4j 安装。
manage dbs enterprise
图 3. 多数据库 Neo4j 安装。

复合数据库

复合数据库是包含在其他标准数据库中的多个图形的逻辑分组。复合数据库定义了一个执行上下文和一个(有限的)事务域。有关更多信息,请参阅复合数据库