元数据

目录和模式

连接级别上所有处理元数据和可用内容信息的 方法都以 SQL 标准中定义的术语提供信息,包括目录和模式。

在大多数关系数据库中,目录等同于服务器或集群上的特定数据库,而模式是指该目录中表、视图和过程的集合。

来自 SQL 1992 标准(在此处找到存档副本 here

(4.12) 目录是 SQL 环境中模式的命名集合。SQL 环境包含零个或多个目录。目录包含一个或多个模式,但始终包含一个名为 INFORMATION_SCHEMA 的模式,其中包含信息模式的视图和域。

此驱动程序不支持目录(见 discussion 55),因此任何元数据结果集在查询数据库对象的目录时都会返回字面量 null。没有元数据方法支持对非空目录参数进行过滤,并且在查询中不能使用目录说明符。未来的开发可能会使用目录来描述复合数据库,本质上是在连接中列出复合数据库的组成部分。

同一标准将模式定义如下:

(4.11) SQL 模式是包含以下内容的持久描述符:

[…] SQL 模式的每个组件的描述符。

在本国际标准中,术语“模式”仅用于 SQL 模式的意义。每个组件描述符要么是域描述符、基本表描述符、视图描述符、断言描述符、特权描述符、字符集描述符、排序规则描述符或翻译描述符。由描述符描述的持久对象被称为由模式的 <授权标识符>拥有或由其创建。

我们将字面量名称 public 作为任何元数据结果集的组件结果的模式进行报告。我们支持查询任何模式中的对象,但是只有字面量 nullpublic 才会产生结果。

标签将作为表对象报告,其中 TABLE_TYPE 为字面量 TABLE

总结

  • 目录:始终为 null;对任何非空值进行过滤都不会产生结果。

  • 模式:始终为 public;对 public 和字面量进行过滤会产生结果,其他任何值都不会。

  • 表描述符:在 TABLE_TYPE 列中报告为 TABLE

标签到表

CLG 和 Langstar 小组谈论“节点类型组合”并倾向于在 GQL 标准中使用“开放节点类型语义”

节点类型组合是开放节点类型语义的一种不太宽松的形式。节点类型组合的概念是,节点也符合图类型,如果它们不是图类型的节点类型集中的一种节点类型,而是图类型的节点类型集中节点类型的交集(子集)的一种节点类型。

他们提案的一个示例可以在 here 找到。

因此,此驱动程序以类似的方式计算节点类型

  • 单个标签节点将自然映射到表名,单个标签将成为表名

    • 标签名称将按原样使用,并且区分大小写。标签 MoviemovieMOVIE 将导致元数据中的三个表

    • 这与默认的 SQL 到 Cypher 转换一致

  • 节点类型组合将映射到组合为 label1_label2 的表名,按字母顺序对标签进行排序,使其独立于 Neo4j 返回它们的顺序

  • 然后将计算这些节点类型组合的属性集