Neo4j学习
建模
图数据结构
属性图结构
- 包含节点和边,同时节点和边上又有属性property和标签label
- 边有名字和方向
图数据库查询语言
- Cypher
应用于Neo4j、GDB等 - Gremlin
应用于GDB
跨域模型
在节点和关联关系不是很复杂的情况下,我们建的图通常只有一个领域的内容,比如人与人之间的关联图谱。但是随着业务的发展,我们会觉得单一的人物关系不能满足我们的使用需求,我还希望加入企业注册数据,来进行企业与人之间的管理分析。随后,我们陆续加入了法律诉讼信息、新闻资讯信息等,这样我们的图从一张小图变成了大图,也从只有一个领域(人)的模型变成了多个领域的跨域模型。
跨域模型有助于我们理解复杂的价值链背后的关联,不仅可以联合多个领域,而且每个领域的内容又能单独区分开来。这里主要借助了图数据里的2个概念:属性图和标签。属性图模型让不同的领域很容易联系起来,这样每个域都是可达的;标签既能表示不同节点在域中扮演的角色,又可以让我们将它归属的节点和元数据结合起来。
面向查询设计
建模其实就是利用图结构来描述问题的过程,为了使我们的模型更接近业务需求,有一个方法,叫做面向查询设计:
- 将需求转化为领域问题
- 明确领域内出现的节点和关系
- 把这些节点和联系翻译成查询语言
- 使用路径表达式,描述需要解决的问题
使用图查询语言构建数据模型
1 | # 创建带有属性name和age的People节点 |