数据库中的超图
Hypergraph in database
我开始了一个项目,我需要将我的数据呈现为超图。
思路是:
我有一系列元素(顶点),我可以混合它们(创建边)。每条边都可以与元素混合。
这个想法看起来像这样:
result
/
mix(1+2) +
element 3
|
+---------+
| |
element |
1+2(mix) element
/| 3
/ |
/ |
/ |
element |
1 |
element
2
我需要了解所有混音并保存结果。
在我有足够的数据后,我需要对其进行分析,当用户选择 3 个或更多元素时,我需要显示他可以获得的所有结果。
我需要构建一个数据库结构来支持图形算法,并且它必须快速运行。哪种类型的数据库可以解决这个问题,我应该如何构建结构?我需要使用图形数据库,sql 还是 NoSql?
我将不胜感激任何想法或例子。
这取决于您要查询的类型 运行。但是对于面向图的探索(阅读图遍历),你需要一个图数据库。
要在任何图形数据库中支持超边,诀窍是创建一个节点类型:hyperedge 和 link 与您完全一样的节点做了你的图。
超边对象可以有子节点或超边对象(查询的结果)。
为了实现这一点,我知道最快的图形数据库是 Sparksee 用 C++ 和 .Net、Java、Python、Obj-C 绑定编写的。它对学术用途是免费的(无论如何你都需要一个连续剧。)
否则,您可以使用Neo4j,这是最流行的图形数据库(免费开源)。
如果您的数据规模非常大,您可能想要探索 Titan,以及基于 Cassandra 或 HBase(2 个 NoSQL 数据库)的开源图形数据库。
您可以试试 HypergraphDB http://www.hypergraphdb.org/。
它是一个简单的 Java 库(添加到项目中的 jar 文件)并使用嵌入式数据库作为后端,它允许您在不安装特定后台 运行 服务器的情况下使用图形.
我开始了一个项目,我需要将我的数据呈现为超图。
思路是:
我有一系列元素(顶点),我可以混合它们(创建边)。每条边都可以与元素混合。
这个想法看起来像这样:
result
/
mix(1+2) +
element 3
|
+---------+
| |
element |
1+2(mix) element
/| 3
/ |
/ |
/ |
element |
1 |
element
2
我需要了解所有混音并保存结果。
在我有足够的数据后,我需要对其进行分析,当用户选择 3 个或更多元素时,我需要显示他可以获得的所有结果。
我需要构建一个数据库结构来支持图形算法,并且它必须快速运行。哪种类型的数据库可以解决这个问题,我应该如何构建结构?我需要使用图形数据库,sql 还是 NoSql?
我将不胜感激任何想法或例子。
这取决于您要查询的类型 运行。但是对于面向图的探索(阅读图遍历),你需要一个图数据库。
要在任何图形数据库中支持超边,诀窍是创建一个节点类型:hyperedge 和 link 与您完全一样的节点做了你的图。
超边对象可以有子节点或超边对象(查询的结果)。
为了实现这一点,我知道最快的图形数据库是 Sparksee 用 C++ 和 .Net、Java、Python、Obj-C 绑定编写的。它对学术用途是免费的(无论如何你都需要一个连续剧。)
否则,您可以使用Neo4j,这是最流行的图形数据库(免费开源)。
如果您的数据规模非常大,您可能想要探索 Titan,以及基于 Cassandra 或 HBase(2 个 NoSQL 数据库)的开源图形数据库。
您可以试试 HypergraphDB http://www.hypergraphdb.org/。
它是一个简单的 Java 库(添加到项目中的 jar 文件)并使用嵌入式数据库作为后端,它允许您在不安装特定后台 运行 服务器的情况下使用图形.