非关系型
最后更新:2024-09-12 05:30:00
|
状态:未完成
非关系型数据库中有支持部分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两个表
也有不支持的如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中,用同一个主键值)