当前位置:网站首页>图数据库(Neo4j)入门
图数据库(Neo4j)入门
2022-08-10 20:41:00 【HadesZ~】
1. 基本概念
Neo4j 是一种目前主流的图数据库,它采用属性图(Property Graph)方式来表示图结构数据。在 Neo4j 中,采用特定的数据模型来存储知识图谱中某一概念的数据,其数据模型标签(Node labels)、节点(Node)、关系(Relationship)、关系类型(Relationship type)和关系类型(Relationship type)五种,它们与知识图谱中概念的对应关系如下所示:
| 知识图谱概念 | Neo4j 数据模型 |
|---|---|
| 概念(class) | 标签(Node labels) |
| 实体(entity) | 节点(Node) |
| 关系(relation) | 关系类型(Relationship type) |
| 关系(relation) | 关系(Relationship) |
| 属性(Properties) |
可见,知识图谱中的概念(class)由标签(Node labels)数据模型来实现,实体(entity)由节点(Node)数据模型来实现,关系(relation)由关系类型(Relationship type)数据模型和关系(Relationship)数据模型共同实现,属性(Properties)数据模型是属性图(Property Graph)特有的理论概念,它负责记录实体或关系的定、状、补语等描述性信息。
标签(Node labels)
标签通过将节点分组(分类)为集合来塑造域,其中具有特定标签的所有节点都属于同一集合。例如,所有代表用户的节点都可以用 label 标记User。有了这些,您可以要求 Neo4j 仅在您的用户节点上执行操作,例如查找具有给定名称的所有用户。
由于标签可以在运行时添加和删除,它们也可以用于标记节点的临时状态。一个节点可以有零到多个标签,可以添加更多的标签来表达数据的不同维度。
关系
关系描述了源节点和目标节点之间的连接是如何相关的1,它是一条自源节点指向目标节点有(方)向连线,它必须有且只有一种关系类型,来定义(分类)该连线是什么类型的关系。
关系总是有方向的,但在没有用处的地方可以忽略方向。这意味着不需要添加相反方向的重复关系,除非需要正确描述数据模型。
属性(Properties)
属性是用于在节点和关系上存储数据的键值对。属性的值可以保存不同的数据类型,例如number、string或boolean,也可以保存包含例如字符串、数字或布尔值的列表(数组)。
2. 常用命令
Cypher 是 Neo4j 的图形查询语言,允许用户从图数据库存储和检索数据。它就像用于图数据的 SQL,并受到 SQL 的启发,因此它可以让您专注于想要从图形中获取哪些数据(而不是如何获取它)。
3. Python API
节点也可能与其自身有关系,即源节点和目标节点可能是同一个节点。 ︎
边栏推荐
- LeetCode 1-10题
- [SemiDrive source code analysis] [MailBox inter-core communication] 52 - DCF Notify implementation principle analysis and code combat
- Iridium Ruthenium Alloy/Iridium Oxide Biomimetic Nanozyme | Palladium Nanozyme | GMP-Pd Nanozyme | Gold-Palladium Composite Nanozyme | Ternary Metal Pd-M-Ir Nanozyme |shell nanozyme
- 参天生长大模型:昇腾AI如何强壮模型开发与创新之根?
- CGO 初步认知和基本数据类型转换
- idea插件 协议 。。 公司申请软件用
- 根心与根轴
- @Autowired annotation --required a single bean, but 2 were found causes and solutions
- 【语义分割】2016-SegNet TPAMI
- OPPO Enco X2 迎来秋季产品升级 旗舰体验全面拉满
猜你喜欢
随机推荐
How to submit a PR?【OpenHarmony Growth Plan】【OpenHarmony Open Source Community】
npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.
mysql----group by、where以及聚合函数需要注意事项
报错:runtime error: reference binding to null pointer of type ‘std::vector<int, std::allocator<int>>‘
@Autowired annotation --required a single bean, but 2 were found causes and solutions
2019河北省大学生程序设计竞赛部分题题解
如何提高代码的可读性 学习笔记
2021 GKCTF X DASCTF应急挑战杯
The 2021 ICPC Asia Shanghai Regional Programming Contest D、E
优雅退出在Golang中的实现
[Golang]用反射让你的代码变优美
测试开发【Mock 平台】08 开发:项目管理(四)编辑功能和Component抽离
洛谷 P1629 邮递员送信 (三种最短路)
[SWPUCTF 2021 新生赛] web
第四届红帽杯网络安全大赛
Getting started with kuberentes Auditing
Are you hungry - Institution tree radio
(12) findContours function hierarchy explanation
什么是抽象类?什么时候用?什么是接口?抽象类与接口的区别?
C 语言 时间函数使用技巧(汇总)








