我已经在互联网上搜索了一段时间,但无济于事。我正在寻找一个数据库来轻松存储和检索树结构和可能的图形。并非出于迫切的需要,而是我已经多次实施过这样的结构,并且想知道我是否真的必须一遍又一遍地这样做....
理想情况下,这样的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和属性进行导航,轻松获取/创建子级和父级....但它不是数据库系统。
您有什么建议,哪种数据库系统最适合树结构?到目前为止,我只参与了关系数据库。
答案 0 :(得分:0)
你检查过XML数据库吗?可以使用X路径表达式查询这些内容。
但我见过的数据库中的大多数树数据结构都使用了很多客户端 处理。因此,而不是制定复杂的查询, 您宁愿使用遍历树的递归函数来查询数据库。 如果您有SQL背景,这可能不常见,但它非常有效。
这可以通过任何NoSQL数据库完成,但neo4J使它变得特别容易。