实现概念验证图数据库需要了解什么?

时间:2011-06-26 13:01:39

标签: graph-theory graph-databases

我有一个需要图形数据库的产品,不幸的是,我发现的所有图形数据库都不够成熟,花费了很多钱,或者根本无法满足我的需求。
我想实现一个具有以下功能的量身定制的图形数据库:

  • 只能指示图表。
  • 数据库必须嵌入正在运行的进程中,因此它将保存在内存中。
  • 数据库只会执行以下操作:
    • 从节点中读取。
    • 写入节点(创建/更新)
    • 删除节点
    • 边缘重定向(具有指向一个节点的边缘的节点现在指向另一个节点的操作)
    • 与此问题无关的图搜索算法。
  • 图形数据库只需要包含和处理三种类型的节点。

为了将此作为概念证明,我需要知道什么?写它需要多长时间? 一个面向功能的方法(我知道它更好地处理递归)是否比面向对象的方法更适合这里? 我的约束是否更容易实现?

2 个答案:

答案 0 :(得分:1)

如果您使用其他数据存储作为后端,您可以非常快速地编写概念验证,只需在顶部添加graphdb API即可。关于项目的大小:环顾一下像SourceForge和GitHub这样的地方你应该能够找到小的graphdb实现。然后,您可以查看源代码与功能的关系,并了解您的项目。你没有提到诸如交易和故障恢复之类的东西 - 如果你想要这样,它将需要更多的努力。

答案 1 :(得分:1)

  

数据库必须嵌入正在运行的进程中,因此它将保存在内存中。

您基本上可以使用任何类型的图形处理库(如QuickGraph for C#),并在后台线程中定期将数据库序列化为磁盘(如果突然断电或崩溃)。

你需要对图论(当然),多线程,并行计算(锁,事务等)有所了解,但如果你不需要交易,那么使用库基本上就可以成为IMO的周末项目。