有人可以向我指出谱系图数据库的有效使用吗?我想学习 neo4j 并且使用 python,所以我想为自己制作一个谱系图数据库来学习图数据库。我搜索了可以模拟和学习的示例(任何图形数据库,任何语言),但令我惊讶的是我发现的很少。
注意我的意思是图数据库,它的结构与关系数据库不同。看http://en.m.wikipedia.org/wiki/Graph_database http://en.m.wikipedia.org/wiki/Graph_database.
我正在寻找谱系的示例模式。
如果你想学习做graphdb,你不需要使用任何软件。铅笔、纸和大脑就可以了。提出设计时需要考虑的事项是:
- 什么是图:顶点和边
- graphdb 数据结构的具体特点是:顶点和边与类似 python 的字典相关联。
- graphdb 中需要包含哪些信息才能解决我手头的问题。列出您希望能够对图表执行的所有查询。
在下图中,您将看到一个可以作为设计基础的图表。
你必须想象每个节点都有一个名字、出生日期等......以及一个唯一的标识符。
它代表了两个互不相连的家庭,左边一个有两个孩子,右边一个有三个孩子。
通过上图,您可以计算:
而其他人,由于只有两个家庭,只有父母和孩子,没有祖父母或孙子女代表,您可能无法理解实际上您还可以计算以下查询:
现在,如果您想尝试使用 Python,您有多种选择,从更简单的设置开始:
纯蟒蛇:
- 创建继承dict的Vertex类和Edge类。
- 使用来自真实数据或其他数据的 Python 代码构建谱系图。
- 尝试查询。
Python 和 BerkleyDB https://bitbucket.org/amirouche/ajgu-graphdb
- 免责声明:这是我的一个项目
- 与纯 Python 版本相同,只是图形保存在数据库中。该 API 类似于 neo4j python 绑定。
它们是其他解决方案,但如果没有有关目标应用程序(例如网络或桌面)的更多上下文,我无法全部列出。它们是一些关于Neo4j 网站 http://www.neo4j.org/develop/python这可能会有帮助。
也就是说,最好的解决方案可能涉及 Neo4j,但是Rexster https://github.com/tinkerpop/rexster/wiki对于网络应用程序或蓝图 https://github.com/tinkerpop/blueprints/wiki如果您想轻松地在多个数据库之间切换以找到适合您用例性能的最佳数据库,则需要其他数据库。直接使用 Neo4j 服务器的唯一原因是能够使用密码查询语言 http://docs.neo4j.org/chunked/stable/cypher-query-lang.html.
如果我必须创建一个家谱网络应用程序并从中建立业务,我会使用我构建的软件,即:
- Java-GraphitiDB https://bitbucket.org/amirouche/java-graphitidb
- 石墨 ORM https://bitbucket.org/amirouche/graphiti-unmaintained
这些还没有准备好按原样进行生产。但这就是我会做的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)