非关系型数据库

最后更新: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两个表


关系型数据库与图数据库的概念关系
关系型 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中,用同一个主键值)

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