【发布时间】:2013-03-24 21:37:26
【问题描述】:
我已经在互联网上搜索了很长时间,但无济于事。我正在寻找一个数据库来轻松存储和检索树结构和可能的图形。不是出于迫切的需要,而是我现在已经多次实现了这样的结构,并且想知道我是否真的必须一遍又一遍地这样做......
理想情况下,这样的 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
我认为这意味着什么很清楚。 NODE 可以有任何数据结构...
我知道有几种方法可以在关系数据库中复制树或图结构,但是为什么没有专门的数据库系统来处理这种常见的数据结构呢?还是我错过了?
到目前为止,我发现了neo4j,这看起来很有趣,但似乎没有专门的树语法。另一方面,面向文档的数据库存储数据是分层的,但是像获取孩子或父母这样的操作并不容易实现。
最接近我的想法的是 Javascript/jQuery DOM 操作。您可以按路径导航、查询类、id 和属性,轻松获取/创建子项和父项....但它不是数据库系统。
您有什么建议,哪种数据库系统最适合树结构?到目前为止,我只研究过关系数据库。
【问题讨论】:
-
对于小树(您可以在更新时重新提交整个树)文档数据库应该可以正常工作,否则 - 是的,也许是图形数据库