非关系型数据库

最后更新:2024-03-28 09:29:53 | 状态:未完成
非关系型数据库中有支持部分JDBC协议的,如Neo4j,支持JDBC的一般会有两个适配器,一个基于JDBC(但支持的并不是非常完善,因为JDBC的表达能力有限),一个基于JAVA驱动
也有不支持的如MongoDB
无论是否支持我们都按关系型相同的方法操作,就是AnylineService接口中声明的方法。
如查询mysql的表用service.querys("表名") 查询mongoDB的文档同样也用service.querys("集合名")
对于部分JDBC表达不了的,再用相应的原生语法补充

非关系型数据库的查询结果经常会来自多表,就是DataRow.tables会是多个值
如MATCH (v:CRM_USER:HR_USER) RETURN v,这时结果集会的tables会是CRM_USR和HR_USER两个表


关系型数据库与图数据库的概念关系


catalog schema database 表(类) 行(实例) 列(属性)

顶点(节点)表(类型) 边(关系)表(类型) 顶点(节点) 边(关系)

原生 anyline实现 原生 anyline实现 原生 anyline实现 原生 anyline 原生 anyline实现 原生 anyline实现 原生 anyline实现 原生 anyline实现
Anyline相关方法名、参数名






Table








relational类型






Table








document类型






Collection








event类型
















graph类型
















kv类型
















object类型
















rdf类型
















search类型
















spatial类型
















time series类型
















vector类型
















wide-column类型
















Neo4j






Label








Elasticsearch






Index ElasticSearchIndex






mappings.properties
Column
MongoDB
















Nebula


































Catalog
SChema Database 顶点/节点 边/关系

原生 anyline实现 原生 anyline实现 原生 anyline实现 原生 anyline实现 原生
anyline实现
原生 anyline实现 原生 anyline实现 原生 anyline实现
Anyline相关方法名、参数名





Table


Column




relational类型






Table








document类型





Collection








event类型















graph类型















kv类型















object类型















rdf类型















search类型















spatial类型















time series类型















vector类型
















wide-column类型















Neo4j





Label


Property
Node

Relationship

Elasticsearch






Index ElasticSearchIndex


mappings.properties
Column



MongoDB















Nebula Space














关系型 AnyLine Nebula NebulaAdapter Neo4j Neo4jAdapter
Catalog Catalog Space Catalog

Table VertexTable extends GraphTable extends Table Tag(标签-点类型-点属性集合)  Tag extends VertexTable
Label(标签) Label extends VertexTable
Table EdgeTable extends GraphTable extends Table Edge Type(边类型-边属性集合)
EdgeType extends GraphTable RelationshipType(关系类型)
RelationshipType extends EdgeTable
VertexRow extends GraphRow extneds DataRow Vertex(点) 
VertexRow Node(节点) NodeRow  extends VertexRow
EdgeRow extends GraphRow extneds DataRow Edge(边)
EdgeRow Relationship(关系) RelationshipRow extends EdgeRow
Column Column Property(属性)
Column Property(属性) Column

为什么不用VertexType或VertexCollection?
因为type容易误会成一个属性,collection容易误会成结果集

与关系型不同的是,一个点可以有多个类型,相当于在多个表中,类似于扩展表(就是基础属性在一个Table中,更多属性放在另一个Table中,用同一个主键值)

相关分类
首页 最近更新 搜索 提交