0

我已经在互联网上搜索了很长时间,但无济于事。我正在寻找一个数据库来轻松存储和检索树结构和可能的图形。不是出于迫切的需要,而是我现在已经多次实施了这样的结构,并且想知道我是否真的必须一遍又一遍地这样做......

理想情况下,这样的 DBMS 将支持以下语句:(PSEUDO SQL)

CREATE TREE tree1;

INSERT NODE n1 INTO tree1.ROOT VALUES ('a', 'c')
INSERT NODE n2 INTO tree1.n1 VALUES ('b', 'c')
SELECT CHILDREN FROM tree1 WHERE n1 IS PARENT
SELECT PARENTS FROM tree1 WHERE n2 IS CHILD

我认为很清楚这是什么意思。节点可能有任何数据结构......

我知道有几种方法可以在关系数据库中复制树或图形结构,但是为什么没有专门的数据库系统来处理这种常见的数据结构呢?还是我错过了?

到目前为止我发现了neo4j看起来很有趣,但似乎没有专门的树语法。另一方面,面向文档的数据库存储数据是分层的,但是像获取孩子或父母这样的操作并不容易实现。

最接近我的想法的是 Javascript/jQuery DOM 操作。您可以通过路径、查询类、ID 和属性进行导航,轻松获取/创建子项和父项……但它不是数据库系统。

你有什么建议,什么数据库系统最适合树结构?到目前为止,我只研究过关系数据库。

4

1 回答 1

0

您检查过 XML 数据库吗?这些可以使用 X-path 表达式进行查询。

但是我见过的数据库中的大多数树数据结构都使用了大量的客户端处理。因此,与其制定复杂的查询,不如使用遍历树的递归函数来查询数据库。如果您有 SQL 背景,这可能是不寻常的,但它非常有效。

这可以使用任何 NoSQL 数据库来完成,但 neo4J 使它特别容易。

于 2013-03-25T12:13:52.637 回答