首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将关系数据库移植到Neo4j?

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

Stack Overflow用户
提问于 2013-08-18 06:01:48
回答 5查看 892关注 0票数 0

我在玩Neo4j,但是我想把我的头放在图的概念上。作为一个学习过程,我希望将一个小型Postgres关系数据库模式移植到Neo4j。有任何方法可以移植它并向Neo4j发出“等效的”关系查询吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2017-06-14 01:05:14

这个工具就是这么做的。将任何关系数据库导入neo4j https://github.com/jexp/neo4j-rdbms-import

票数 1
EN

Stack Overflow用户

发布于 2013-08-18 09:46:57

恐怕不行。关系数据模型和图形数据模型是两种不同的建模方法。它需要人脑(至少在2013年)才能理解这个领域,才能对其进行建模。

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

然后,接受一个您想要得到回答的查询,并试图找出在没有计算机的情况下您将如何做到这一点,只需在那张纸上用手指跟踪节点和关系。一旦你明白了这一点,就把你所做的事情转化成一个赛弗查询。

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

票数 2
EN

Stack Overflow用户

发布于 2013-08-18 11:27:59

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

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

对应于实体关系图中的实体的表定义了节点的类型。在即将发布的neo4j 2.0中,您可以用实体的名称来标记它们,从而使查找变得更容易。在旧版本中,可以使用索引或手动标签属性。

假设最好的情况是,数据之间的所有关系都是使用外键建模的,那么节点之间的任何1:1关系都可以识别并移植。

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

因此,作为一个例子,假设表Author[id, name, publisher foreign key]Publisher[id, name]Book[id, title]written_by[author foreign key, book foreign key]

  • AuthorPublisherBook中的每一行都成为一个节点。
  • 每个Author节点都会得到一个由外键关系标识的发布者的关系。
  • 对于written_by中的每一行,在引用的Author节点和Book节点之间添加一个关系

对于neo4j中的查询,我推荐赛弗,因为它具有表现力。查找某个作者的书籍的(2.0)查询如下所示:

代码语言:javascript
复制
MATCH (author:Author)-[:written_by]-(book:Book)
WHERE author.name='Hugh Laurie'
RETURN book.title
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18296199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档