非关系型数据库
最后更新: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两个表
也有不支持的如MongoDB
无论是否支持我们都按关系型相同的方法操作,就是AnylineService接口中声明的方法。
如查询mysql的表用service.querys("表名") 查询mongoDB的文档同样也用service.querys("集合名")
对于部分JDBC表达不了的,再用相应的原生语法补充
非关系型数据库的查询结果经常会来自多表,就是DataRow.tables会是多个值
如MATCH (v:CRM_USER:HR_USER) RETURN v,这时结果集会的tables会是CRM_USR和HR_USER两个表
关系型数据库与图数据库的概念关系
关系型 | 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中,用同一个主键值)