如何将关系数据库移植到Neo4j?

如何将关系数据库移植到Neo4j?,neo4j,cypher,Neo4j,Cypher,我正在玩Neo4j,但我试图让自己的头脑了解图形概念。作为一个学习过程,我想将一个小型Postgres关系数据库模式移植到Neo4j。有什么方法可以移植它并向Neo4j发出等效的关系查询吗?恐怕不行。关系数据模型和图形数据模型是对真实领域建模的两种不同方式。至少在2013年,它需要一个人脑来理解这个领域,以便对其进行建模 我建议你拿一张纸,用圆圈和箭头捕捉你的实体是什么节点,以及它们如何相互关联。然后,看看那张纸。瞧,你的新Neo4j数据模型 然后,提出一个你想要回答的问题,试着找出在没有计算机

我正在玩Neo4j,但我试图让自己的头脑了解图形概念。作为一个学习过程,我想将一个小型Postgres关系数据库模式移植到Neo4j。有什么方法可以移植它并向Neo4j发出等效的关系查询吗?

恐怕不行。关系数据模型和图形数据模型是对真实领域建模的两种不同方式。至少在2013年,它需要一个人脑来理解这个领域,以便对其进行建模

我建议你拿一张纸,用圆圈和箭头捕捉你的实体是什么节点,以及它们如何相互关联。然后,看看那张纸。瞧,你的新Neo4j数据模型

然后,提出一个你想要回答的问题,试着找出在没有计算机的情况下你会怎样做,只需用手指在那张纸上追踪你的节点和关系。一旦你明白了这一点,把你所做的翻译成一个密码查询


看看neo4j.org,有很多例子。

是的,您可以将现有模式移植到图形数据库。请记住,这不一定是数据的最佳模型,但它是一个起点

它有多容易在很大程度上取决于现有模式的质量

实体关系图中与实体对应的表定义了节点的类型。在即将发布的neo4j 2.0中,您可以使用实体名称对其进行标记,以简化查找。在旧版本中,可以使用索引或手动标签特性

假设在最佳情况下,数据之间的所有关系都是使用外键建模的,那么节点之间的任何1:1关系都可以识别出来,然后进行移植

对于建模n:m关系的表,标识相应的节点并在它们之间添加直接关系

例如,假设表Author[id,name,publisher-foreign-key]、publisher[id,name]和Book[id,title]由[Author-foreign-key,Book-foreign-key]编写

Author、Publisher和Book中的每一行都成为一个节点。 每个Author节点都获得与由外键关系标识的发布服务器的关系。 对于writed_中的每一行,在Author节点和被引用的Book节点之间添加一个关系 对于neo4j中的查询,由于其表达能力,我推荐使用它。2.0查询某些作者的书籍时,会出现以下情况:

MATCH (author:Author)-[:written_by]-(book:Book)
WHERE author.name='Hugh Laurie'
RETURN book.title

实际上,您手头有几个选项:

使用 将schema+数据导出到可由 或者你能做到 看看这个:

音乐之旅->neo4j

Neo4j Sql导入器


祝你好运

这个工具正是这样做的。 将任何关系数据库导入neo4j