文章目录
简介
Neo4j是一个高性能的NoSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。程序员工作在一个面向对象的、灵活的网络结构下而不是严格、静态的表中——但是他们可以享受到具备完全的事务特性、企业级的数据库的所有好处。
Neo4j属性图数据模型
Neo4j图数据库遵循属性图模型来存储和管理其数据。
属性图模型规则
- 表示节点,关系和属性中的数据
- 节点和关系都包含属性
- 关系连接节点
- 属性是键值对
- 节点用圆圈表示,关系用方向键表示。
- 关系具有方向:单向和双向。
- 每个关系包含“开始节点”或“从节点”和“到节点”或“结束节点”
在属性图数据模型中,关系应该是定向的。如果我们尝试创建没有方向的关系,那么它将抛出一个错误消息。
在Neo4j中,关系也应该是有方向性的。如果我们尝试创建没有方向的关系,那么Neo4j会抛出一个错误消息,“关系应该是方向性的”。
Neo4j图数据库将其所有数据存储在节点和关系中。我们不需要任何额外的RRBMS数据库或无SQL数据库来存储Neo4j数据库数据。它以图形的形式存储其数据的本机格式。
Neo4j使用本机GPE(图形处理引擎)引擎来使用它的本机图存储格式。
图形数据库数据模型的主要构建块是:
- 节点
- 关系
- 属性
使用
①下载:https://neo4j.com/download/
②打开后在主界面创建一个图数据库,设置名称和密码。
③点击Start。
④此时已经进入了图管理界面了,点击Open Browser进入可视化命令界面。
⑤在下图红框中输入相应的命令对数据库进行操作。
使用的命令语言为:Cypher
Cypher 是一种声明式的图数据库查询语言,能高效地查询和更新图数据。Cypher 语句可分为三类,包括读语句、写语句和通用语句:
- 读语句: MATCH、OPTIONAL MATCH、WHERE、START、AGGREGATION、LOAD CSV
- 写语句: CREATE、MERGE、SET、DELETE、REMOVE、FOREACH、CREATE UNIQUE
- 通用语句: RETURN、ORDER BY、LIMIT、SKIP、WITH、UNWIND、UNION、CALL
⑥输入导入数据语句
实例
其中baidubaike_genre.csv文件中有两列,一列是genre_id对应于line[0],另一列是名称,对应于line[1]。
1 |
LOAD CSV FROM 'file:///mysql_csv/baidubaike_genre.csv' AS line CREATE (:Genre { genre_id: line[0], genre_name: line[1] }); |
需要注意的是导入的数据根目录在个人文件夹的隐藏文件中(Linux与此不同)
路径为:C:\Users\你的用户名\.Neo4jDesktop\neo4jDatabases\database-你的数据库id\installation-3.5.14\import文件夹
⑦导入其他数据后的最终可视化结果(需要点击左侧标签的label)