首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >系谱图数据库

系谱图数据库
EN

Stack Overflow用户
提问于 2012-09-28 11:42:11
回答 2查看 2.9K关注 0票数 4

有人能指点我在谱系学上如何使用图表数据库吗?我想学习neo4j,我使用python,所以我想为自己制作一个系谱图db来学习图形db。我搜索了一些例子来模仿和学习(任何图db,任何语言),但是我发现的却是如此之少。

注意,我指的是图db,它的结构与关系数据库不同。见数据库

我正在寻找一个家谱的示例模式。

EN

回答 2

Stack Overflow用户

发布于 2014-03-23 15:24:29

如果你想学习做图数据库,你不需要使用任何软件。铅笔,纸和大脑就行了。要想想出一个设计方案,你需要记住以下几点:

  • 什么是图:顶点和边
  • 关于graphdb数据结构的具体内容是:顶点和边与类似python的dict相关联。
  • 为了解决我手头的问题,需要在图形数据库中提供什么信息。列出您想要对图形执行的所有查询。

在下面的图表中,您将看到一个可以作为设计基础的图表。

你必须想象每个节点都有一个名字,出生日期等等.和唯一的标识符。

它代表两个互不相连的家庭,左边一个有两个孩子,右边一个有三个孩子。

使用上面的图表,您可以计算:

  • 谁是X的父母?
  • 大家庭的父亲叫什么名字?

还有一些,因为只有两个只有父母和孩子的家庭,没有祖父母或大孩子的代表,你可能无法理解实际上你也可以计算以下查询:

  • 谁是那些以X为祖先,还活着的人?

现在,如果您想使用Python进行实验,那么您可以选择几个选项,首先是更简单的设置:

纯蟒蛇:

  • 创建继承dict的顶点类和Edge类。
  • 使用Python代码从真实的数据或其他方面构建一个家谱图。
  • 尝试查询。

Python和BerkleyDB

  • 免责声明:这是我的一个项目
  • 与纯Python版本相同,但图形保存在数据库中。API类似于neo4j python绑定。

它们是其他解决方案,但如果没有更多关于目标应用程序(例如web或桌面)的上下文,我无法将它们全部列出。它们是关于neo4j网站的一些信息,可能会有所帮助。

尽管如此,最好的解决方案可能涉及neo4j,但如果您想在多个数据库之间轻松切换以找到性能最佳的数据库,则需要网络应用程序的雷斯特或其他应用程序的蓝图。直接使用neo4j服务器的唯一原因是能够使用赛弗查询语言

如果我必须创建一个系谱‘ve应用程序并利用它创建一个企业,我将使用我已经构建的软件,即:

那些还没有准备好按原样生产。但那就是我会做的。

票数 4
EN

Stack Overflow用户

发布于 2014-03-23 15:39:44

如果您想使用快速数据库,没有服务器(也没有JVM)。我建议您尝试全新的斯巴凯 (正式Dex) python绑定。然而,原始API是不可移植的。然而,性能是数量级的更快。

第二个选择是使用鳞茎,它通过REST运行在Neo4j之上,它还支持任何Rexster服务器。查询语言是Gremlin (Cypher也能工作)。好的一点是,如果它更适合您的需要,您可以切换到不同的后端。

关于您的DB方案,您至少有一个节点和一个边缘:

1节点: PERSON (姓名、出生、死亡)是索引字段。

1从人到人的定向限制边缘: CHILD_OF或PARENT_OF。

您可以在节点之间添加更多的边缘,例如:兄弟姐妹、MARRIED_TO等。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12639342

复制
相关文章

相似问题

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