Database 数据库中的超图

Database 数据库中的超图,database,data-structures,graph,hypergraph,Database,Data Structures,Graph,Hypergraph,我从一个项目开始,我需要将我的数据显示为hypergraph。 想法是: 我有一系列的元素(顶点),我可以混合它们(创建边)。每个边都可以与元素混合。 这个想法是这样的: result / mix(1+2) + element 3 | +---------+ | |

我从一个项目开始,我需要将我的数据显示为hypergraph。 想法是:
我有一系列的元素(顶点),我可以混合它们(创建边)。每个边都可以与元素混合。 这个想法是这样的:

                result
                 /
            mix(1+2) +
            element 3
                |
                +---------+
                |         |
             element      |
             1+2(mix)  element
               /|         3
              / |
             /  |
            /   |
        element |
           1    |
             element
                2
我需要知道所有的混音并保存结果。 在我有足够的数据后,我需要对其进行分析,当用户选择3个或更多元素时,我需要显示他可以得到的所有结果

我需要建立一个数据库结构来支持图形算法,它必须工作得很快。哪种类型的数据库可以解决这个问题,我应该如何构建结构?我需要使用图形数据库、sql还是NoSql?

我将感谢您提供任何想法或示例。

这取决于您希望运行的查询类型。但对于面向图的探索(读取图遍历),您需要一个图数据库

要在任何图形数据库中支持超边,诀窍是创建一个类型为:hyperedge的节点,并将节点链接到它,就像您在图形中所做的那样

hyperedge对象可以有子节点或hyperedge对象(查询结果)

实现这一点,我知道的最快的图形数据库是用C++编写的.NET、java、python、Obj-C绑定。这是免费的学术用途(你将需要一个串行无论如何。)

否则,您可以使用最流行的图形数据库(开源免费)


如果您的数据规模很大,您可能需要探索,并在Cassandra或HBase(2个NoSQL数据库)之上开发开源图形数据库。

您可以尝试HypergraphDB


这是一个简单的Java库(要添加到您的项目中的jar文件),并使用嵌入式数据库作为后端,它允许您在不安装特定后台运行服务器的情况下使用图形。

谢谢,我将查看所有这些文件。当然我会的。我想把它标记为有用的,但我的名声不允许我这么做。我将阅读您提到的所有数据库,然后接受答案:)